route(request: dever.http.Request) (response: dever.http.Response) { response = dever.http.Response { status = 200, headers = [dever.http.header("x-test", "one"), dever.http.header("x-test", "two")], body = request.body } } serve(listener: dever.system.Listener) () { dever.http.serve(route, listener, dever.http.defaultLimits()) } scheduledRoute(request: dever.http.Request) (response: dever.http.Response) { task = run(route(request)) response = wait(task) } invalidLimits() () { listener = dever.net.listen("127.0.0.1", 0) limits = dever.http.defaultLimits() limits.connections = 0 dever.http.serve(route, listener, limits) } verify() (answer: Bool) { listener = dever.net.listen("127.0.0.1", 0) server = run(serve(listener)) port = dever.net.port(listener) request = dever.http.Request { method = "POST", target = "/echo?item=1", headers = [dever.http.header("Host", "fixture.test")], body = dever.bytes.fromText("雪") } response = dever.http.send("127.0.0.1", port, request, dever.http.defaultLimits()) dever.net.closeListener(listener) wait(server) answer = response.status == 200 and response.body == request.body and dever.http.headerValue(response.headers, "X-TEST") == dever.bytes.fromText("one") } cancelled() (answer: Bool) { listener = dever.net.listen("127.0.0.1", 0) server = run(serve(listener)) stop(server) dever.net.closeListener(listener) answer = true } invalid() (response: dever.http.Response) { request = dever.http.Request { method = "GET", target = "/", headers = [dever.http.header("Host", "fixture.test")], body = dever.bytes.fromText("") } response = dever.http.send("invalid-address", 80, request, dever.http.defaultLimits()) }