1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-26 00:59:24 -05:00
denoland-deno/http_test.ts
2018-12-17 22:40:42 -05:00

58 lines
1.3 KiB
TypeScript

// 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);
}
});