http-cookie 1.0.0.pre3 → 1.0.0.pre4

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: 38b7c03ef15bbe6b866f7128b719962c7776fa16
4
- data.tar.gz: 79078f90e4250e68ec2fa0b6250ee378d7681aea
3
+ metadata.gz: b4b4b558d9627051478d3ea9e33579ffedadbe50
4
+ data.tar.gz: 1c3bfc5bd3379d934cc4aeda4211ad339d4ac9dc
5
5
  SHA512:
6
- metadata.gz: 41d93c054cda8e2fbb07554de72061fcf6218da13dce541fda0581056315b0d0438307c1f95043d59bce7742e4cee08ea9295f75c7fc1ddf297849cf7ed87ee0
7
- data.tar.gz: a9cebb93040062c160bccf8758a25898af16f8b8fc2e5118a5cfb7210ba96b2f212b8154ca2b4e1fb1e2e740a5efaffd515bd9addc0ddee3be94d6e93e89f7f9
6
+ metadata.gz: a5b077b1f4220e1a6c5dc9454f498d2d0757d55584ebad1b19a9f565ab5d91070a519b6c1f75b8118e88efd0542614bc5b15282952bbf12d29bdff9daacacb0c
7
+ data.tar.gz: f16235e47faae4d97c500ea2ccea5c9a7fc3948c366906ce7ad1a09dd11474754b351a66919e34bbe3e6a9b87ec7f050d7ef3b5f84bb2004f56c2bed613ef4e9
data/README.md CHANGED
@@ -114,10 +114,10 @@ equivalent using `HTTP::Cookie`:
114
114
  - `Mechanize::CookieJar#jar`
115
115
 
116
116
  There is no direct access to the internal hash in
117
- `HTTP::CookieJar` since it has introduced an abstract storage
118
- layer. If you want to tweak the internals of the hash storage,
119
- try creating a new storage class referring to the default storage
120
- class `HTTP::CookieJar::HashStore`.
117
+ `HTTP::CookieJar` since it has introduced an abstract store layer.
118
+ If you want to tweak the internals of the hash store, try creating
119
+ a new store class referring to the default store class
120
+ `HTTP::CookieJar::HashStore`.
121
121
 
122
122
  If you desperately need it you can access it by
123
123
  `jar.store.instance_variable_get(:@jar)`, but there is no
data/lib/http/cookie.rb CHANGED
@@ -38,7 +38,8 @@ class HTTP::Cookie
38
38
  name value
39
39
  domain for_domain path
40
40
  secure httponly
41
- expires created_at accessed_at
41
+ expires max_age
42
+ created_at accessed_at
42
43
  ]
43
44
 
44
45
  if String.respond_to?(:try_convert)
@@ -110,8 +111,8 @@ class HTTP::Cookie
110
111
  # The setter method accepts a Time object, a string representation
111
112
  # of date/time, or `nil`.
112
113
  #
113
- # Note that #max_age and #expires are mutually exclusive. Setting
114
- # \#max_age resets #expires to nil, and vice versa.
114
+ # Setting this value resets #max_age to nil. When #max_age is
115
+ # non-nil, #expires returns `created_at + max_age`.
115
116
  #
116
117
  # :attr_accessor: expires
117
118
 
@@ -122,8 +123,7 @@ class HTTP::Cookie
122
123
  # represents an integer which will be stringified and then
123
124
  # integerized using #to_i.
124
125
  #
125
- # Note that #max_age and #expires are mutually exclusive. Setting
126
- # \#max_age resets #expires to nil, and vice versa.
126
+ # This value is reset to nil when #expires= is called.
127
127
  #
128
128
  # :attr_accessor: max_age
129
129
 
@@ -232,22 +232,17 @@ class HTTP::Cookie
232
232
  # given origin is not allowed to issue is not included in the
233
233
  # resulted array.
234
234
  #
235
- # Any Max-Age attribute value found is converted to an expires
236
- # value computing from the current time so that expiration check
237
- # (#expired?) can be performed.
238
- #
239
235
  # If a block is given, each cookie object is passed to the block.
240
236
  #
241
237
  # Available option keywords are below:
242
238
  #
243
- # `origin`
239
+ # :origin
244
240
  # : The cookie's origin URI/URL
245
241
  #
246
- # `date`
247
- # : The base date used for interpreting Max-Age attribute values
248
- # instead of the current time
242
+ # :created_at
243
+ # : The creation time of the cookies parsed.
249
244
  #
250
- # `logger`
245
+ # :logger
251
246
  # : Logger object useful for debugging
252
247
  #
253
248
  # ### Compatibility Note for Mechanize::Cookie users
@@ -271,9 +266,8 @@ class HTTP::Cookie
271
266
  if options
272
267
  logger = options[:logger]
273
268
  origin = options[:origin] and origin = URI(origin)
274
- date = options[:date]
269
+ created_at = options[:created_at]
275
270
  end
276
- date ||= Time.now
277
271
 
278
272
  [].tap { |cookies|
279
273
  s = Scanner.new(set_cookie, logger)
@@ -282,6 +276,7 @@ class HTTP::Cookie
282
276
  break if name.nil? || name.empty?
283
277
 
284
278
  cookie = new(name, value)
279
+ cookie.created_at = created_at if created_at
285
280
  attrs.each { |aname, avalue|
286
281
  begin
287
282
  case aname
@@ -311,10 +306,6 @@ class HTTP::Cookie
311
306
  end
312
307
  }
313
308
 
314
- # Have `expires` set instead of `max_age`, so that
315
- # expiration check (`expired?`) can be performed.
316
- cookie.expires = date + cookie.max_age if cookie.max_age
317
-
318
309
  if origin
319
310
  begin
320
311
  cookie.origin = origin
@@ -445,7 +436,9 @@ class HTTP::Cookie
445
436
  attr_reader :session
446
437
  alias session? session
447
438
 
448
- attr_reader :expires
439
+ def expires
440
+ @expires or @created_at && @max_age ? @created_at + @max_age : nil
441
+ end
449
442
 
450
443
  # See #expires.
451
444
  def expires=(t)
@@ -483,8 +476,11 @@ class HTTP::Cookie
483
476
 
484
477
  # Tests if this cookie is expired by now, or by a given time.
485
478
  def expired?(time = Time.now)
486
- return false unless @expires
487
- time > @expires
479
+ if expires = self.expires
480
+ expires <= time
481
+ else
482
+ false
483
+ end
488
484
  end
489
485
 
490
486
  # Expires this cookie by setting the expires attribute value to a
@@ -501,7 +497,8 @@ class HTTP::Cookie
501
497
  # The comment attribute.
502
498
  attr_accessor :comment
503
499
 
504
- # The time this cookie was created at.
500
+ # The time this cookie was created at. This value is used as a base
501
+ # date for interpreting the Max-Age attribute value. See #expires.
505
502
  attr_accessor :created_at
506
503
 
507
504
  # The time this cookie was last accessed at.
@@ -618,11 +615,16 @@ class HTTP::Cookie
618
615
 
619
616
  # YAML deserialization helper for Psych.
620
617
  def yaml_initialize(tag, map)
618
+ expires = nil
621
619
  map.each { |key, value|
622
620
  case key
621
+ when 'expires'
622
+ # avoid clobbering max_age
623
+ expires = value
623
624
  when *PERSISTENT_PROPERTIES
624
625
  __send__(:"#{key}=", value)
625
626
  end
626
627
  }
628
+ self.expires = expires if self.max_age.nil?
627
629
  end
628
630
  end
@@ -1,5 +1,5 @@
1
1
  module HTTP
2
2
  class Cookie
3
- VERSION = "1.0.0.pre3"
3
+ VERSION = "1.0.0.pre4"
4
4
  end
5
5
  end
@@ -1,3 +1,4 @@
1
+ # :markup: markdown
1
2
  require 'http/cookie'
2
3
 
3
4
  ##
@@ -10,18 +11,30 @@ class HTTP::CookieJar
10
11
 
11
12
  attr_reader :store
12
13
 
13
- # Generates a new cookie jar. The default store class is `:hash`,
14
- # which maps to `HTTP::CookieJar::HashStore`. Any given options are
15
- # passed through to the initializer of the specified store class.
16
- # For example, the `:mozilla` (`HTTP::CookieJar::MozillaStore`)
17
- # store class requires a `:filename` option.
18
- def initialize(store = :hash, options = nil)
19
- case store
14
+ # Generates a new cookie jar.
15
+ #
16
+ # Available option keywords are as below:
17
+ #
18
+ # :store
19
+ # : The store class that backs this jar. (default: `:hash`)
20
+ # A symbol or an instance of a store class is accepted. Symbols are
21
+ # mapped to store classes, like `:hash` to
22
+ # `HTTP::CookieJar::HashStore` and `:mozilla` to
23
+ # `HTTP::CookieJar::MozillaStore`.
24
+ #
25
+ # Any options given are passed through to the initializer of the
26
+ # specified store class. For example, the `:mozilla`
27
+ # (`HTTP::CookieJar::MozillaStore`) store class requires a
28
+ # `:filename` option. See individual store classes for details.
29
+ def initialize(options = nil)
30
+ opthash = {
31
+ :store => :hash,
32
+ }
33
+ opthash.update(options) if options
34
+ case store = opthash[:store]
20
35
  when Symbol
21
- @store = AbstractStore.implementation(store).new(options)
36
+ @store = AbstractStore.implementation(store).new(opthash)
22
37
  when AbstractStore
23
- options.empty? or
24
- raise ArgumentError, 'wrong number of arguments (%d for 1)' % (1 + options.size)
25
38
  @store = store
26
39
  else
27
40
  raise TypeError, 'wrong object given as cookie store: %s' % store.inspect
@@ -32,7 +45,7 @@ class HTTP::CookieJar
32
45
  @store = other.instance_eval { @store.dup }
33
46
  end
34
47
 
35
- # Adds a +cookie+ to the jar and return self. If a given cookie has
48
+ # Adds a cookie to the jar and return self. If a given cookie has
36
49
  # no domain or path attribute values and the origin is unknown,
37
50
  # ArgumentError is raised.
38
51
  #
@@ -71,7 +84,7 @@ class HTTP::CookieJar
71
84
  }.sort
72
85
  end
73
86
 
74
- # Tests if the jar is empty. If +url+ is given, tests if there is
87
+ # Tests if the jar is empty. If `url` is given, tests if there is
75
88
  # no cookie for the URL.
76
89
  def empty?(url = nil)
77
90
  if url
@@ -84,12 +97,12 @@ class HTTP::CookieJar
84
97
 
85
98
  # Iterates over all cookies that are not expired.
86
99
  #
87
- # An optional argument +uri+ specifies a URI/URL indicating the
100
+ # An optional argument `uri` specifies a URI/URL indicating the
88
101
  # destination of the cookies being selected. Every cookie yielded
89
102
  # should be good to send to the given URI,
90
103
  # i.e. cookie.valid_for_uri?(uri) evaluates to true.
91
104
  #
92
- # If (and only if) the +uri+ option is given, last access time of
105
+ # If (and only if) the `uri` option is given, last access time of
93
106
  # each cookie is updated to the current time.
94
107
  def each(uri = nil, &block)
95
108
  block_given? or return enum_for(__method__, uri)
@@ -114,16 +127,21 @@ class HTTP::CookieJar
114
127
  #
115
128
  # Available option keywords are below:
116
129
  #
117
- # * +format+
118
- # [<tt>:yaml</tt>]
119
- # YAML structure (default)
120
- # [<tt>:cookiestxt</tt>]
121
- # Mozilla's cookies.txt format
122
- # * +session+
123
- # [+true+]
124
- # Save session cookies as well.
125
- # [+false+]
126
- # Do not save session cookies. (default)
130
+ # * `:format`
131
+ # <dl class="rdoc-list note-list">
132
+ # <dt>:yaml</dt>
133
+ # <dd>YAML structure (default)</dd>
134
+ # <dt>:cookiestxt</dt>
135
+ # <dd>: Mozilla's cookies.txt format</dd>
136
+ # </dl>
137
+ #
138
+ # * `:session`
139
+ # <dl class="rdoc-list note-list">
140
+ # <dt>true</dt>
141
+ # <dd>Save session cookies as well.</dd>
142
+ # <dt>false</dt>
143
+ # <dd>Do not save session cookies. (default)</dd>
144
+ # </dl>
127
145
  #
128
146
  # All options given are passed through to the underlying cookie
129
147
  # saver module.
@@ -175,11 +193,13 @@ class HTTP::CookieJar
175
193
  #
176
194
  # Available option keywords are below:
177
195
  #
178
- # * +format+
179
- # [<tt>:yaml</tt>]
180
- # YAML structure (default)
181
- # [<tt>:cookiestxt</tt>]
182
- # Mozilla's cookies.txt format
196
+ # * `:format`
197
+ # <dl class="rdoc-list note-list">
198
+ # <dt>:yaml</dt>
199
+ # <dd>YAML structure (default)</dd>
200
+ # <dt>:cookiestxt</dt>
201
+ # <dd>: Mozilla's cookies.txt format</dd>
202
+ # </dl>
183
203
  #
184
204
  # All options given are passed through to the underlying cookie
185
205
  # saver module.
@@ -39,7 +39,7 @@ class HTTP::CookieJar::CookiestxtSaver < HTTP::CookieJar::AbstractSaver
39
39
  @for_domain ? True : False,
40
40
  @path,
41
41
  @secure ? True : False,
42
- @expires.to_i,
42
+ expires.to_i,
43
43
  @name,
44
44
  @value
45
45
  ]
@@ -9,7 +9,7 @@ end
9
9
  # :startdoc:
10
10
 
11
11
  class HTTP::CookieJar
12
- # A store class that uses a hash of hashes.
12
+ # A store class that uses a hash-based cookie store.
13
13
  class HashStore < AbstractStore
14
14
  def default_options
15
15
  {
@@ -17,20 +17,26 @@ class HTTP::CookieJar
17
17
  }
18
18
  end
19
19
 
20
+ # Generates a hash based cookie store.
21
+ #
22
+ # Available option keywords are as below:
23
+ #
24
+ # :gc_threshold
25
+ # : GC threshold; A GC happens when this many times cookies have
26
+ # been stored (default: `HTTP::Cookie::MAX_COOKIES_TOTAL / 20`)
20
27
  def initialize(options = nil)
21
28
  super
22
29
 
23
- @jar = {}
24
- # {
25
- # hostname => {
26
- # path => {
27
- # name => cookie,
28
- # ...
29
- # },
30
+ @jar = {
31
+ # hostname => {
32
+ # path => {
33
+ # name => cookie,
30
34
  # ...
31
35
  # },
32
36
  # ...
33
- # }
37
+ # },
38
+ # ...
39
+ }
34
40
 
35
41
  @gc_index = 0
36
42
  end
@@ -1,7 +1,10 @@
1
+ # :markup: markdown
1
2
  require 'http/cookie_jar'
2
3
  require 'sqlite3'
3
4
 
4
5
  class HTTP::CookieJar
6
+ # A store class that uses Mozilla compatible SQLite3 database as
7
+ # backing store.
5
8
  class MozillaStore < AbstractStore
6
9
  SCHEMA_VERSION = 5
7
10
 
@@ -26,6 +29,27 @@ class HTTP::CookieJar
26
29
  appId inBrowserElement
27
30
  ]
28
31
 
32
+ # Generates a Mozilla cookie store. If the file does not exist,
33
+ # it is created. If it does and its schema is old, it is
34
+ # automatically upgraded with a new schema keeping the existing
35
+ # data.
36
+ #
37
+ # Available option keywords are as below:
38
+ #
39
+ # :filename
40
+ # : A file name of the SQLite3 database to open. This option is
41
+ # mandatory.
42
+ #
43
+ # :gc_threshold
44
+ # : GC threshold; A GC happens when this many times cookies have
45
+ # been stored (default: `HTTP::Cookie::MAX_COOKIES_TOTAL / 20`)
46
+ #
47
+ # :app_id
48
+ # : application ID (default: `0`) to have per application jar.
49
+ #
50
+ # :in_browser_element
51
+ # : a flag to tell if cookies are stored in an in browser
52
+ # element. (default: `false`)
29
53
  def initialize(options = nil)
30
54
  super
31
55
 
@@ -39,6 +63,22 @@ class HTTP::CookieJar
39
63
  @gc_index = 0
40
64
  end
41
65
 
66
+ # The file name of the SQLite3 database given in initialization.
67
+ attr_reader :filename
68
+
69
+ # Closes the SQLite3 database. After closing, any operation may
70
+ # raise an error.
71
+ def close
72
+ @db.close
73
+ self
74
+ end
75
+
76
+ # Tests if the SQLite3 database is closed.
77
+ def closed?
78
+ @db.closed?
79
+ end
80
+
81
+ # Returns the schema version of the database.
42
82
  def schema_version
43
83
  @schema_version ||= @db.execute("PRAGMA user_version").first[0]
44
84
  rescue SQLite3::SQLException
@@ -200,18 +200,18 @@ class TestHTTPCookie < Test::Unit::TestCase
200
200
 
201
201
  cookie = HTTP::Cookie.parse('name=Akinori; max-age=3600', :origin => url).first
202
202
  assert_in_delta Time.now + 3600, cookie.expires, 1
203
- cookie = HTTP::Cookie.parse('name=Akinori; max-age=3600', :origin => url, :date => base).first
203
+ cookie = HTTP::Cookie.parse('name=Akinori; max-age=3600', :origin => url, :created_at => base).first
204
204
  assert_equal base + 3600, cookie.expires
205
205
 
206
206
  # Max-Age has precedence over Expires
207
207
  cookie = HTTP::Cookie.parse("name=Akinori; max-age=3600; expires=#{date}", :origin => url).first
208
208
  assert_in_delta Time.now + 3600, cookie.expires, 1
209
- cookie = HTTP::Cookie.parse("name=Akinori; max-age=3600; expires=#{date}", :origin => url, :date => base).first
209
+ cookie = HTTP::Cookie.parse("name=Akinori; max-age=3600; expires=#{date}", :origin => url, :created_at => base).first
210
210
  assert_equal base + 3600, cookie.expires
211
211
 
212
212
  cookie = HTTP::Cookie.parse("name=Akinori; expires=#{date}; max-age=3600", :origin => url).first
213
213
  assert_in_delta Time.now + 3600, cookie.expires, 1
214
- cookie = HTTP::Cookie.parse("name=Akinori; expires=#{date}; max-age=3600", :origin => url, :date => base).first
214
+ cookie = HTTP::Cookie.parse("name=Akinori; expires=#{date}; max-age=3600", :origin => url, :created_at => base).first
215
215
  assert_equal base + 3600, cookie.expires
216
216
  end
217
217
 
@@ -382,8 +382,8 @@ class TestHTTPCookie < Test::Unit::TestCase
382
382
  date = Time.at(Time.now.to_i)
383
383
  cookie_params.keys.combine.each do |keys|
384
384
  cookie_text = [cookie_value, *keys.map { |key| cookie_params[key] }].join('; ')
385
- cookie, = HTTP::Cookie.parse(cookie_text, :origin => url, :date => date)
386
- cookie2, = HTTP::Cookie.parse(cookie.set_cookie_value, :origin => url, :date => date)
385
+ cookie, = HTTP::Cookie.parse(cookie_text, :origin => url, :created_at => date)
386
+ cookie2, = HTTP::Cookie.parse(cookie.set_cookie_value, :origin => url, :created_at => date)
387
387
 
388
388
  assert_equal(cookie.name, cookie2.name)
389
389
  assert_equal(cookie.value, cookie2.value)
@@ -539,7 +539,7 @@ class TestHTTPCookie < Test::Unit::TestCase
539
539
 
540
540
  cookie.max_age = 3600
541
541
  assert_equal false, cookie.session?
542
- assert_equal nil, cookie.expires
542
+ assert_equal cookie.created_at + 3600, cookie.expires
543
543
 
544
544
  cookie.max_age = nil
545
545
  assert_equal true, cookie.session?
@@ -775,6 +775,38 @@ class TestHTTPCookie < Test::Unit::TestCase
775
775
  }
776
776
  end
777
777
 
778
+ def test_yaml_expires
779
+ require 'yaml'
780
+ cookie = HTTP::Cookie.new(cookie_values)
781
+
782
+ assert_equal false, cookie.session?
783
+ assert_equal nil, cookie.max_age
784
+
785
+ ycookie = YAML.load(cookie.to_yaml)
786
+ assert_equal false, ycookie.session?
787
+ assert_equal nil, ycookie.max_age
788
+
789
+ cookie.expires = nil
790
+ ycookie = YAML.load(cookie.to_yaml)
791
+ assert_equal true, ycookie.session?
792
+ assert_equal nil, ycookie.max_age
793
+
794
+ cookie.expires = Time.now + 3600
795
+ ycookie = YAML.load(cookie.to_yaml)
796
+ assert_equal false, ycookie.session?
797
+ assert_equal nil, ycookie.max_age
798
+
799
+ cookie.max_age = 3600
800
+ ycookie = YAML.load(cookie.to_yaml)
801
+ assert_equal false, ycookie.session?
802
+ assert_equal cookie.created_at + 3600, ycookie.expires
803
+
804
+ cookie.max_age = nil
805
+ ycookie = YAML.load(cookie.to_yaml)
806
+ assert_equal true, ycookie.session?
807
+ assert_equal nil, ycookie.expires
808
+ end
809
+
778
810
  def test_s_path_match?
779
811
  assert_equal true, HTTP::Cookie.path_match?('/admin/', '/admin/index')
780
812
  assert_equal false, HTTP::Cookie.path_match?('/admin/', '/Admin/index')
@@ -363,13 +363,16 @@ class TestHTTPCookieJar < Test::Unit::TestCase
363
363
  h_cookie = HTTP::Cookie.new(cookie_values(:name => 'Quux',
364
364
  :value => 'Foo#Quux',
365
365
  :httponly => true))
366
-
366
+ ma_cookie = HTTP::Cookie.new(cookie_values(:name => 'Maxage',
367
+ :value => 'Foo#Maxage',
368
+ :max_age => 15000))
367
369
  @jar.add(cookie)
368
370
  @jar.add(s_cookie)
369
371
  @jar.add(cookie2)
370
372
  @jar.add(h_cookie)
373
+ @jar.add(ma_cookie)
371
374
 
372
- assert_equal(4, @jar.cookies(url).length)
375
+ assert_equal(5, @jar.cookies(url).length)
373
376
 
374
377
  Dir.mktmpdir do |dir|
375
378
  filename = File.join(dir, "cookies.txt")
@@ -384,7 +387,7 @@ class TestHTTPCookieJar < Test::Unit::TestCase
384
387
  jar = HTTP::CookieJar.new
385
388
  jar.load(filename, :cookiestxt) # HACK test the format
386
389
  cookies = jar.cookies(url)
387
- assert_equal(3, cookies.length)
390
+ assert_equal(4, cookies.length)
388
391
  cookies.each { |cookie|
389
392
  case cookie.name
390
393
  when 'Foo'
@@ -407,13 +410,17 @@ class TestHTTPCookieJar < Test::Unit::TestCase
407
410
  assert_equal true, cookie.for_domain
408
411
  assert_equal '/', cookie.path
409
412
  assert_equal true, cookie.httponly?
413
+ when 'Maxage'
414
+ assert_equal 'Foo#Maxage', cookie.value
415
+ assert_equal nil, cookie.max_age
416
+ assert_in_delta ma_cookie.expires, cookie.expires, 1
410
417
  else
411
418
  raise
412
419
  end
413
420
  }
414
421
  end
415
422
 
416
- assert_equal(4, @jar.cookies(url).length)
423
+ assert_equal(5, @jar.cookies(url).length)
417
424
  end
418
425
 
419
426
  def test_expire_cookies
@@ -591,19 +598,27 @@ class TestHTTPCookieJar < Test::Unit::TestCase
591
598
  def test_max_cookies_hashstore
592
599
  gc_threshold = 150
593
600
  h_test_max_cookies(
594
- HTTP::CookieJar.new(:hash,
601
+ HTTP::CookieJar.new(
602
+ :store => :hash,
595
603
  :gc_threshold => gc_threshold),
596
604
  HTTP::Cookie::MAX_COOKIES_TOTAL + gc_threshold)
597
605
  end
598
606
 
599
607
  def test_max_cookies_mozillastore
600
608
  gc_threshold = 150
601
- Dir.mktmpdir { |dir|
602
- h_test_max_cookies(
603
- HTTP::CookieJar.new(:mozilla,
604
- :gc_threshold => gc_threshold,
605
- :filename => File.join(dir, "cookies.sqlite")),
606
- HTTP::Cookie::MAX_COOKIES_TOTAL + gc_threshold)
607
- }
609
+ h_test_max_cookies(
610
+ HTTP::CookieJar.new(
611
+ :store => :mozilla,
612
+ :gc_threshold => gc_threshold,
613
+ :filename => ":memory:"),
614
+ HTTP::Cookie::MAX_COOKIES_TOTAL + gc_threshold)
615
+ #Dir.mktmpdir { |dir|
616
+ # h_test_max_cookies(
617
+ # HTTP::CookieJar.new(
618
+ # :store => :mozilla,
619
+ # :gc_threshold => gc_threshold,
620
+ # :filename => File.join(dir, "cookies.sqlite")),
621
+ # HTTP::Cookie::MAX_COOKIES_TOTAL + gc_threshold)
622
+ #}
608
623
  end
609
624
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: http-cookie
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.pre3
4
+ version: 1.0.0.pre4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Akinori MUSHA