File

tests/test_net_http_parser.lua @ 7750:e58524240b30

util.stanza: Add an is_stanza() function to check if an object is a stanza
author Kim Alvefur <zash@zash.se>
date Mon, 28 Nov 2016 07:30:21 +0100
parent 7493:f67b7509ee28
line wrap: on
line source

local httpstreams = { [[
GET / HTTP/1.1
Host: example.com

]], [[
HTTP/1.1 200 OK
Content-Length: 0

]], [[
HTTP/1.1 200 OK
Content-Length: 7

Hello
HTTP/1.1 200 OK
Transfer-Encoding: chunked

1
H
1
e
2
ll
1
o
0


]]
}

function new(new)

	for _, stream in ipairs(httpstreams) do
		local success;
		local function success_cb(packet)
			success = true;
		end
		stream = stream:gsub("\n", "\r\n");
		local parser = new(success_cb, error, stream:sub(1,4) == "HTTP" and "client" or "server")
		for chunk in stream:gmatch("..?.?") do
			parser:feed(chunk);
		end

		assert_is(success);
	end

end