diff options
author | Casper Beyer <caspervonb@pm.me> | 2021-02-02 19:05:46 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-02 12:05:46 +0100 |
commit | 6abf126c2a7a451cded8c6b5e6ddf1b69c84055d (patch) | |
tree | fd94c013a19fcb38954844085821ec1601c20e18 /std/http/cookie_test.ts | |
parent | a2b5d44f1aa9d64f448a2a3cc2001272e2f60b98 (diff) |
chore: remove std directory (#9361)
This removes the std folder from the tree.
Various parts of the tests are pretty tightly dependent
on std (47 direct imports and 75 indirect imports, not
counting the cli tests that use them as fixtures) so I've
added std as a submodule for now.
Diffstat (limited to 'std/http/cookie_test.ts')
-rw-r--r-- | std/http/cookie_test.ts | 316 |
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); - }, -}); |