File

spec/net_http_parser_spec.lua @ 11226:b3ae48362f78 0.11

mod_s2s: Prevent whitespace keepalives the stream has been opened This will result in the stream timing out instead, which is probably correct if the stream has not been opened yet. This was already done for c2s in e69df8093387 Thanks Ge0rG
author Kim Alvefur <zash@zash.se>
date Thu, 10 Dec 2020 11:53:10 +0100
parent 8236:4878e4159e12
child 10497:a9fb553b6dbb
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


]]
}


local http_parser = require "net.http.parser";

describe("net.http.parser", function()
	describe("#new()", function()
		it("should work", function()
			for _, stream in ipairs(httpstreams) do
				local success;
				local function success_cb(packet)
					success = true;
				end
				stream = stream:gsub("\n", "\r\n");
				local parser = http_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_true(success);
			end
		end);
	end);
end);