diff options
Diffstat (limited to 'cli')
-rw-r--r-- | cli/tests/unit/http_test.ts | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/cli/tests/unit/http_test.ts b/cli/tests/unit/http_test.ts index 0642a6d67..201ca1269 100644 --- a/cli/tests/unit/http_test.ts +++ b/cli/tests/unit/http_test.ts @@ -6,6 +6,7 @@ import { TextProtoReader } from "../../../test_util/std/textproto/mod.ts"; import { assert, assertEquals, + assertThrows, assertThrowsAsync, deferred, delay, @@ -705,6 +706,51 @@ unitTest(function httpUpgradeWebSocketMultipleConnectionOptions() { assertEquals(response.status, 101); }); +unitTest(function httpUpgradeWebSocketCaseInsensitiveUpgradeHeader() { + const request = new Request("https://deno.land/", { + headers: { + connection: "upgrade", + upgrade: "WebSocket", + "sec-websocket-key": "dGhlIHNhbXBsZSBub25jZQ==", + }, + }); + const { response } = Deno.upgradeWebSocket(request); + assertEquals(response.status, 101); +}); + +unitTest(function httpUpgradeWebSocketInvalidUpgradeHeader() { + assertThrows( + () => { + const request = new Request("https://deno.land/", { + headers: { + connection: "upgrade", + upgrade: "invalid", + "sec-websocket-key": "dGhlIHNhbXBsZSBub25jZQ==", + }, + }); + Deno.upgradeWebSocket(request); + }, + TypeError, + "Invalid Header: 'upgrade' header must be 'websocket'", + ); +}); + +unitTest(function httpUpgradeWebSocketWithoutUpgradeHeader() { + assertThrows( + () => { + const request = new Request("https://deno.land/", { + headers: { + connection: "upgrade", + "sec-websocket-key": "dGhlIHNhbXBsZSBub25jZQ==", + }, + }); + Deno.upgradeWebSocket(request); + }, + TypeError, + "Invalid Header: 'upgrade' header must be 'websocket'", + ); +}); + unitTest({ perms: { net: true } }, async function httpCookieConcatenation() { const promise = (async () => { const listener = Deno.listen({ port: 4501 }); |