X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=blobdiff_plain;f=basis%2Fhttp%2Fparsers%2Fparsers-tests.factor;h=b89d370ab15ebe23041ab1168ef6fb5cee603279;hp=f8c3b836a6e7d0eb4f7590ab81c22eddc49d1253;hb=726a8b784b91bb5e5d1ee01af46a6b91cf0ff438;hpb=bf15648b4d90434dbef2b310d204b6e068209306 diff --git a/basis/http/parsers/parsers-tests.factor b/basis/http/parsers/parsers-tests.factor index f8c3b836a6..b89d370ab1 100644 --- a/basis/http/parsers/parsers-tests.factor +++ b/basis/http/parsers/parsers-tests.factor @@ -1,16 +1,66 @@ USING: http http.parsers tools.test ; IN: http.parsers.tests -[ { } ] [ "" parse-cookie ] unit-test -[ { } ] [ "" parse-set-cookie ] unit-test +{ { } } [ "" parse-cookie ] unit-test +{ { } } [ "" parse-set-cookie ] unit-test ! Make sure that totally invalid cookies don't confuse us -[ { } ] [ "hello world; how are you" parse-cookie ] unit-test +{ { } } [ "hello world; how are you" parse-cookie ] unit-test -[ { T{ cookie { name "__s" } { value "12345567" } } } ] +{ { T{ cookie { name "__s" } { value "12345567" } } } } [ "__s=12345567" parse-cookie ] unit-test -[ { T{ cookie { name "__s" } { value "12345567" } } } ] +{ { T{ cookie { name "CaseSensitive" } { value "aBc" } } } } +[ "CaseSensitive=aBc" parse-cookie ] +unit-test + +{ { T{ cookie { name "__s" } { value "12345567" } } } } [ "__s=12345567;" parse-cookie ] unit-test + +{ { T{ cookie { name "a:b" } { value "c" } } } } +[ "a:b=c;" parse-cookie ] +unit-test + +{ { T{ cookie { name "d" } { value "[e]" } } } } +[ "d=[e];" parse-cookie ] +unit-test + +! Don't stop parsing on just one bad cookie +{ + { + T{ cookie { name "d" } { value "[e]" } } + T{ cookie { name "g" } { value "h" } } + } +} [ "d=[e]; a: ; g=h;" parse-cookie ] unit-test + +! Don't stop parsing on just one bad cookie +{ + { + T{ cookie { name "d" } { value "[e]" } } + T{ cookie { name "g" } { value "h" } } + } +} [ "d=[e]; a: ; g=h;" parse-cookie ] unit-test + +! Add some cookies with extra features +{ + V{ "set-cookie" "mykey=myvalue; SameSite=Strict" } +} +[ "Set-Cookie: mykey=myvalue; SameSite=Strict" parse-header-line ] unit-test + +{ + V{ + "set-cookie" + "id=a3fWa; Expires=Thu, 21 Oct 2021 07:28:00 GMT; Secure; HttpOnly" + } +} +[ "Set-Cookie: id=a3fWa; Expires=Thu, 21 Oct 2021 07:28:00 GMT; Secure; HttpOnly" parse-header-line ] unit-test + +! python allowed characters in key name +{ + { T{ cookie { name "!#$%&'*+-.^_`|~:abc" } { value "def" } } } +} [ + "!#$%&'*+-.^_`|~:abc=def;" parse-cookie +] unit-test +