Commit graph

109 commits

Author SHA1 Message Date
Akinori MUSHA
40aba54618 Accept a class object where a symbol addressing a class is accepted.
Convert IndexError to ArgumentError, and ArgumentError to TypeError as
appropriate.
2013-04-21 20:35:17 +09:00
Akinori MUSHA
a0202e2192 Cookie#max_age= should not reset #expires when it fails. 2013-04-18 22:22:11 +09:00
Akinori MUSHA
4ef2147138 Fix $LOADED_FEATURES comparison with Ruby 1.8. 2013-04-16 21:56:29 +09:00
Akinori MUSHA
bafb83fc06 Let AbstractStore & AbstractSaver autoloaded and add tests for autoloading. 2013-04-16 16:49:27 +09:00
Akinori MUSHA
04950f6796 Cookie#new: Reject a mixed case symbol as keyword for simplicity.
This fixes error with Ruby 1.8.
2013-04-16 16:39:55 +09:00
Akinori MUSHA
20cb22bbb0 Increase GC threshold for shorter test time. 2013-04-16 10:21:52 +09:00
Akinori MUSHA
2bb7485460 Add tests for CookieJar#clone, #cleanup, expiration by #each and #empty?. 2013-04-16 15:05:00 +09:00
Akinori MUSHA
5bdb8f41ae Cookie#new prefers downcased symbols for keywords.
Test warnings.
2013-04-16 08:44:48 +09:00
Akinori MUSHA
8abf3483e8 Travis-CI keeps reporting SEGV in ruby 1.9.3p327, so disuse at_exit. 2013-04-16 02:20:54 +09:00
Akinori MUSHA
18dc77af9f Replace assert_send in at_exit with a simple message output. 2013-04-16 02:04:59 +09:00
Akinori MUSHA
b8170fb7e2 Increase the chance of having a finalizer called. 2013-04-16 01:52:59 +09:00
Akinori MUSHA
b02e800dfa Comment out unused/advisory bits to gain coverage. 2013-04-16 00:54:56 +09:00
Akinori MUSHA
ded02f8327 Make MozillaStore#close actually "work" by closing open statements.
Add a finalizer to MozillaStore also, which automatically closes the
SQLite3 database.
2013-04-16 00:04:54 +09:00
Akinori MUSHA
db58d2c8ab silently(): Use ensure. 2013-04-16 00:04:15 +09:00
Akinori MUSHA
e9230a00c1 Add tests for MozillaStore#upgrade_database and fix its bugs. 2013-04-16 00:03:03 +09:00
Akinori MUSHA
8e40fc3028 Test compatibility with a YAML file saved by Mechanize::Cookie. 2013-04-15 14:15:46 +09:00
Akinori MUSHA
d44218c2e2 Cookie#acceptable? should not raise ArgumentError when it takes no argument.
Let CookieJar#add convert RuntimeError raised by acceptable? to
ArgumentError.
2013-04-15 10:29:07 +09:00
Akinori MUSHA
28458101b6 HTTP::Cookie.set_cookie_value: Don't take an origin argument. 2013-04-15 08:54:09 +09:00
Akinori MUSHA
1a05bb4dd0 Add more tests. 2013-04-14 13:40:49 +09:00
Akinori MUSHA
028b77987c Gain more coverage. 2013-04-14 13:02:04 +09:00
Akinori MUSHA
655fc9eb56 Add tests for the constructor & store. 2013-04-14 12:19:11 +09:00
Akinori MUSHA
c9a8e29202 Fix a typo. 2013-04-14 12:19:10 +09:00
Akinori MUSHA
a1a130f156 CookieJar#parse: Use the block's return values to decide whether to add a cookie. 2013-04-14 12:10:28 +09:00
Akinori MUSHA
6fcc298b80 MozillaStore saves timestamps in seconds, so use a session cookie for testing. 2013-04-13 13:35:54 +09:00
Akinori MUSHA
9fec000a29 Slightly fix the timestamp tests. 2013-04-13 13:27:09 +09:00
Akinori MUSHA
17a3cbc970 Remove an unsupported keyword: session. 2013-04-13 12:57:13 +09:00
Akinori MUSHA
75267e8002 Use assert_send for comparison tests to see what is going on. 2013-04-12 23:18:06 +09:00
Akinori MUSHA
e1857d76a4 Add Cookie.cookie_value and Cookie.cookie_value_to_hash. 2013-04-12 02:15:13 +09:00
Akinori MUSHA
82e65b4a9b Allow assigning nil to the cookie value to make an expiration cookie.
Cookie.new(): Make the value parameter can be omittable.
2013-04-12 02:13:08 +09:00
Akinori MUSHA
917adc1abb Add a test for Cookie#accessed_at. 2013-04-12 01:25:04 +09:00
Akinori MUSHA
f3b8abdd8e Add CookieJar#delete(). 2013-04-12 01:19:39 +09:00
Akinori MUSHA
6689b3b7aa Drop support for obsolete attributes: version and comment. 2013-04-07 23:09:30 +09:00
Akinori MUSHA
9e46ce0d30 Cookie#max_age= should reject malformed strings. 2013-04-07 23:07:20 +09:00
Akinori MUSHA
f5f82c0304 Fix test_parse_bad_version and test_parse_bad_max_age. 2013-04-07 23:02:14 +09:00
Akinori MUSHA
7dba33bd40 Cookie#domain=: Fix handling of an empty string and let it accept nil. 2013-04-03 17:58:41 +09:00
Akinori MUSHA
ffabb614ad Perform acceptance check in CookieJar#add instead of origin=.
- Cookie#acceptable? is added, which is called by such methods as
  Cookie.parse and CookieJar#add.

- Cookie#origin= no longer raises ArgumentError just because it
  conflicts with the domain.

- Cookie#origin= raises ArgumentError if it is given an object that is
  not URI or string-like.
2013-04-03 17:57:27 +09:00
Akinori MUSHA
dc65a98907 HTTP::Cookie.parse: Change the signature again.
I made the uri parameter optional when I introduced the origin
attribute, but on second thought it should always be given.

I'm making the origin parameter fixed and mandatory again, but this
time it comes next to set_cookie.  This order should look more natural
because the one that comes first is to be parsed.

Since Mechanize::Cookie.parse required the uri parameter to be a URI
object, backward compatibility is still possible.
2013-03-29 01:39:30 +09:00
Akinori MUSHA
ef7bdeefba Cookie#cookie_value too should quote values if necessary. 2013-03-28 22:06:19 +09:00
Akinori MUSHA
2dc17ab7dc Better indentation while test is passing. 2013-03-28 19:24:05 +09:00
Akinori MUSHA
8d7da32cc3 Fully test MozillaStore as well as HashStore. 2013-03-27 02:49:55 +09:00
Akinori MUSHA
11a9df8559 Fix handling of the :for_domain option in HTTP::Cookie.new(). 2013-03-28 01:46:42 +09:00
Akinori MUSHA
c5252649c8 Add some tests that fail to spot bugs. 2013-03-28 00:34:49 +09:00
Akinori MUSHA
d76101722d Catch IndexError instead. 2013-03-27 20:40:56 +09:00
Akinori MUSHA
4ebce92fad Rescue LoadError. 2013-03-27 20:16:05 +09:00
Akinori MUSHA
619b915a94 Fix test_yaml_expires taking care of time precisions. 2013-03-27 20:08:27 +09:00
Akinori MUSHA
683141da59 Use :memory: database to save test time. 2013-03-27 19:50:31 +09:00
Akinori MUSHA
eed7e57813 Use the cookie creation time as base time for Max-Age.
Now #expire returns created_at + max_age when expires is nil.

Cookie.parse: the :date keyword is renamed to :created_at, and the
value is set to in parsed cookies via #created_at.

In YAML serialization, #max_age is stored.
2013-03-27 19:50:30 +09:00
Akinori MUSHA
a0ea64da56 CookieJar.new: Pass the store class via a :store keyword. 2013-03-27 17:43:58 +09:00
Akinori MUSHA
6fade20c59 Make GC threshold user specifiable. 2013-03-27 16:10:05 +09:00
Akinori MUSHA
69b3186666 Add MozillaStore. 2013-03-27 16:01:48 +09:00