summaryrefslogtreecommitdiff
path: root/std/http/cookie_test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'std/http/cookie_test.ts')
-rw-r--r--std/http/cookie_test.ts316
1 files changed, 0 insertions, 316 deletions
diff --git a/std/http/cookie_test.ts b/std/http/cookie_test.ts
deleted file mode 100644
index 1973eed01..000000000
--- a/std/http/cookie_test.ts
+++ /dev/null
@@ -1,316 +0,0 @@
-// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
-import { Response, ServerRequest } from "./server.ts";
-import { deleteCookie, getCookies, setCookie } from "./cookie.ts";
-import { assert, assertEquals, assertThrows } from "../testing/asserts.ts";
-
-Deno.test({
- name: "Cookie parser",
- fn(): void {
- const req = new ServerRequest();
- req.headers = new Headers();
- assertEquals(getCookies(req), {});
- req.headers = new Headers();
- req.headers.set("Cookie", "foo=bar");
- assertEquals(getCookies(req), { foo: "bar" });
-
- req.headers = new Headers();
- req.headers.set("Cookie", "full=of ; tasty=chocolate");
- assertEquals(getCookies(req), { full: "of ", tasty: "chocolate" });
-
- req.headers = new Headers();
- req.headers.set("Cookie", "igot=99; problems=but...");
- assertEquals(getCookies(req), { igot: "99", problems: "but..." });
-
- req.headers = new Headers();
- req.headers.set("Cookie", "PREF=al=en-GB&f1=123; wide=1; SID=123");
- assertEquals(getCookies(req), {
- PREF: "al=en-GB&f1=123",
- wide: "1",
- SID: "123",
- });
- },
-});
-
-Deno.test({
- name: "Cookie Name Validation",
- fn(): void {
- const res: Response = {};
- const tokens = [
- '"id"',
- "id\t",
- "i\td",
- "i d",
- "i;d",
- "{id}",
- "[id]",
- '"',
- "id\u0091",
- ];
- res.headers = new Headers();
- tokens.forEach((name) => {
- assertThrows(
- (): void => {
- setCookie(res, {
- name,
- value: "Cat",
- httpOnly: true,
- secure: true,
- maxAge: 3,
- });
- },
- Error,
- 'Invalid cookie name: "' + name + '".',
- );
- });
- },
-});
-
-Deno.test({
- name: "Cookie Value Validation",
- fn(): void {
- const res: Response = {};
- const tokens = [
- "1f\tWa",
- "\t",
- "1f Wa",
- "1f;Wa",
- '"1fWa',
- "1f\\Wa",
- '1f"Wa',
- '"',
- "1fWa\u0005",
- "1f\u0091Wa",
- ];
- res.headers = new Headers();
- tokens.forEach((value) => {
- assertThrows(
- (): void => {
- setCookie(
- res,
- {
- name: "Space",
- value,
- httpOnly: true,
- secure: true,
- maxAge: 3,
- },
- );
- },
- Error,
- "RFC2616 cookie 'Space'",
- );
- });
- },
-});
-
-Deno.test({
- name: "Cookie Path Validation",
- fn(): void {
- const res: Response = {};
- const path = "/;domain=sub.domain.com";
- res.headers = new Headers();
- assertThrows(
- (): void => {
- setCookie(res, {
- name: "Space",
- value: "Cat",
- httpOnly: true,
- secure: true,
- path,
- maxAge: 3,
- });
- },
- Error,
- path + ": Invalid cookie path char ';'",
- );
- },
-});
-
-Deno.test({
- name: "Cookie Delete",
- fn(): void {
- const res: Response = {};
- deleteCookie(res, "deno");
- assertEquals(
- res.headers?.get("Set-Cookie"),
- "deno=; Expires=Thu, 01 Jan 1970 00:00:00 GMT",
- );
- },
-});
-
-Deno.test({
- name: "Cookie Set",
- fn(): void {
- const res: Response = {};
-
- res.headers = new Headers();
- setCookie(res, { name: "Space", value: "Cat" });
- assertEquals(res.headers.get("Set-Cookie"), "Space=Cat");
-
- res.headers = new Headers();
- setCookie(res, { name: "Space", value: "Cat", secure: true });
- assertEquals(res.headers.get("Set-Cookie"), "Space=Cat; Secure");
-
- res.headers = new Headers();
- setCookie(res, { name: "Space", value: "Cat", httpOnly: true });
- assertEquals(res.headers.get("Set-Cookie"), "Space=Cat; HttpOnly");
-
- res.headers = new Headers();
- setCookie(res, {
- name: "Space",
- value: "Cat",
- httpOnly: true,
- secure: true,
- });
- assertEquals(res.headers.get("Set-Cookie"), "Space=Cat; Secure; HttpOnly");
-
- res.headers = new Headers();
- setCookie(res, {
- name: "Space",
- value: "Cat",
- httpOnly: true,
- secure: true,
- maxAge: 2,
- });
- assertEquals(
- res.headers.get("Set-Cookie"),
- "Space=Cat; Secure; HttpOnly; Max-Age=2",
- );
-
- let error = false;
- res.headers = new Headers();
- try {
- setCookie(res, {
- name: "Space",
- value: "Cat",
- httpOnly: true,
- secure: true,
- maxAge: 0,
- });
- } catch (e) {
- error = true;
- }
- assert(error);
-
- res.headers = new Headers();
- setCookie(res, {
- name: "Space",
- value: "Cat",
- httpOnly: true,
- secure: true,
- maxAge: 2,
- domain: "deno.land",
- });
- assertEquals(
- res.headers.get("Set-Cookie"),
- "Space=Cat; Secure; HttpOnly; Max-Age=2; Domain=deno.land",
- );
-
- res.headers = new Headers();
- setCookie(res, {
- name: "Space",
- value: "Cat",
- httpOnly: true,
- secure: true,
- maxAge: 2,
- domain: "deno.land",
- sameSite: "Strict",
- });
- assertEquals(
- res.headers.get("Set-Cookie"),
- "Space=Cat; Secure; HttpOnly; Max-Age=2; Domain=deno.land; " +
- "SameSite=Strict",
- );
-
- res.headers = new Headers();
- setCookie(res, {
- name: "Space",
- value: "Cat",
- httpOnly: true,
- secure: true,
- maxAge: 2,
- domain: "deno.land",
- sameSite: "Lax",
- });
- assertEquals(
- res.headers.get("Set-Cookie"),
- "Space=Cat; Secure; HttpOnly; Max-Age=2; Domain=deno.land; SameSite=Lax",
- );
-
- res.headers = new Headers();
- setCookie(res, {
- name: "Space",
- value: "Cat",
- httpOnly: true,
- secure: true,
- maxAge: 2,
- domain: "deno.land",
- path: "/",
- });
- assertEquals(
- res.headers.get("Set-Cookie"),
- "Space=Cat; Secure; HttpOnly; Max-Age=2; Domain=deno.land; Path=/",
- );
-
- res.headers = new Headers();
- setCookie(res, {
- name: "Space",
- value: "Cat",
- httpOnly: true,
- secure: true,
- maxAge: 2,
- domain: "deno.land",
- path: "/",
- unparsed: ["unparsed=keyvalue", "batman=Bruce"],
- });
- assertEquals(
- res.headers.get("Set-Cookie"),
- "Space=Cat; Secure; HttpOnly; Max-Age=2; Domain=deno.land; Path=/; " +
- "unparsed=keyvalue; batman=Bruce",
- );
-
- res.headers = new Headers();
- setCookie(res, {
- name: "Space",
- value: "Cat",
- httpOnly: true,
- secure: true,
- maxAge: 2,
- domain: "deno.land",
- path: "/",
- expires: new Date(Date.UTC(1983, 0, 7, 15, 32)),
- });
- assertEquals(
- res.headers.get("Set-Cookie"),
- "Space=Cat; Secure; HttpOnly; Max-Age=2; Domain=deno.land; Path=/; " +
- "Expires=Fri, 07 Jan 1983 15:32:00 GMT",
- );
-
- res.headers = new Headers();
- setCookie(res, { name: "__Secure-Kitty", value: "Meow" });
- assertEquals(res.headers.get("Set-Cookie"), "__Secure-Kitty=Meow; Secure");
-
- res.headers = new Headers();
- setCookie(res, {
- name: "__Host-Kitty",
- value: "Meow",
- domain: "deno.land",
- });
- assertEquals(
- res.headers.get("Set-Cookie"),
- "__Host-Kitty=Meow; Secure; Path=/",
- );
-
- res.headers = new Headers();
- setCookie(res, { name: "cookie-1", value: "value-1", secure: true });
- setCookie(res, { name: "cookie-2", value: "value-2", maxAge: 3600 });
- assertEquals(
- res.headers.get("Set-Cookie"),
- "cookie-1=value-1; Secure, cookie-2=value-2; Max-Age=3600",
- );
-
- res.headers = new Headers();
- setCookie(res, { name: "", value: "" });
- assertEquals(res.headers.get("Set-Cookie"), null);
- },
-});