summaryrefslogtreecommitdiff
path: root/test/webrick
diff options
context:
space:
mode:
authornahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-04-01 10:02:03 +0000
committernahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-04-01 10:02:03 +0000
commitcc8bc6b7b6cb429c6a0a4bebc180b70b564e4e99 (patch)
tree66a398403ade8f1bfd4b95de95b7ca2b5c0923ba /test/webrick
parent9d0fbe23b6ed84657eccac5d657b58eef2855361 (diff)
Fri Apr 1 18:53:06 2011 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
* lib/webrick/cookie.rb (WEBrick::Cookie.parse): 'white space is permitted between tokens' according to RFC2965. Though 'Netscape spec' does not define the syntax clearly, make it tolerant as a server. As a real-world example, rest-client gem sends 'Cookie: foo=1;bar=2' * test/webrick/test_cookie.rb (test_parse_non_whitespace): test it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31228 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/webrick')
-rw-r--r--test/webrick/test_cookie.rb20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/webrick/test_cookie.rb b/test/webrick/test_cookie.rb
index 14771fd01c..1275dc8eff 100644
--- a/test/webrick/test_cookie.rb
+++ b/test/webrick/test_cookie.rb
@@ -54,6 +54,26 @@ class TestWEBrickCookie < Test::Unit::TestCase
assert_equal("9865ecfd514be7f7", cookies[1].value)
end
+ def test_parse_non_whitespace
+ data = [
+ '$Version="1";',
+ 'Customer="WILE_E_COYOTE";$Path="/acme";',
+ 'Part_Number="Rocket_Launcher_0001";$Path="/acme";',
+ 'Shipping="FedEx";$Path="/acme"'
+ ].join
+ cookies = WEBrick::Cookie.parse(data)
+ assert_equal(1, cookies[0].version)
+ assert_equal("Customer", cookies[0].name)
+ assert_equal("WILE_E_COYOTE", cookies[0].value)
+ assert_equal("/acme", cookies[0].path)
+ assert_equal(1, cookies[1].version)
+ assert_equal("Part_Number", cookies[1].name)
+ assert_equal("Rocket_Launcher_0001", cookies[1].value)
+ assert_equal(1, cookies[2].version)
+ assert_equal("Shipping", cookies[2].name)
+ assert_equal("FedEx", cookies[2].value)
+ end
+
def test_parse_set_cookie
data = %(Customer="WILE_E_COYOTE"; Version="1"; Path="/acme")
cookie = WEBrick::Cookie.parse_set_cookie(data)