diff options
Diffstat (limited to 'std/http/io_test.ts')
-rw-r--r-- | std/http/io_test.ts | 64 |
1 files changed, 37 insertions, 27 deletions
diff --git a/std/http/io_test.ts b/std/http/io_test.ts index 0fe70730b..b9bb56f11 100644 --- a/std/http/io_test.ts +++ b/std/http/io_test.ts @@ -3,7 +3,6 @@ import { assertThrowsAsync, assertEquals, assert, - assertNotEOF, assertNotEquals, } from "../testing/asserts.ts"; import { @@ -43,11 +42,11 @@ test("chunkedBodyReader", async () => { ].join(""); const h = new Headers(); const r = chunkedBodyReader(h, new BufReader(new Buffer(encode(body)))); - let result: number | Deno.EOF; + let result: number | null; // Use small buffer as some chunks exceed buffer size const buf = new Uint8Array(5); const dest = new Buffer(); - while ((result = await r.read(buf)) !== Deno.EOF) { + while ((result = await r.read(buf)) !== null) { const len = Math.min(buf.byteLength, result); await dest.write(buf.subarray(0, len)); } @@ -223,25 +222,28 @@ test("writeUint8ArrayResponse", async function (): Promise<void> { const decoder = new TextDecoder("utf-8"); const reader = new BufReader(buf); - let r: ReadLineResult; - r = assertNotEOF(await reader.readLine()); + let r: ReadLineResult | null = await reader.readLine(); + assert(r !== null); assertEquals(decoder.decode(r.line), "HTTP/1.1 200 OK"); assertEquals(r.more, false); - r = assertNotEOF(await reader.readLine()); + r = await reader.readLine(); + assert(r !== null); assertEquals(decoder.decode(r.line), `content-length: ${shortText.length}`); assertEquals(r.more, false); - r = assertNotEOF(await reader.readLine()); + r = await reader.readLine(); + assert(r !== null); assertEquals(r.line.byteLength, 0); assertEquals(r.more, false); - r = assertNotEOF(await reader.readLine()); + r = await reader.readLine(); + assert(r !== null); assertEquals(decoder.decode(r.line), shortText); assertEquals(r.more, false); const eof = await reader.readLine(); - assertEquals(eof, Deno.EOF); + assertEquals(eof, null); }); test("writeStringResponse", async function (): Promise<void> { @@ -255,25 +257,28 @@ test("writeStringResponse", async function (): Promise<void> { const decoder = new TextDecoder("utf-8"); const reader = new BufReader(buf); - let r: ReadLineResult; - r = assertNotEOF(await reader.readLine()); + let r: ReadLineResult | null = await reader.readLine(); + assert(r !== null); assertEquals(decoder.decode(r.line), "HTTP/1.1 200 OK"); assertEquals(r.more, false); - r = assertNotEOF(await reader.readLine()); + r = await reader.readLine(); + assert(r !== null); assertEquals(decoder.decode(r.line), `content-length: ${body.length}`); assertEquals(r.more, false); - r = assertNotEOF(await reader.readLine()); + r = await reader.readLine(); + assert(r !== null); assertEquals(r.line.byteLength, 0); assertEquals(r.more, false); - r = assertNotEOF(await reader.readLine()); + r = await reader.readLine(); + assert(r !== null); assertEquals(decoder.decode(r.line), body); assertEquals(r.more, false); const eof = await reader.readLine(); - assertEquals(eof, Deno.EOF); + assertEquals(eof, null); }); test("writeStringReaderResponse", async function (): Promise<void> { @@ -288,28 +293,33 @@ test("writeStringReaderResponse", async function (): Promise<void> { const decoder = new TextDecoder("utf-8"); const reader = new BufReader(buf); - let r: ReadLineResult; - r = assertNotEOF(await reader.readLine()); + let r: ReadLineResult | null = await reader.readLine(); + assert(r !== null); assertEquals(decoder.decode(r.line), "HTTP/1.1 200 OK"); assertEquals(r.more, false); - r = assertNotEOF(await reader.readLine()); + r = await reader.readLine(); + assert(r !== null); assertEquals(decoder.decode(r.line), "transfer-encoding: chunked"); assertEquals(r.more, false); - r = assertNotEOF(await reader.readLine()); + r = await reader.readLine(); + assert(r !== null); assertEquals(r.line.byteLength, 0); assertEquals(r.more, false); - r = assertNotEOF(await reader.readLine()); + r = await reader.readLine(); + assert(r !== null); assertEquals(decoder.decode(r.line), shortText.length.toString()); assertEquals(r.more, false); - r = assertNotEOF(await reader.readLine()); + r = await reader.readLine(); + assert(r !== null); assertEquals(decoder.decode(r.line), shortText); assertEquals(r.more, false); - r = assertNotEOF(await reader.readLine()); + r = await reader.readLine(); + assert(r !== null); assertEquals(decoder.decode(r.line), "0"); assertEquals(r.more, false); }); @@ -372,7 +382,7 @@ test("testReadRequestError", async function (): Promise<void> { in: "GET / HTTP/1.1\r\nheader:foo\r\n", err: Deno.errors.UnexpectedEof, }, - { in: "", err: Deno.EOF }, + { in: "", eof: true }, { in: "HEAD / HTTP/1.1\r\nContent-Length:4\r\n\r\n", err: "http: method cannot contain a Content-Length", @@ -427,14 +437,14 @@ test("testReadRequestError", async function (): Promise<void> { for (const test of testCases) { const reader = new BufReader(new StringReader(test.in)); let err; - let req: ServerRequest | Deno.EOF | undefined; + let req: ServerRequest | null = null; try { req = await readRequest(mockConn(), reader); } catch (e) { err = e; } - if (test.err === Deno.EOF) { - assertEquals(req, Deno.EOF); + if (test.eof) { + assertEquals(req, null); } else if (typeof test.err === "string") { assertEquals(err.message, test.err); } else if (test.err) { @@ -443,7 +453,7 @@ test("testReadRequestError", async function (): Promise<void> { assert(req instanceof ServerRequest); assert(test.headers); assertEquals(err, undefined); - assertNotEquals(req, Deno.EOF); + assertNotEquals(req, null); for (const h of test.headers) { assertEquals(req.headers.get(h.key), h.value); } |