File

spec/net_http_parser_spec.lua @ 10067:598befab492e

mod_admin_telnet: Check for simple commands before executing in sandbox This makes fixing yield over pcall boundry issue easier since it would have jumped to the thread error handler instead of proceeding to checking for simple commands.
author Kim Alvefur <zash@zash.se>
date Fri, 10 May 2019 01:28:09 +0200
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);