glebtv-httpclient 3.2.3 → 3.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6cf2043154f902f7b5b729fd0fec0cb37256794b
4
- data.tar.gz: fb3529a6832512228abba6d5598bfa572ebfe2cc
3
+ metadata.gz: 67da2be91a12b0b8e107d865eea78fca6118bf5c
4
+ data.tar.gz: 9ffc63296d22b328aab17af7832060cd3894c1f1
5
5
  SHA512:
6
- metadata.gz: bbbdff5e660faf4f26c0efd6d108f7b74468eeeb08dd059cb72303ef618b3902e2c9935991b14be8c45add521f52ea98691ddb307e0fc4e275a19f69cc0439ee
7
- data.tar.gz: d3d3c5e8745b50c89759dc8d8eb964ccbbab55ccca11728771ddb608558636042d2fb576f344357ee2f27825492e602053b43ec90c31649e0d0b2c83b46f2484
6
+ metadata.gz: 78f6a87dfda29f7ee7cf46d812b6b3af37419ebf9088898c6b994c129a2e4b4692cfd19f276dfba61c71a590a0a0795f0c50f1d702d6b8251c032014d7b805d2
7
+ data.tar.gz: 97e997886c7c72cb855783e94bd95b2cd8425af4f72e5d178c4dc1846dd6451d680cef33cfaa4d7fd632b90e22aca106dec5ec237546a03fa30a03a5a2cf6c8f
@@ -1 +1 @@
1
- ruby-2.0.0-p353
1
+ 2.1.1
@@ -2,6 +2,7 @@ rvm:
2
2
  - 1.9.3
3
3
  - 2.0.0
4
4
  - 2.1.0
5
+ - 2.1.1
5
6
 
6
7
  notifications:
7
8
  email: false
@@ -14,13 +14,13 @@ GEM
14
14
  term-ansicolor
15
15
  thor
16
16
  diff-lcs (1.2.5)
17
- docile (1.1.2)
17
+ docile (1.1.3)
18
18
  ffi2-generators (0.1.1)
19
19
  json (1.8.1)
20
20
  lru_redux (0.8.1)
21
- mime-types (2.1)
22
- multi_json (1.8.4)
23
- rake (10.1.1)
21
+ mime-types (2.2)
22
+ multi_json (1.9.2)
23
+ rake (10.2.2)
24
24
  rdoc (4.1.1)
25
25
  json (~> 1.4)
26
26
  rest-client (1.6.7)
@@ -29,15 +29,12 @@ GEM
29
29
  rspec-core (~> 2.14.0)
30
30
  rspec-expectations (~> 2.14.0)
31
31
  rspec-mocks (~> 2.14.0)
32
- rspec-core (2.14.7)
32
+ rspec-core (2.14.8)
33
33
  rspec-expectations (2.14.5)
34
34
  diff-lcs (>= 1.1.3, < 2.0)
35
- rspec-mocks (2.14.5)
36
- rubinius-compiler (2.0.4)
35
+ rspec-mocks (2.14.6)
37
36
  rubinius-coverage (2.0.3)
38
- rubinius-debugger (2.0.2)
39
- rubinius-compiler (~> 2.0)
40
- rubysl-readline (~> 2.0)
37
+ rubinius-debugger (2.0.3)
41
38
  rubinius-developer_tools (2.0.0)
42
39
  rubinius-coverage (~> 2.0)
43
40
  rubinius-debugger (~> 2.0)
@@ -206,7 +203,7 @@ GEM
206
203
  rubysl-shellwords (~> 2.0)
207
204
  rubysl-ostruct (2.0.4)
208
205
  rubysl-pathname (2.0.0)
209
- rubysl-prettyprint (2.0.2)
206
+ rubysl-prettyprint (2.0.3)
210
207
  rubysl-prime (2.0.1)
211
208
  rubysl-profile (2.0.0)
212
209
  rubysl-profiler (2.0.1)
@@ -214,7 +211,7 @@ GEM
214
211
  rubysl-pty (2.0.2)
215
212
  rubysl-rational (2.0.1)
216
213
  rubysl-readline (2.0.2)
217
- rubysl-resolv (2.0.0)
214
+ rubysl-resolv (2.1.0)
218
215
  rubysl-rexml (2.0.2)
219
216
  rubysl-rinda (2.0.1)
220
217
  rubysl-rss (2.0.0)
@@ -234,7 +231,7 @@ GEM
234
231
  rubysl-thwait (2.0.0)
235
232
  rubysl-time (2.0.3)
236
233
  rubysl-timeout (2.0.0)
237
- rubysl-tmpdir (2.0.0)
234
+ rubysl-tmpdir (2.0.1)
238
235
  rubysl-tsort (2.0.1)
239
236
  rubysl-un (2.0.0)
240
237
  rubysl-fileutils (~> 2.0)
@@ -250,11 +247,11 @@ GEM
250
247
  multi_json
251
248
  simplecov-html (~> 0.8.0)
252
249
  simplecov-html (0.8.0)
253
- term-ansicolor (1.2.2)
254
- tins (~> 0.8)
250
+ term-ansicolor (1.3.0)
251
+ tins (~> 1.0)
255
252
  test-unit (2.5.5)
256
- thor (0.18.1)
257
- tins (0.13.2)
253
+ thor (0.19.1)
254
+ tins (1.1.0)
258
255
 
259
256
  PLATFORMS
260
257
  ruby
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
  spec.executables = ['httpclient']
12
12
  spec.homepage = 'http://github.com/glebtv/httpclient'
13
13
  spec.platform = Gem::Platform::RUBY
14
- spec.summary = 'Fork of httpclient with some fixes and patches I needed. Please use original gem instead'
14
+ spec.summary = 'Fork of httpclient with some fixes and patches I needed.'
15
15
 
16
16
  spec.license = 'ruby'
17
17
 
@@ -20,12 +20,12 @@ Gem::Specification.new do |spec|
20
20
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
21
21
  spec.require_paths = ["lib"]
22
22
 
23
- spec.add_dependency "lru_redux"
23
+ spec.add_dependency 'lru_redux'
24
24
 
25
- spec.add_development_dependency "bundler"
26
- spec.add_development_dependency "rake"
27
- spec.add_development_dependency "test-unit"
28
- spec.add_development_dependency "rspec"
29
- spec.add_development_dependency "rdoc"
30
- spec.add_development_dependency "coveralls"
25
+ spec.add_development_dependency 'bundler'
26
+ spec.add_development_dependency 'rake'
27
+ spec.add_development_dependency 'test-unit'
28
+ spec.add_development_dependency 'rspec'
29
+ spec.add_development_dependency 'rdoc'
30
+ spec.add_development_dependency 'coveralls'
31
31
  end
@@ -1,3 +1,3 @@
1
1
  class HTTPClient
2
- VERSION = '3.2.3' unless defined?(VERSION)
2
+ VERSION = '3.2.4' unless defined?(VERSION)
3
3
  end
@@ -0,0 +1,398 @@
1
+ # coding: utf-8
2
+ require 'spec_helper'
3
+
4
+ require 'uri'
5
+ require 'httpclient/cookie'
6
+
7
+ describe 'Cookies' do
8
+ before :each do
9
+ @c = WebAgent::Cookie.new()
10
+ end
11
+
12
+ it { @c.should be_an_instance_of WebAgent::Cookie }
13
+
14
+ it '#discard' do
15
+ (!!@c.discard?).should be_false
16
+ @c.discard = true
17
+ (!!@c.discard?).should be_true
18
+ end
19
+
20
+ it '#match?' do
21
+ url = urify('http://www.rubycolor.org/hoge/funi/#919191')
22
+
23
+ @c.domain = 'www.rubycolor.org'
24
+ @c.match?(url).should be_true
25
+
26
+ @c.domain = '.rubycolor.org'
27
+ @c.match?(url).should be_true
28
+
29
+ @c.domain = 'aaa.www.rubycolor.org'
30
+ @c.match?(url).should be_false
31
+
32
+ @c.domain = 'aaa.www.rubycolor.org'
33
+ @c.match?(url).should be_false
34
+
35
+ @c.domain = 'www.rubycolor.org'
36
+ @c.path = '/'
37
+ @c.match?(url).should be_true
38
+
39
+ @c.domain = 'www.rubycolor.org'
40
+ @c.path = '/hoge'
41
+ @c.match?(url).should be_true
42
+
43
+ @c.domain = 'www.rubycolor.org'
44
+ @c.path = '/hoge/hoge'
45
+ @c.match?(url).should be_false
46
+
47
+ @c.domain = 'www.rubycolor.org'
48
+ @c.path = '/hoge'
49
+ @c.secure = true
50
+ @c.match?(url).should be_false
51
+
52
+ url2 = urify('https://www.rubycolor.org/hoge/funi/#919191')
53
+ @c.domain = 'www.rubycolor.org'
54
+ @c.path = '/hoge'
55
+ @c.secure = true
56
+ @c.match?(url2).should be_true
57
+
58
+ @c.domain = 'www.rubycolor.org'
59
+ @c.path = '/hoge'
60
+ @c.secure = nil
61
+ @c.match?(url2).should be_true
62
+
63
+ url.port = 80
64
+ @c.domain = 'www.rubycolor.org'
65
+ @c.path = '/hoge'
66
+ @c.match?(url).should be_true
67
+
68
+ url_nopath = URI.parse('http://www.rubycolor.org')
69
+ @c.domain = 'www.rubycolor.org'
70
+ @c.path = '/'
71
+ @c.match?(url_nopath).should be_true
72
+ end
73
+
74
+ it '#head_match?' do
75
+ @c.head_match?("","").should be_true
76
+ @c.head_match?("a","").should be_false
77
+ @c.head_match?("","a").should be_true
78
+ @c.head_match?("abcde","abcde").should be_true
79
+ @c.head_match?("abcde","abcdef").should be_true
80
+ @c.head_match?("abcdef","abcde").should be_false
81
+ @c.head_match?("abcde","bcde").should be_false
82
+ @c.head_match?("bcde","abcde").should be_false
83
+ end
84
+
85
+ it 'tail_match?' do
86
+ @c.tail_match?("","").should be_true
87
+ @c.tail_match?("a","").should be_false
88
+ @c.tail_match?("","a").should be_true
89
+ @c.tail_match?("abcde","abcde").should be_true
90
+ @c.tail_match?("abcde","abcdef").should be_false
91
+ @c.tail_match?("abcdef","abcde").should be_false
92
+ @c.tail_match?("abcde","bcde").should be_false
93
+ @c.tail_match?("bcde","abcde").should be_true
94
+ end
95
+
96
+
97
+ it 'domain_match' do
98
+ extend WebAgent::CookieUtils
99
+ (!!domain_match("hoge.co.jp",".")).should be_true
100
+ (!!domain_match("192.168.10.1","192.168.10.1")).should be_true
101
+ (!!domain_match("192.168.10.1","192.168.10.2")).should be_false
102
+ (!!domain_match("hoge.co.jp",".hoge.co.jp")).should be_true
103
+ (!!domain_match("www.hoge.co.jp", "www.hoge.co.jp")).should be_true
104
+ (!!domain_match("www.hoge.co.jp", "www2.hoge.co.jp")).should be_false
105
+ (!!domain_match("www.hoge.co.jp", ".hoge.co.jp")).should be_true
106
+ (!!domain_match("www.aa.hoge.co.jp", ".hoge.co.jp")).should be_true
107
+ (!!domain_match("www.hoge.co.jp", "hoge.co.jp")).should be_false
108
+ end
109
+
110
+ it 'join_quotedstr' do
111
+ arr1 = ['hoge=funi', 'hoge2=funi2']
112
+ arr1.should eq @c.instance_eval{join_quotedstr(arr1,';')}
113
+ arr2 = ['hoge="fu', 'ni"', 'funi=funi']
114
+ ['hoge="fu;ni"','funi=funi'].should eq @c.instance_eval{join_quotedstr(arr2,';')}
115
+ arr3 = ['hoge="funi";hoge2="fu','ni2";hoge3="hoge"', 'funi="funi"']
116
+ ['hoge="funi";hoge2="fu,ni2";hoge3="hoge"', 'funi="funi"'].should eq @c.instance_eval{join_quotedstr(arr3,',')}
117
+ end
118
+ end
119
+
120
+
121
+ describe 'CookieManager' do
122
+ before :each do
123
+ @cm = WebAgent::CookieManager.new()
124
+ end
125
+
126
+ it 'parse' do
127
+ str = "inkid=n92b0ADOgACIgUb9lsjHqAAAHu2a; expires=Wed, 01-Dec-2010 00:00:00 GMT; path=/"
128
+ @cm.parse(str, urify('http://www.test.jp'))
129
+ cookie = @cm.cookies[0]
130
+ cookie.should be_an_instance_of WebAgent::Cookie
131
+ cookie.name.should eq "inkid"
132
+ cookie.value.should eq "n92b0ADOgACIgUb9lsjHqAAAHu2a"
133
+ cookie.expires.should eq Time.gm(2010, 12, 1, 0,0,0)
134
+ cookie.path.should eq "/"
135
+ end
136
+
137
+ it 'parse2' do
138
+ str = "xmen=off,0,0,1; path=/; domain=.excite.co.jp; expires=Wednesday, 31-Dec-2037 12:00:00 GMT"
139
+ @cm.parse(str, urify('http://www.excite.co.jp'))
140
+ cookie = @cm.cookies[0]
141
+ cookie.should be_an_instance_of WebAgent::Cookie
142
+ cookie.name.should eq "xmen"
143
+ cookie.value.should eq "off,0,0,1"
144
+ cookie.domain.should eq ".excite.co.jp"
145
+ cookie.expires.should eq Time.gm(2037,12,31,12,0,0)
146
+ cookie.path.should eq "/"
147
+
148
+ cookie.secure?.should be_false
149
+ cookie.http_only?.should be_false
150
+ end
151
+
152
+ it 'parse3' do
153
+ str = "xmen=off,0,0,1; path=/; domain=.excite.co.jp; expires=Wednesday, 31-Dec-2037 12:00:00 GMT;Secure;HTTPOnly"
154
+ @cm.parse(str, urify('http://www.excite.co.jp'))
155
+ cookie = @cm.cookies[0]
156
+ cookie.should be_an_instance_of WebAgent::Cookie
157
+ cookie.name.should eq "xmen"
158
+ cookie.value.should eq "off,0,0,1"
159
+ cookie.domain.should eq ".excite.co.jp"
160
+ cookie.expires.should eq Time.gm(2037,12,31,12,0,0)
161
+ cookie.path.should eq "/"
162
+ cookie.secure?.should be_true
163
+ cookie.http_only?.should be_true
164
+ end
165
+
166
+ it 'parse_double_semicolon' do
167
+ str = "xmen=off,0,0,1;; path=\"/;;\"; domain=.excite.co.jp; expires=Wednesday, 31-Dec-2037 12:00:00 GMT"
168
+ @cm.parse(str, urify('http://www.excite.co.jp'))
169
+ cookie = @cm.cookies[0]
170
+ cookie.should be_an_instance_of WebAgent::Cookie
171
+ cookie.name.should eq "xmen"
172
+ cookie.value.should eq "off,0,0,1"
173
+ cookie.domain.should eq ".excite.co.jp"
174
+ cookie.expires.should eq Time.gm(2037,12,31,12,0,0)
175
+ cookie.path.should eq "/;;"
176
+ end
177
+
178
+ it 'check_expired_cookies' do
179
+ c1 = WebAgent::Cookie.new()
180
+ c2 = c1.dup
181
+ c3 = c1.dup
182
+ c4 = c1.dup
183
+ c1.expires = Time.now - 100
184
+ c2.expires = Time.now + 100
185
+ c3.expires = Time.now - 10
186
+ c4.expires = nil
187
+ cookies = [c1,c2,c3,c4]
188
+ @cm.cookies = cookies
189
+ @cm.check_expired_cookies()
190
+ # expires == nil cookies (session cookie) exists.
191
+ @cm.cookies.should eq [c2,c4]
192
+ end
193
+
194
+ it 'parse_expires' do
195
+ str = "inkid=n92b0ADOgACIgUb9lsjHqAAAHu2a; expires=; path=/"
196
+ @cm.parse(str, urify('http://www.test.jp'))
197
+ cookie = @cm.cookies[0]
198
+ cookie.should be_an_instance_of WebAgent::Cookie
199
+ cookie.name.should eq "inkid"
200
+ cookie.value.should eq "n92b0ADOgACIgUb9lsjHqAAAHu2a"
201
+ cookie.expires.should be_nil
202
+ cookie.path.should eq "/"
203
+
204
+ str = "inkid=n92b0ADOgACIgUb9lsjHqAAAHu2a; path=/; expires="
205
+ @cm.parse(str, urify('http://www.test.jp'))
206
+ cookie = @cm.cookies[0]
207
+ cookie.should be_an_instance_of WebAgent::Cookie
208
+ cookie.name.should eq "inkid"
209
+ cookie.value.should eq "n92b0ADOgACIgUb9lsjHqAAAHu2a"
210
+ cookie.expires.should be_nil
211
+ cookie.path.should eq "/"
212
+
213
+ str = "inkid=n92b0ADOgACIgUb9lsjHqAAAHu2a; path=/; expires=\"\""
214
+ @cm.parse(str, urify('http://www.test.jp'))
215
+ cookie = @cm.cookies[0]
216
+ cookie.should be_an_instance_of WebAgent::Cookie
217
+ cookie.name.should eq "inkid"
218
+ cookie.value.should eq "n92b0ADOgACIgUb9lsjHqAAAHu2a"
219
+ cookie.expires.should be_nil
220
+ cookie.path.should eq "/"
221
+ end
222
+
223
+ it 'parse_after_expiration' do
224
+ str = "inkid=n92b0ADOgACIgUb9lsjHqAAAHu2a; expires=Wed, 01-Dec-2010 00:00:00 GMT; path=/"
225
+ @cm.parse(str, urify('http://www.test.jp'))
226
+ cookie = @cm.cookies[0]
227
+ cookie.should be_an_instance_of WebAgent::Cookie
228
+ cookie.name.should eq "inkid"
229
+ cookie.value.should eq "n92b0ADOgACIgUb9lsjHqAAAHu2a"
230
+ cookie.expires.should eq Time.gm(2010, 12, 1, 0,0,0)
231
+ cookie.path.should eq "/"
232
+
233
+ time = Time.now.utc.round + 60
234
+ expires = time.strftime("%a, %d-%b-%Y %H:%M:%S GMT")
235
+ str = "inkid=n92b0ADOgACIgUb9lsjHqAAAHu2a; expires=#{expires}; path=/"
236
+ @cm.parse(str, urify('http://www.test.jp'))
237
+ cookie = @cm.cookies[0]
238
+ cookie.should be_an_instance_of WebAgent::Cookie
239
+ cookie.name.should eq "inkid"
240
+ cookie.value.should eq "n92b0ADOgACIgUb9lsjHqAAAHu2a"
241
+ cookie.expires.should eq time
242
+ cookie.path.should eq "/"
243
+ end
244
+
245
+ it 'find_cookie' do
246
+ str = "xmen=off,0,0,1; path=/; domain=.excite2.co.jp; expires=Wednesday, 31-Dec-2037 12:00:00 GMT"
247
+ @cm.parse(str, urify("http://www.excite2.co.jp/"))
248
+
249
+ str = "xmen=off,0,0,2; path=/; domain=.excite.co.jp; expires=Wednesday, 31-Dec-2037 12:00:00 GMT"
250
+ @cm.parse(str, urify("http://www.excite.co.jp/"))
251
+
252
+ @cm.cookies[0].use = true
253
+ @cm.cookies[1].use = true
254
+
255
+ url = urify('http://www.excite.co.jp/hoge/funi/')
256
+ cookie_str = @cm.find(url)
257
+ cookie_str.should eq "xmen=off,0,0,2"
258
+ end
259
+
260
+ it 'load_cookies' do
261
+ begin
262
+ File.open("tmp_test.tmp","w") {|f|
263
+ f.write <<EOF
264
+ http://www.zdnet.co.jp/news/0106/08/e_gibson.html NGUserID d29b8f49-10875-992421294-1 2145801600 www.zdnet.co.jp / 9 0
265
+ http://www.zdnet.co.jp/news/0106/08/e_gibson.html PACK zd3-992421294-7436 1293839999 .zdnet.co.jp / 13 0
266
+ http://example.org/ key value 0 .example.org / 13 0
267
+ http://example.org/ key value .example.org / 13 0
268
+ EOF
269
+ }
270
+
271
+ @cm.cookies_file = 'tmp_test.tmp'
272
+ @cm.load_cookies()
273
+ c0, c1, c2, c3 = @cm.cookies
274
+ c0.url.to_s.should eq 'http://www.zdnet.co.jp/news/0106/08/e_gibson.html'
275
+ c0.name.should eq 'NGUserID'
276
+ c0.value.should eq 'd29b8f49-10875-992421294-1'
277
+ c0.expires.should eq Time.at(2145801600)
278
+ c0.domain.should eq 'www.zdnet.co.jp'
279
+ c0.path.should eq '/'
280
+ c0.flag.should eq 9
281
+
282
+ c1.url.to_s.should eq 'http://www.zdnet.co.jp/news/0106/08/e_gibson.html'
283
+ c1.name.should eq 'PACK'
284
+ c1.value.should eq 'zd3-992421294-7436'
285
+ c1.expires.should eq Time.at(1293839999)
286
+ c1.domain.should eq '.zdnet.co.jp'
287
+ c1.path.should eq '/'
288
+ c1.flag.should eq 13
289
+ #
290
+ c2.expires.should be_nil
291
+ c3.expires.should be_nil
292
+ ensure
293
+ File.unlink("tmp_test.tmp")
294
+ end
295
+ end
296
+
297
+ it 'save_cookies' do
298
+ str = <<EOF
299
+ http://www.zdnet.co.jp/news/0106/08/e_gibson.html NGUserID d29b8f49-10875-992421294-1 2145801600 www.zdnet.co.jp / 9
300
+ http://www.zdnet.co.jp/news/0106/08/e_gibson.html PACK zd3-992421294-7436 2145801600 .zdnet.co.jp / 13
301
+ EOF
302
+ begin
303
+ File.open("tmp_test.tmp","w") {|f|
304
+ f.write str
305
+ }
306
+ @cm.cookies_file = 'tmp_test.tmp'
307
+ @cm.load_cookies()
308
+ @cm.instance_eval{@is_saved = false}
309
+ @cm.cookies_file = 'tmp_test2.tmp'
310
+ @cm.save_cookies()
311
+ str2 = ''
312
+ File.open("tmp_test2.tmp","r") {|f|
313
+ str2 = f.read()
314
+ }
315
+ str.should eq str2
316
+ #
317
+ File.exist?('tmp_test2.tmp').should be_true
318
+ File.unlink("tmp_test2.tmp")
319
+ @cm.save_cookies()
320
+ File.exist?('tmp_test2.tmp').should be_false
321
+ @cm.save_cookies(true)
322
+ File.exist?('tmp_test2.tmp').should be_true
323
+ ensure
324
+ File.unlink("tmp_test.tmp")
325
+ if FileTest.exist?("tmp_test2.tmp")
326
+ File.unlink("tmp_test2.tmp")
327
+ end
328
+ end
329
+ end
330
+
331
+ it 'not saved expired cookies' do
332
+ begin
333
+ @cm.cookies_file = 'tmp_test.tmp'
334
+ uri = urify('http://www.example.org')
335
+ @cm.parse("foo=1; path=/", uri)
336
+ @cm.parse("bar=2; path=/; expires=", uri)
337
+ @cm.parse("baz=3; path=/; expires=\"\"", uri)
338
+ @cm.parse("qux=4; path=/; expires=#{(Time.now + 10).asctime}", uri)
339
+ @cm.parse("quxx=5; path=/; expires=#{(Time.now - 10).asctime}", uri)
340
+ @cm.save_cookies()
341
+ @cm.load_cookies
342
+ @cm.cookies.size.should eq 1
343
+ ensure
344
+ File.unlink("tmp_test.tmp") if File.exist?("tmp_test.tmp")
345
+ end
346
+ end
347
+
348
+ it 'add' do
349
+ c = WebAgent::Cookie.new()
350
+ c.name = "hoge"
351
+ c.value = "funi"
352
+ c.url = urify("http://www.inac.co.jp/hoge")
353
+ @cm.add(c)
354
+ c = @cm.cookies[0]
355
+ c.name.should eq 'hoge'
356
+ c.value.should eq 'funi'
357
+ c.expires.should be_nil
358
+ end
359
+
360
+ it 'add2' do
361
+ c = WebAgent::Cookie.new()
362
+ c.name = "hoge"
363
+ c.value = "funi"
364
+ c.path = ''
365
+ c.url = urify("http://www.inac.co.jp/hoge/hoge2/hoge3")
366
+ @cm.add(c)
367
+ #
368
+ c = WebAgent::Cookie.new()
369
+ c.name = "hoge"
370
+ c.value = "funi"
371
+ #c.path = '' NO path given -> same as URL
372
+ c.url = urify("http://www.inac.co.jp/hoge/hoge2/hoge3")
373
+ @cm.add(c)
374
+ #
375
+ c1, c2 = @cm.cookies
376
+ c1.path.should eq ''
377
+ c2.path.should eq '/hoge/hoge2'
378
+ end
379
+
380
+ it 'test_check_cookie_accept_domain' do
381
+ @cm.accept_domains = [".example1.co.jp", "www1.example.jp"]
382
+ @cm.reject_domains = [".example2.co.jp", "www2.example.jp"]
383
+ check1 = @cm.check_cookie_accept_domain("www.example1.co.jp")
384
+ check1.should be_true
385
+ check2 = @cm.check_cookie_accept_domain("www.example2.co.jp")
386
+ check2.should be_false
387
+ check3 = @cm.check_cookie_accept_domain("www1.example.jp")
388
+ check3.should be_true
389
+ check4 = @cm.check_cookie_accept_domain("www2.example.jp")
390
+ check4.should be_false
391
+ check5 = @cm.check_cookie_accept_domain("aa.www2.example.jp")
392
+ check5.should be_true
393
+ check6 = @cm.check_cookie_accept_domain("aa.www2.example.jp")
394
+ check6.should be_true
395
+ @cm.check_cookie_accept_domain(nil).should be_false
396
+ end
397
+
398
+ end