diff options
Diffstat (limited to 'net/http_test.ts')
| -rw-r--r-- | net/http_test.ts | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/net/http_test.ts b/net/http_test.ts new file mode 100644 index 000000000..cdb7f8303 --- /dev/null +++ b/net/http_test.ts @@ -0,0 +1,58 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Ported from +// https://github.com/golang/go/blob/master/src/net/http/responsewrite_test.go + +import { + test, + assert, + assertEqual +} from "https://deno.land/x/testing/testing.ts"; + +import { + listenAndServe, + ServerRequest, + setContentLength, + Response +} from "./http"; +import { Buffer } from "deno"; +import { BufWriter } from "./bufio"; + +interface ResponseTest { + response: Response; + raw: string; +} + +const responseTests: ResponseTest[] = [ + // Default response + { + response: {}, + raw: "HTTP/1.1 200 OK\r\n" + "\r\n" + }, + // HTTP/1.1, chunked coding; empty trailer; close + { + response: { + status: 200, + body: new Buffer(new TextEncoder().encode("abcdef")) + }, + + raw: + "HTTP/1.1 200 OK\r\n" + + "transfer-encoding: chunked\r\n\r\n" + + "6\r\nabcdef\r\n0\r\n\r\n" + } +]; + +test(async function responseWrite() { + for (const testCase of responseTests) { + const buf = new Buffer(); + const bufw = new BufWriter(buf); + const request = new ServerRequest(); + request.w = bufw; + + await request.respond(testCase.response); + assertEqual(buf.toString(), testCase.raw); + } +}); |
