summaryrefslogtreecommitdiff
path: root/cli/tests/unit
diff options
context:
space:
mode:
authorLuca Casonato <hello@lcas.dev>2021-07-16 16:31:16 +0200
committerGitHub <noreply@github.com>2021-07-16 16:31:16 +0200
commit91bbd1a6d5ec21595efe790ff482c7a96b7fafb4 (patch)
treeadc03226d56ffa498e8b744b79ddbde354c59e64 /cli/tests/unit
parent2e57476fbbed240d9636561a05e53d454f232aa0 (diff)
fix(ext/http): correctly concat cookie headers (#11422)
Cookie headers should not be concatenated by commas, rather by semicolons.
Diffstat (limited to 'cli/tests/unit')
-rw-r--r--cli/tests/unit/http_test.ts27
1 files changed, 27 insertions, 0 deletions
diff --git a/cli/tests/unit/http_test.ts b/cli/tests/unit/http_test.ts
index 21325ff77..bf351cd48 100644
--- a/cli/tests/unit/http_test.ts
+++ b/cli/tests/unit/http_test.ts
@@ -662,3 +662,30 @@ unitTest({ perms: { net: true } }, async function httpServerWebSocket() {
await def;
await promise;
});
+
+unitTest({ perms: { net: true } }, async function httpCookieConcatenation() {
+ const promise = (async () => {
+ const listener = Deno.listen({ port: 4501 });
+ for await (const conn of listener) {
+ const httpConn = Deno.serveHttp(conn);
+ for await (const { request, respondWith } of httpConn) {
+ assertEquals(new URL(request.url).href, "http://127.0.0.1:4501/");
+ assertEquals(await request.text(), "");
+ assertEquals(request.headers.get("cookie"), "foo=bar; bar=foo");
+ respondWith(new Response("ok"));
+ }
+ break;
+ }
+ })();
+
+ const resp = await fetch("http://127.0.0.1:4501/", {
+ headers: [
+ ["connection", "close"],
+ ["cookie", "foo=bar"],
+ ["cookie", "bar=foo"],
+ ],
+ });
+ const text = await resp.text();
+ assertEquals(text, "ok");
+ await promise;
+});