]> gitweb.factorcode.org Git - factor.git/blob - basis/http/parsers/parsers-tests.factor
3f4312a72d6b6758bf6b01756fe1ec93397198ef
[factor.git] / basis / http / parsers / parsers-tests.factor
1 USING: http http.parsers tools.test ;
2 IN: http.parsers.tests
3
4 { { } } [ "" parse-cookie ] unit-test
5 { { } } [ "" parse-set-cookie ] unit-test
6
7 ! Make sure that totally invalid cookies don't confuse us
8 { { } } [ "hello world; how are you" parse-cookie ] unit-test
9
10 { { T{ cookie { name "__s" } { value "12345567" } } } }
11 [ "__s=12345567" parse-cookie ]
12 unit-test
13
14 { { T{ cookie { name "CaseSensitive" } { value "aBc" } } } }
15 [ "CaseSensitive=aBc" parse-cookie ]
16 unit-test
17
18 { { T{ cookie { name "__s" } { value "12345567" } } } }
19 [ "__s=12345567;" parse-cookie ]
20 unit-test
21
22 { { T{ cookie { name "a:b" } { value "c" } } } }
23 [ "a:b=c;" parse-cookie ]
24 unit-test
25
26 { { T{ cookie { name "d" } { value "[e]" } } } }
27 [ "d=[e];" parse-cookie ]
28 unit-test
29
30 ! Don't stop parsing on just one bad cookie
31 {
32     {
33         T{ cookie { name "d" } { value "[e]" } }
34         T{ cookie { name "g" } { value "h" } }
35     }
36 } [ "d=[e]; a: ; g=h;" parse-cookie ] unit-test
37
38 ! Don't stop parsing on just one bad cookie
39 {
40     {
41         T{ cookie { name "d" } { value "[e]" } }
42         T{ cookie { name "g" } { value "h" } }
43     }
44 } [ "d=[e]; a: ; g=h;" parse-cookie ] unit-test
45
46 ! Add some cookies with extra features
47 {
48     V{ "set-cookie" "mykey=myvalue; SameSite=Strict" }
49 }
50 [ "Set-Cookie: mykey=myvalue; SameSite=Strict" parse-header-line ] unit-test
51
52 {
53     V{
54         "set-cookie"
55         "id=a3fWa; Expires=Thu, 21 Oct 2021 07:28:00 GMT; Secure; HttpOnly"
56     }
57 }
58 [ "Set-Cookie: id=a3fWa; Expires=Thu, 21 Oct 2021 07:28:00 GMT; Secure; HttpOnly" parse-header-line ] unit-test
59
60 ! python allowed characters in key name
61 {
62     { T{ cookie { name "!#$%&'*+-.^_`|~:abc" } { value "def" } } }
63 } [
64     "!#$%&'*+-.^_`|~:abc=def;" parse-cookie
65 ] unit-test