summaryrefslogtreecommitdiff
path: root/cli/tests
diff options
context:
space:
mode:
authorLuca Casonato <hello@lcas.dev>2021-07-22 14:28:55 +0200
committerGitHub <noreply@github.com>2021-07-22 14:28:55 +0200
commit8b34f07bb000a16b60b119ee24f5c0b4a5f7f937 (patch)
tree721fb932ddaee01059146048b8347d18ce710859 /cli/tests
parent4861b13aabd61d2df600e79a2e621fa1f3b870c3 (diff)
fix(http/ws): case insensitive connection header (#11489)
The "connection" header should be case insensitive: https://datatracker.ietf.org/doc/html/rfc7230#section-6.1
Diffstat (limited to 'cli/tests')
-rw-r--r--cli/tests/unit/http_test.ts32
1 files changed, 31 insertions, 1 deletions
diff --git a/cli/tests/unit/http_test.ts b/cli/tests/unit/http_test.ts
index bf351cd48..f9a44d8ef 100644
--- a/cli/tests/unit/http_test.ts
+++ b/cli/tests/unit/http_test.ts
@@ -642,7 +642,7 @@ unitTest({ perms: { net: true } }, async function httpServerWebSocket() {
const {
response,
websocket,
- } = await Deno.upgradeWebSocket(request);
+ } = Deno.upgradeWebSocket(request);
websocket.onerror = () => fail();
websocket.onmessage = (m) => {
websocket.send(m.data);
@@ -663,6 +663,36 @@ unitTest({ perms: { net: true } }, async function httpServerWebSocket() {
await promise;
});
+unitTest(function httpUpgradeWebSocket() {
+ 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);
+ assertEquals(response.headers.get("connection"), "Upgrade");
+ assertEquals(response.headers.get("upgrade"), "websocket");
+ assertEquals(
+ response.headers.get("sec-websocket-accept"),
+ "s3pPLMBiTxaQ9kYGzzhZRbK+xOo=",
+ );
+});
+
+unitTest(function httpUpgradeWebSocketLowercaseUpgradeHeader() {
+ 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({ perms: { net: true } }, async function httpCookieConcatenation() {
const promise = (async () => {
const listener = Deno.listen({ port: 4501 });