Updated MSpec source to 1c3ee1c8.
[rbx.git] / test / mri / webrick / test_cookie.rb
blob14771fd01cf1b3a3fb745d8c3397b9d8114c081d
1 require "test/unit"
2 require "webrick/cookie"
4 class TestWEBrickCookie < Test::Unit::TestCase
5   def test_new
6     cookie = WEBrick::Cookie.new("foo","bar")
7     assert_equal("foo", cookie.name)
8     assert_equal("bar", cookie.value)
9     assert_equal("foo=bar", cookie.to_s)
10   end
12   def test_time
13     cookie = WEBrick::Cookie.new("foo","bar")
14     t = 1000000000
15     cookie.max_age = t
16     assert_match(t.to_s, cookie.to_s)
18     cookie = WEBrick::Cookie.new("foo","bar")
19     t = Time.at(1000000000)
20     cookie.expires = t
21     assert_equal(Time, cookie.expires.class)
22     assert_equal(t, cookie.expires)
23     ts = t.httpdate
24     cookie.expires = ts
25     assert_equal(Time, cookie.expires.class)
26     assert_equal(t, cookie.expires)
27     assert_match(ts, cookie.to_s)
28   end
30   def test_parse
31     data = ""
32     data << '$Version="1"; '
33     data << 'Customer="WILE_E_COYOTE"; $Path="/acme"; '
34     data << 'Part_Number="Rocket_Launcher_0001"; $Path="/acme"; '
35     data << 'Shipping="FedEx"; $Path="/acme"'
36     cookies = WEBrick::Cookie.parse(data)
37     assert_equal(1, cookies[0].version)
38     assert_equal("Customer", cookies[0].name)
39     assert_equal("WILE_E_COYOTE", cookies[0].value)
40     assert_equal("/acme", cookies[0].path)
41     assert_equal(1, cookies[1].version)
42     assert_equal("Part_Number", cookies[1].name)
43     assert_equal("Rocket_Launcher_0001", cookies[1].value)
44     assert_equal(1, cookies[2].version)
45     assert_equal("Shipping", cookies[2].name)
46     assert_equal("FedEx", cookies[2].value)
48     data = "hoge=moge; __div__session=9865ecfd514be7f7"
49     cookies = WEBrick::Cookie.parse(data)
50     assert_equal(0, cookies[0].version)
51     assert_equal("hoge", cookies[0].name)
52     assert_equal("moge", cookies[0].value)
53     assert_equal("__div__session", cookies[1].name)
54     assert_equal("9865ecfd514be7f7", cookies[1].value)
55   end
57   def test_parse_set_cookie
58     data = %(Customer="WILE_E_COYOTE"; Version="1"; Path="/acme")
59     cookie = WEBrick::Cookie.parse_set_cookie(data)
60     assert_equal("Customer", cookie.name)
61     assert_equal("WILE_E_COYOTE", cookie.value)
62     assert_equal(1, cookie.version)
63     assert_equal("/acme", cookie.path)
65     data = %(Shipping="FedEx"; Version="1"; Path="/acme"; Secure)
66     cookie = WEBrick::Cookie.parse_set_cookie(data)
67     assert_equal("Shipping", cookie.name)
68     assert_equal("FedEx", cookie.value)
69     assert_equal(1, cookie.version)
70     assert_equal("/acme", cookie.path)
71     assert_equal(true, cookie.secure)
72   end
74   def test_parse_set_cookies
75     data = %(Shipping="FedEx"; Version="1"; Path="/acme"; Secure)
76     data << %(, CUSTOMER=WILE_E_COYOTE; path=/; expires=Wednesday, 09-Nov-99 23:12:40 GMT; path=/; Secure)
77     data << %(, name="Aaron"; Version="1"; path="/acme")
78     cookies = WEBrick::Cookie.parse_set_cookies(data)
79     assert_equal(3, cookies.length)
81     fed_ex = cookies.find { |c| c.name == 'Shipping' }
82     assert_not_nil(fed_ex)
83     assert_equal("Shipping", fed_ex.name)
84     assert_equal("FedEx", fed_ex.value)
85     assert_equal(1, fed_ex.version)
86     assert_equal("/acme", fed_ex.path)
87     assert_equal(true, fed_ex.secure)
89     name = cookies.find { |c| c.name == 'name' }
90     assert_not_nil(name)
91     assert_equal("name", name.name)
92     assert_equal("Aaron", name.value)
93     assert_equal(1, name.version)
94     assert_equal("/acme", name.path)
96     customer = cookies.find { |c| c.name == 'CUSTOMER' }
97     assert_not_nil(customer)
98     assert_equal("CUSTOMER", customer.name)
99     assert_equal("WILE_E_COYOTE", customer.value)
100     assert_equal(0, customer.version)
101     assert_equal("/", customer.path)
102     assert_equal(Time.utc(1999, 11, 9, 23, 12, 40), customer.expires)
103   end