mechanize 2.0.1 → 2.1.pre.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of mechanize might be problematic. Click here for more details.
- data.tar.gz.sig +0 -0
- data/CHANGELOG.rdoc +82 -0
- data/EXAMPLES.rdoc +1 -1
- data/FAQ.rdoc +9 -9
- data/Manifest.txt +35 -48
- data/README.rdoc +2 -1
- data/Rakefile +16 -3
- data/lib/mechanize.rb +809 -392
- data/lib/mechanize/content_type_error.rb +10 -11
- data/lib/mechanize/cookie.rb +193 -60
- data/lib/mechanize/cookie_jar.rb +39 -86
- data/lib/mechanize/download.rb +59 -0
- data/lib/mechanize/element_matcher.rb +1 -0
- data/lib/mechanize/file.rb +61 -76
- data/lib/mechanize/file_saver.rb +37 -35
- data/lib/mechanize/form.rb +475 -410
- data/lib/mechanize/form/button.rb +4 -7
- data/lib/mechanize/form/check_box.rb +10 -9
- data/lib/mechanize/form/field.rb +52 -42
- data/lib/mechanize/form/file_upload.rb +17 -19
- data/lib/mechanize/form/hidden.rb +3 -0
- data/lib/mechanize/form/image_button.rb +15 -16
- data/lib/mechanize/form/keygen.rb +34 -0
- data/lib/mechanize/form/multi_select_list.rb +20 -9
- data/lib/mechanize/form/option.rb +48 -47
- data/lib/mechanize/form/radio_button.rb +52 -45
- data/lib/mechanize/form/reset.rb +3 -0
- data/lib/mechanize/form/select_list.rb +10 -6
- data/lib/mechanize/form/submit.rb +3 -0
- data/lib/mechanize/form/text.rb +3 -0
- data/lib/mechanize/form/textarea.rb +3 -0
- data/lib/mechanize/headers.rb +17 -19
- data/lib/mechanize/history.rb +60 -61
- data/lib/mechanize/http.rb +5 -0
- data/lib/mechanize/http/agent.rb +485 -218
- data/lib/mechanize/http/auth_challenge.rb +59 -0
- data/lib/mechanize/http/auth_realm.rb +31 -0
- data/lib/mechanize/http/content_disposition_parser.rb +188 -0
- data/lib/mechanize/http/www_authenticate_parser.rb +155 -0
- data/lib/mechanize/monkey_patch.rb +14 -35
- data/lib/mechanize/page.rb +34 -2
- data/lib/mechanize/page/base.rb +6 -7
- data/lib/mechanize/page/frame.rb +5 -5
- data/lib/mechanize/page/image.rb +23 -23
- data/lib/mechanize/page/label.rb +16 -16
- data/lib/mechanize/page/link.rb +16 -0
- data/lib/mechanize/page/meta_refresh.rb +19 -7
- data/lib/mechanize/parser.rb +173 -0
- data/lib/mechanize/pluggable_parsers.rb +126 -83
- data/lib/mechanize/redirect_limit_reached_error.rb +16 -13
- data/lib/mechanize/redirect_not_get_or_head_error.rb +18 -16
- data/lib/mechanize/response_code_error.rb +16 -17
- data/lib/mechanize/robots_disallowed_error.rb +22 -23
- data/lib/mechanize/test_case.rb +659 -0
- data/lib/mechanize/unauthorized_error.rb +3 -0
- data/lib/mechanize/unsupported_scheme_error.rb +4 -6
- data/lib/mechanize/util.rb +0 -12
- data/test/htdocs/form_order_test.html +11 -0
- data/test/htdocs/form_test.html +2 -2
- data/test/htdocs/tc_links.html +1 -0
- data/test/test_mechanize.rb +367 -59
- data/test/test_mechanize_cookie.rb +69 -4
- data/test/test_mechanize_cookie_jar.rb +200 -124
- data/test/test_mechanize_download.rb +43 -0
- data/test/test_mechanize_file.rb +53 -45
- data/test/{test_mechanize_file_response.rb → test_mechanize_file_connection.rb} +2 -2
- data/test/test_mechanize_file_request.rb +2 -2
- data/test/test_mechanize_file_saver.rb +21 -0
- data/test/test_mechanize_form.rb +345 -46
- data/test/test_mechanize_form_check_box.rb +5 -4
- data/test/test_mechanize_form_encoding.rb +10 -16
- data/test/test_mechanize_form_field.rb +45 -3
- data/test/test_mechanize_form_file_upload.rb +20 -0
- data/test/test_mechanize_form_image_button.rb +2 -2
- data/test/test_mechanize_form_keygen.rb +32 -0
- data/test/test_mechanize_form_multi_select_list.rb +84 -0
- data/test/test_mechanize_form_option.rb +55 -0
- data/test/test_mechanize_form_radio_button.rb +78 -0
- data/test/test_mechanize_form_select_list.rb +76 -0
- data/test/test_mechanize_form_textarea.rb +8 -7
- data/test/{test_headers.rb → test_mechanize_headers.rb} +4 -2
- data/test/test_mechanize_history.rb +103 -0
- data/test/test_mechanize_http_agent.rb +525 -17
- data/test/test_mechanize_http_auth_challenge.rb +39 -0
- data/test/test_mechanize_http_auth_realm.rb +49 -0
- data/test/test_mechanize_http_content_disposition_parser.rb +118 -0
- data/test/test_mechanize_http_www_authenticate_parser.rb +146 -0
- data/test/test_mechanize_link.rb +10 -14
- data/test/test_mechanize_page.rb +118 -0
- data/test/test_mechanize_page_encoding.rb +48 -13
- data/test/test_mechanize_page_frame.rb +16 -0
- data/test/test_mechanize_page_link.rb +27 -19
- data/test/test_mechanize_page_meta_refresh.rb +26 -14
- data/test/test_mechanize_parser.rb +289 -0
- data/test/test_mechanize_pluggable_parser.rb +52 -0
- data/test/test_mechanize_redirect_limit_reached_error.rb +24 -0
- data/test/test_mechanize_redirect_not_get_or_head_error.rb +3 -7
- data/test/test_mechanize_subclass.rb +2 -2
- data/test/test_mechanize_util.rb +24 -13
- data/test/test_multi_select.rb +23 -22
- metadata +145 -114
- metadata.gz.sig +0 -0
- data/lib/mechanize/inspect.rb +0 -88
- data/test/helper.rb +0 -175
- data/test/htdocs/form_select_all.html +0 -16
- data/test/htdocs/form_select_none.html +0 -17
- data/test/htdocs/form_select_noopts.html +0 -10
- data/test/htdocs/iframe_test.html +0 -16
- data/test/htdocs/nofollow.html +0 -9
- data/test/htdocs/norobots.html +0 -8
- data/test/htdocs/rel_nofollow.html +0 -8
- data/test/htdocs/tc_base_images.html +0 -10
- data/test/htdocs/tc_images.html +0 -8
- data/test/htdocs/tc_no_attributes.html +0 -16
- data/test/htdocs/tc_radiobuttons.html +0 -17
- data/test/htdocs/test_bad_encoding.html +0 -52
- data/test/servlets.rb +0 -402
- data/test/ssl_server.rb +0 -48
- data/test/test_cookies.rb +0 -129
- data/test/test_form_action.rb +0 -52
- data/test/test_form_as_hash.rb +0 -59
- data/test/test_form_button.rb +0 -46
- data/test/test_frames.rb +0 -34
- data/test/test_history.rb +0 -118
- data/test/test_history_added.rb +0 -16
- data/test/test_html_unscape_forms.rb +0 -46
- data/test/test_if_modified_since.rb +0 -20
- data/test/test_images.rb +0 -19
- data/test/test_no_attributes.rb +0 -13
- data/test/test_option.rb +0 -18
- data/test/test_pluggable_parser.rb +0 -136
- data/test/test_post_form.rb +0 -37
- data/test/test_pretty_print.rb +0 -22
- data/test/test_radiobutton.rb +0 -75
- data/test/test_redirect_limit_reached.rb +0 -39
- data/test/test_referer.rb +0 -81
- data/test/test_relative_links.rb +0 -40
- data/test/test_request.rb +0 -13
- data/test/test_response_code.rb +0 -53
- data/test/test_robots.rb +0 -72
- data/test/test_save_file.rb +0 -48
- data/test/test_scheme.rb +0 -48
- data/test/test_select.rb +0 -119
- data/test/test_select_all.rb +0 -15
- data/test/test_select_none.rb +0 -15
- data/test/test_select_noopts.rb +0 -18
- data/test/test_set_fields.rb +0 -44
- data/test/test_ssl_server.rb +0 -20
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'mechanize/test_case'
|
2
|
+
|
3
|
+
class TestMechanizePluggableParser < Mechanize::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
super
|
7
|
+
|
8
|
+
@pp = @mech.pluggable_parser
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_aref
|
12
|
+
@pp['text/html'] = Mechanize::Download
|
13
|
+
|
14
|
+
assert_equal Mechanize::Download, @pp['text/html']
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_csv
|
18
|
+
@pp.csv = Mechanize::Download
|
19
|
+
|
20
|
+
assert_equal Mechanize::Download, @pp['text/csv']
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_html
|
24
|
+
assert_equal Mechanize::Page, @pp['text/html']
|
25
|
+
|
26
|
+
@pp.html = Mechanize::Download
|
27
|
+
|
28
|
+
assert_equal Mechanize::Download, @pp['text/html']
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_parser
|
32
|
+
assert_nil @pp['text/xml']
|
33
|
+
|
34
|
+
assert_equal Mechanize::File, @pp.parser('text/xml')
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_pdf
|
38
|
+
@pp.pdf = Mechanize::Download
|
39
|
+
|
40
|
+
assert_equal Mechanize::Download, @pp['application/pdf']
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_xml
|
44
|
+
assert_nil @pp['text/xml']
|
45
|
+
|
46
|
+
@pp.xml = Mechanize::Download
|
47
|
+
|
48
|
+
assert_equal Mechanize::Download, @pp['text/xml']
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'mechanize/test_case'
|
2
|
+
|
3
|
+
class TestMechanizeRedirectLimitReachedError < Mechanize::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
super
|
7
|
+
|
8
|
+
@error = Mechanize::RedirectLimitReachedError.new fake_page, 10
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_message
|
12
|
+
assert_equal 'Redirect limit of 10 reached', @error.message
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_redirects
|
16
|
+
assert_equal 10, @error.redirects
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_response_code
|
20
|
+
assert_equal 200, @error.response_code
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
@@ -1,13 +1,9 @@
|
|
1
|
-
require '
|
1
|
+
require 'mechanize/test_case'
|
2
2
|
|
3
|
-
class TestMechanizeRedirectNotGetOrHead <
|
4
|
-
|
5
|
-
def setup
|
6
|
-
@agent = Mechanize.new
|
7
|
-
end
|
3
|
+
class TestMechanizeRedirectNotGetOrHead < Mechanize::TestCase
|
8
4
|
|
9
5
|
def test_to_s
|
10
|
-
page =
|
6
|
+
page = fake_page
|
11
7
|
|
12
8
|
error = Mechanize::RedirectNotGetOrHeadError.new(page, :put)
|
13
9
|
|
data/test/test_mechanize_util.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
require 'helper'
|
3
2
|
|
4
|
-
|
3
|
+
require 'mechanize/test_case'
|
4
|
+
|
5
|
+
class TestMechanizeUtil < Mechanize::TestCase
|
5
6
|
|
6
7
|
INPUTTED_VALUE = "テスト" # "test" in Japanese UTF-8 encoding
|
7
8
|
CONTENT_ENCODING = 'Shift_JIS' # one of Japanese encoding
|
@@ -19,21 +20,24 @@ class TestMechanizeUtil < MiniTest::Unit::TestCase
|
|
19
20
|
INVALID_ENCODING = 'UTF-eight'
|
20
21
|
|
21
22
|
def setup
|
23
|
+
super
|
24
|
+
|
25
|
+
@MU = Mechanize::Util
|
22
26
|
@result = "not set"
|
23
27
|
end
|
24
28
|
|
25
29
|
def test_from_native_charset
|
26
|
-
@result =
|
30
|
+
@result = @MU.from_native_charset(INPUTTED_VALUE, CONTENT_ENCODING)
|
27
31
|
assert_equal ENCODED_VALUE, @result
|
28
32
|
end
|
29
33
|
|
30
34
|
def test_from_native_charset_returns_nil_when_no_string
|
31
|
-
@result =
|
35
|
+
@result = @MU.from_native_charset(nil, CONTENT_ENCODING)
|
32
36
|
assert_equal nil, @result
|
33
37
|
end
|
34
38
|
|
35
39
|
def test_from_native_charset_doesnot_convert_when_no_encoding
|
36
|
-
@result =
|
40
|
+
@result = @MU.from_native_charset(INPUTTED_VALUE, nil)
|
37
41
|
refute_equal ENCODED_VALUE, @result
|
38
42
|
assert_equal INPUTTED_VALUE, @result
|
39
43
|
end
|
@@ -42,7 +46,7 @@ class TestMechanizeUtil < MiniTest::Unit::TestCase
|
|
42
46
|
parser = Mechanize.html_parser
|
43
47
|
Mechanize.html_parser = 'Another HTML Parser'
|
44
48
|
|
45
|
-
@result =
|
49
|
+
@result = @MU.from_native_charset(INPUTTED_VALUE, CONTENT_ENCODING)
|
46
50
|
refute_equal ENCODED_VALUE, @result
|
47
51
|
assert_equal INPUTTED_VALUE, @result
|
48
52
|
ensure
|
@@ -51,42 +55,49 @@ class TestMechanizeUtil < MiniTest::Unit::TestCase
|
|
51
55
|
|
52
56
|
def test_from_native_charset_raises_error_with_bad_encoding
|
53
57
|
assert_raises(*ENCODING_ERRORS) do
|
54
|
-
|
58
|
+
@MU.from_native_charset(INPUTTED_VALUE, INVALID_ENCODING)
|
55
59
|
end
|
56
60
|
end
|
57
61
|
|
58
62
|
def test_from_native_charset_suppress_encoding_error_when_3rd_arg_is_true
|
59
|
-
|
63
|
+
@MU.from_native_charset(INPUTTED_VALUE, INVALID_ENCODING, true)
|
60
64
|
|
61
65
|
# HACK no assertion
|
62
66
|
end
|
63
67
|
|
64
68
|
def test_from_native_charset_doesnot_convert_when_encoding_error_raised_and_ignored
|
65
|
-
@result =
|
69
|
+
@result = @MU.from_native_charset(INPUTTED_VALUE, INVALID_ENCODING, true)
|
66
70
|
|
67
71
|
refute_equal ENCODED_VALUE, @result
|
68
72
|
assert_equal INPUTTED_VALUE, @result
|
69
73
|
end
|
70
74
|
|
71
75
|
def test_from_native_charset_logs_form_when_encoding_error_raised
|
72
|
-
sio = StringIO.new
|
76
|
+
sio = StringIO.new("")
|
73
77
|
log = Logger.new(sio)
|
74
78
|
log.level = Logger::DEBUG
|
75
79
|
|
76
80
|
assert_raises(*ENCODING_ERRORS) do
|
77
|
-
|
81
|
+
@MU.from_native_charset(INPUTTED_VALUE, INVALID_ENCODING, nil, log)
|
78
82
|
end
|
79
83
|
|
80
84
|
assert_match ERROR_LOG_MESSAGE, sio.string
|
81
85
|
end
|
82
86
|
|
83
87
|
def test_from_native_charset_logs_form_when_encoding_error_is_ignored
|
84
|
-
sio = StringIO.new
|
88
|
+
sio = StringIO.new("")
|
85
89
|
log = Logger.new(sio)
|
86
90
|
log.level = Logger::DEBUG
|
87
91
|
|
88
|
-
|
92
|
+
@MU.from_native_charset(INPUTTED_VALUE, INVALID_ENCODING, true, log)
|
89
93
|
|
90
94
|
assert_match ERROR_LOG_MESSAGE, sio.string
|
91
95
|
end
|
96
|
+
|
97
|
+
def test_self_html_unescape_entity
|
98
|
+
assert_equal '&', @MU::html_unescape('&')
|
99
|
+
assert_equal '&', @MU::html_unescape('&')
|
100
|
+
end
|
101
|
+
|
92
102
|
end
|
103
|
+
|
data/test/test_multi_select.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
|
-
require
|
1
|
+
require 'mechanize/test_case'
|
2
2
|
|
3
|
-
class MultiSelectTest <
|
3
|
+
class MultiSelectTest < Mechanize::TestCase
|
4
4
|
def setup
|
5
|
-
|
6
|
-
|
5
|
+
super
|
6
|
+
|
7
|
+
@page = @mech.get("http://localhost/form_multi_select.html")
|
7
8
|
@form = @page.forms.first
|
8
9
|
end
|
9
10
|
|
@@ -18,18 +19,18 @@ class MultiSelectTest < MiniTest::Unit::TestCase
|
|
18
19
|
end
|
19
20
|
|
20
21
|
def test_select_none
|
21
|
-
page = @
|
22
|
+
page = @mech.get("http://localhost/form_multi_select.html")
|
22
23
|
form = page.forms.first
|
23
24
|
form.field_with(:name => 'list').select_none
|
24
|
-
page = @
|
25
|
+
page = @mech.submit(form)
|
25
26
|
assert_equal(0, page.links.length)
|
26
27
|
end
|
27
28
|
|
28
29
|
def test_select_all
|
29
|
-
page = @
|
30
|
+
page = @mech.get("http://localhost/form_multi_select.html")
|
30
31
|
form = page.forms.first
|
31
32
|
form.field_with(:name => 'list').select_all
|
32
|
-
page = @
|
33
|
+
page = @mech.submit(form)
|
33
34
|
assert_equal(6, page.links.length)
|
34
35
|
assert_equal(1, page.links_with(:text => 'list:1').length)
|
35
36
|
assert_equal(1, page.links_with(:text => 'list:2').length)
|
@@ -40,10 +41,10 @@ class MultiSelectTest < MiniTest::Unit::TestCase
|
|
40
41
|
end
|
41
42
|
|
42
43
|
def test_click_all
|
43
|
-
page = @
|
44
|
+
page = @mech.get("http://localhost/form_multi_select.html")
|
44
45
|
form = page.forms.first
|
45
46
|
form.field_with(:name => 'list').options.each { |o| o.click }
|
46
|
-
page = @
|
47
|
+
page = @mech.submit(form)
|
47
48
|
assert_equal(5, page.links.length)
|
48
49
|
assert_equal(1, page.links_with(:text => 'list:1').length)
|
49
50
|
assert_equal(1, page.links_with(:text => 'list:3').length)
|
@@ -53,38 +54,38 @@ class MultiSelectTest < MiniTest::Unit::TestCase
|
|
53
54
|
end
|
54
55
|
|
55
56
|
def test_select_default
|
56
|
-
page = @
|
57
|
+
page = @mech.get("http://localhost/form_multi_select.html")
|
57
58
|
form = page.forms.first
|
58
|
-
page = @
|
59
|
+
page = @mech.submit(form)
|
59
60
|
assert_equal(1, page.links.length)
|
60
61
|
assert_equal(1, page.links_with(:text => 'list:2').length)
|
61
62
|
end
|
62
63
|
|
63
64
|
def test_select_one
|
64
|
-
page = @
|
65
|
+
page = @mech.get("http://localhost/form_multi_select.html")
|
65
66
|
form = page.forms.first
|
66
67
|
form.list = 'Aaron'
|
67
68
|
assert_equal(['Aaron'], form.list)
|
68
|
-
page = @
|
69
|
+
page = @mech.submit(form)
|
69
70
|
assert_equal(1, page.links.length)
|
70
71
|
assert_equal('list:Aaron', page.links.first.text)
|
71
72
|
end
|
72
73
|
|
73
74
|
def test_select_two
|
74
|
-
page = @
|
75
|
+
page = @mech.get("http://localhost/form_multi_select.html")
|
75
76
|
form = page.forms.first
|
76
77
|
form.list = ['1', 'Aaron']
|
77
|
-
page = @
|
78
|
+
page = @mech.submit(form)
|
78
79
|
assert_equal(2, page.links.length)
|
79
80
|
assert_equal(1, page.links_with(:text => 'list:1').length)
|
80
81
|
assert_equal(1, page.links_with(:text => 'list:Aaron').length)
|
81
82
|
end
|
82
83
|
|
83
84
|
def test_select_three
|
84
|
-
page = @
|
85
|
+
page = @mech.get("http://localhost/form_multi_select.html")
|
85
86
|
form = page.forms.first
|
86
87
|
form.list = ['1', '2', '3']
|
87
|
-
page = @
|
88
|
+
page = @mech.submit(form)
|
88
89
|
assert_equal(3, page.links.length)
|
89
90
|
assert_equal(1, page.links_with(:text => 'list:1').length)
|
90
91
|
assert_equal(1, page.links_with(:text => 'list:2').length)
|
@@ -92,11 +93,11 @@ class MultiSelectTest < MiniTest::Unit::TestCase
|
|
92
93
|
end
|
93
94
|
|
94
95
|
def test_select_three_twice
|
95
|
-
page = @
|
96
|
+
page = @mech.get("http://localhost/form_multi_select.html")
|
96
97
|
form = page.forms.first
|
97
98
|
form.list = ['1', '2', '3']
|
98
99
|
form.list = ['1', '2', '3']
|
99
|
-
page = @
|
100
|
+
page = @mech.submit(form)
|
100
101
|
assert_equal(3, page.links.length)
|
101
102
|
assert_equal(1, page.links_with(:text => 'list:1').length)
|
102
103
|
assert_equal(1, page.links_with(:text => 'list:2').length)
|
@@ -104,12 +105,12 @@ class MultiSelectTest < MiniTest::Unit::TestCase
|
|
104
105
|
end
|
105
106
|
|
106
107
|
def test_select_with_click
|
107
|
-
page = @
|
108
|
+
page = @mech.get("http://localhost/form_multi_select.html")
|
108
109
|
form = page.forms.first
|
109
110
|
form.list = ['1', 'Aaron']
|
110
111
|
form.field_with(:name => 'list').options[3].tick
|
111
112
|
assert_equal(['1', 'Aaron', '4'].sort, form.list.sort)
|
112
|
-
page = @
|
113
|
+
page = @mech.submit(form)
|
113
114
|
assert_equal(3, page.links.length)
|
114
115
|
assert_equal(1, page.links_with(:text => 'list:1').length)
|
115
116
|
assert_equal(1, page.links_with(:text => 'list:Aaron').length)
|
metadata
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mechanize
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 1923831923
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 2
|
8
|
-
- 0
|
9
8
|
- 1
|
10
|
-
|
9
|
+
- pre
|
10
|
+
- 1
|
11
|
+
version: 2.1.pre.1
|
11
12
|
platform: ruby
|
12
13
|
authors:
|
13
14
|
- Eric Hodel
|
14
15
|
- Aaron Patterson
|
15
16
|
- Mike Dalessio
|
17
|
+
- Akinori MUSHA
|
16
18
|
autorequire:
|
17
19
|
bindir: bin
|
18
20
|
cert_chain:
|
@@ -38,21 +40,29 @@ cert_chain:
|
|
38
40
|
x52qPcexcYZR7w==
|
39
41
|
-----END CERTIFICATE-----
|
40
42
|
|
41
|
-
date: 2011-
|
43
|
+
date: 2011-11-09 00:00:00 Z
|
42
44
|
dependencies:
|
43
45
|
- !ruby/object:Gem::Dependency
|
44
|
-
name:
|
46
|
+
name: net-http-digest_auth
|
45
47
|
prerelease: false
|
46
48
|
requirement: &id001 !ruby/object:Gem::Requirement
|
47
49
|
none: false
|
48
50
|
requirements:
|
49
51
|
- - ~>
|
50
52
|
- !ruby/object:Gem::Version
|
51
|
-
hash:
|
53
|
+
hash: 13
|
52
54
|
segments:
|
53
55
|
- 1
|
54
|
-
-
|
55
|
-
version: "1.
|
56
|
+
- 1
|
57
|
+
version: "1.1"
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
hash: 17
|
61
|
+
segments:
|
62
|
+
- 1
|
63
|
+
- 1
|
64
|
+
- 1
|
65
|
+
version: 1.1.1
|
56
66
|
type: :runtime
|
57
67
|
version_requirements: *id001
|
58
68
|
- !ruby/object:Gem::Dependency
|
@@ -63,40 +73,63 @@ dependencies:
|
|
63
73
|
requirements:
|
64
74
|
- - ~>
|
65
75
|
- !ruby/object:Gem::Version
|
66
|
-
hash:
|
76
|
+
hash: 5
|
67
77
|
segments:
|
68
|
-
-
|
69
|
-
-
|
70
|
-
version: "
|
78
|
+
- 2
|
79
|
+
- 3
|
80
|
+
version: "2.3"
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
hash: 7
|
84
|
+
segments:
|
85
|
+
- 2
|
86
|
+
- 3
|
87
|
+
- 2
|
88
|
+
version: 2.3.2
|
71
89
|
type: :runtime
|
72
90
|
version_requirements: *id002
|
73
91
|
- !ruby/object:Gem::Dependency
|
74
|
-
name:
|
92
|
+
name: nokogiri
|
75
93
|
prerelease: false
|
76
94
|
requirement: &id003 !ruby/object:Gem::Requirement
|
77
95
|
none: false
|
78
96
|
requirements:
|
79
97
|
- - ~>
|
80
98
|
- !ruby/object:Gem::Version
|
81
|
-
hash:
|
99
|
+
hash: 7
|
82
100
|
segments:
|
83
101
|
- 1
|
102
|
+
- 4
|
103
|
+
version: "1.4"
|
104
|
+
type: :runtime
|
105
|
+
version_requirements: *id003
|
106
|
+
- !ruby/object:Gem::Dependency
|
107
|
+
name: ntlm-http
|
108
|
+
prerelease: false
|
109
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
110
|
+
none: false
|
111
|
+
requirements:
|
112
|
+
- - ~>
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
hash: 9
|
115
|
+
segments:
|
116
|
+
- 0
|
84
117
|
- 1
|
85
|
-
version: "
|
118
|
+
version: "0.1"
|
86
119
|
- - ">="
|
87
120
|
- !ruby/object:Gem::Version
|
88
|
-
hash:
|
121
|
+
hash: 25
|
89
122
|
segments:
|
123
|
+
- 0
|
90
124
|
- 1
|
91
125
|
- 1
|
92
|
-
|
93
|
-
version: 1.1.1
|
126
|
+
version: 0.1.1
|
94
127
|
type: :runtime
|
95
|
-
version_requirements: *
|
128
|
+
version_requirements: *id004
|
96
129
|
- !ruby/object:Gem::Dependency
|
97
130
|
name: webrobots
|
98
131
|
prerelease: false
|
99
|
-
requirement: &
|
132
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
100
133
|
none: false
|
101
134
|
requirements:
|
102
135
|
- - ~>
|
@@ -115,38 +148,60 @@ dependencies:
|
|
115
148
|
- 9
|
116
149
|
version: 0.0.9
|
117
150
|
type: :runtime
|
118
|
-
version_requirements: *
|
151
|
+
version_requirements: *id005
|
119
152
|
- !ruby/object:Gem::Dependency
|
120
|
-
name:
|
153
|
+
name: domain_name
|
121
154
|
prerelease: false
|
122
|
-
requirement: &
|
155
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
123
156
|
none: false
|
124
157
|
requirements:
|
125
|
-
- -
|
158
|
+
- - ~>
|
126
159
|
- !ruby/object:Gem::Version
|
127
160
|
hash: 1
|
128
161
|
segments:
|
129
|
-
-
|
130
|
-
-
|
162
|
+
- 0
|
163
|
+
- 5
|
164
|
+
version: "0.5"
|
165
|
+
- - ">="
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
hash: 9
|
168
|
+
segments:
|
169
|
+
- 0
|
170
|
+
- 5
|
131
171
|
- 1
|
132
|
-
version:
|
172
|
+
version: 0.5.1
|
173
|
+
type: :runtime
|
174
|
+
version_requirements: *id006
|
175
|
+
- !ruby/object:Gem::Dependency
|
176
|
+
name: minitest
|
177
|
+
prerelease: false
|
178
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
179
|
+
none: false
|
180
|
+
requirements:
|
181
|
+
- - ~>
|
182
|
+
- !ruby/object:Gem::Version
|
183
|
+
hash: 15
|
184
|
+
segments:
|
185
|
+
- 2
|
186
|
+
- 6
|
187
|
+
version: "2.6"
|
133
188
|
type: :development
|
134
|
-
version_requirements: *
|
189
|
+
version_requirements: *id007
|
135
190
|
- !ruby/object:Gem::Dependency
|
136
191
|
name: hoe
|
137
192
|
prerelease: false
|
138
|
-
requirement: &
|
193
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
139
194
|
none: false
|
140
195
|
requirements:
|
141
196
|
- - ~>
|
142
197
|
- !ruby/object:Gem::Version
|
143
|
-
hash:
|
198
|
+
hash: 27
|
144
199
|
segments:
|
145
200
|
- 2
|
146
|
-
-
|
147
|
-
version: "2.
|
201
|
+
- 12
|
202
|
+
version: "2.12"
|
148
203
|
type: :development
|
149
|
-
version_requirements: *
|
204
|
+
version_requirements: *id008
|
150
205
|
description: |-
|
151
206
|
The Mechanize library is used for automating interaction with websites.
|
152
207
|
Mechanize automatically stores and sends cookies, follows redirects,
|
@@ -157,6 +212,7 @@ email:
|
|
157
212
|
- drbrain@segment7.net
|
158
213
|
- aaronp@rubyforge.org
|
159
214
|
- mike.dalessio@gmail.com
|
215
|
+
- knu@idaemons.org
|
160
216
|
executables: []
|
161
217
|
|
162
218
|
extensions: []
|
@@ -188,6 +244,7 @@ files:
|
|
188
244
|
- lib/mechanize/content_type_error.rb
|
189
245
|
- lib/mechanize/cookie.rb
|
190
246
|
- lib/mechanize/cookie_jar.rb
|
247
|
+
- lib/mechanize/download.rb
|
191
248
|
- lib/mechanize/element_matcher.rb
|
192
249
|
- lib/mechanize/file.rb
|
193
250
|
- lib/mechanize/file_connection.rb
|
@@ -199,16 +256,25 @@ files:
|
|
199
256
|
- lib/mechanize/form/check_box.rb
|
200
257
|
- lib/mechanize/form/field.rb
|
201
258
|
- lib/mechanize/form/file_upload.rb
|
259
|
+
- lib/mechanize/form/hidden.rb
|
202
260
|
- lib/mechanize/form/image_button.rb
|
261
|
+
- lib/mechanize/form/keygen.rb
|
203
262
|
- lib/mechanize/form/multi_select_list.rb
|
204
263
|
- lib/mechanize/form/option.rb
|
205
264
|
- lib/mechanize/form/radio_button.rb
|
265
|
+
- lib/mechanize/form/reset.rb
|
206
266
|
- lib/mechanize/form/select_list.rb
|
267
|
+
- lib/mechanize/form/submit.rb
|
268
|
+
- lib/mechanize/form/text.rb
|
269
|
+
- lib/mechanize/form/textarea.rb
|
207
270
|
- lib/mechanize/headers.rb
|
208
271
|
- lib/mechanize/history.rb
|
209
272
|
- lib/mechanize/http.rb
|
210
273
|
- lib/mechanize/http/agent.rb
|
211
|
-
- lib/mechanize/
|
274
|
+
- lib/mechanize/http/auth_challenge.rb
|
275
|
+
- lib/mechanize/http/auth_realm.rb
|
276
|
+
- lib/mechanize/http/content_disposition_parser.rb
|
277
|
+
- lib/mechanize/http/www_authenticate_parser.rb
|
212
278
|
- lib/mechanize/monkey_patch.rb
|
213
279
|
- lib/mechanize/page.rb
|
214
280
|
- lib/mechanize/page/base.rb
|
@@ -217,12 +283,15 @@ files:
|
|
217
283
|
- lib/mechanize/page/label.rb
|
218
284
|
- lib/mechanize/page/link.rb
|
219
285
|
- lib/mechanize/page/meta_refresh.rb
|
286
|
+
- lib/mechanize/parser.rb
|
220
287
|
- lib/mechanize/pluggable_parsers.rb
|
221
288
|
- lib/mechanize/redirect_limit_reached_error.rb
|
222
289
|
- lib/mechanize/redirect_not_get_or_head_error.rb
|
223
290
|
- lib/mechanize/response_code_error.rb
|
224
291
|
- lib/mechanize/response_read_error.rb
|
225
292
|
- lib/mechanize/robots_disallowed_error.rb
|
293
|
+
- lib/mechanize/test_case.rb
|
294
|
+
- lib/mechanize/unauthorized_error.rb
|
226
295
|
- lib/mechanize/unsupported_scheme_error.rb
|
227
296
|
- lib/mechanize/util.rb
|
228
297
|
- test/data/htpasswd
|
@@ -230,7 +299,6 @@ files:
|
|
230
299
|
- test/data/server.csr
|
231
300
|
- test/data/server.key
|
232
301
|
- test/data/server.pem
|
233
|
-
- test/helper.rb
|
234
302
|
- test/htdocs/alt_text.html
|
235
303
|
- test/htdocs/bad_form_test.html
|
236
304
|
- test/htdocs/button.jpg
|
@@ -243,31 +311,24 @@ files:
|
|
243
311
|
- test/htdocs/form_multival.html
|
244
312
|
- test/htdocs/form_no_action.html
|
245
313
|
- test/htdocs/form_no_input_name.html
|
314
|
+
- test/htdocs/form_order_test.html
|
246
315
|
- test/htdocs/form_select.html
|
247
|
-
- test/htdocs/form_select_all.html
|
248
|
-
- test/htdocs/form_select_none.html
|
249
|
-
- test/htdocs/form_select_noopts.html
|
250
316
|
- test/htdocs/form_set_fields.html
|
251
317
|
- test/htdocs/form_test.html
|
252
318
|
- test/htdocs/frame_referer_test.html
|
253
319
|
- test/htdocs/frame_test.html
|
254
320
|
- test/htdocs/google.html
|
255
|
-
- test/htdocs/iframe_test.html
|
256
321
|
- test/htdocs/index.html
|
257
322
|
- test/htdocs/link with space.html
|
258
323
|
- test/htdocs/meta_cookie.html
|
259
324
|
- test/htdocs/no_title_test.html
|
260
|
-
- test/htdocs/nofollow.html
|
261
325
|
- test/htdocs/noindex.html
|
262
|
-
- test/htdocs/norobots.html
|
263
326
|
- test/htdocs/rails_3_encoding_hack_form_test.html
|
264
|
-
- test/htdocs/rel_nofollow.html
|
265
327
|
- test/htdocs/relative/tc_relative_links.html
|
266
328
|
- test/htdocs/robots.html
|
267
329
|
- test/htdocs/robots.txt
|
268
330
|
- test/htdocs/tc_bad_charset.html
|
269
331
|
- test/htdocs/tc_bad_links.html
|
270
|
-
- test/htdocs/tc_base_images.html
|
271
332
|
- test/htdocs/tc_base_link.html
|
272
333
|
- test/htdocs/tc_blank_form.html
|
273
334
|
- test/htdocs/tc_charset.html
|
@@ -276,72 +337,54 @@ files:
|
|
276
337
|
- test/htdocs/tc_field_precedence.html
|
277
338
|
- test/htdocs/tc_follow_meta.html
|
278
339
|
- test/htdocs/tc_form_action.html
|
279
|
-
- test/htdocs/tc_images.html
|
280
340
|
- test/htdocs/tc_links.html
|
281
341
|
- test/htdocs/tc_meta_in_body.html
|
282
|
-
- test/htdocs/tc_no_attributes.html
|
283
342
|
- test/htdocs/tc_pretty_print.html
|
284
|
-
- test/htdocs/tc_radiobuttons.html
|
285
343
|
- test/htdocs/tc_referer.html
|
286
344
|
- test/htdocs/tc_relative_links.html
|
287
345
|
- test/htdocs/tc_textarea.html
|
288
|
-
- test/htdocs/test_bad_encoding.html
|
289
346
|
- test/htdocs/test_click.html
|
290
347
|
- test/htdocs/unusual______.html
|
291
|
-
- test/servlets.rb
|
292
|
-
- test/ssl_server.rb
|
293
|
-
- test/test_cookies.rb
|
294
|
-
- test/test_form_action.rb
|
295
|
-
- test/test_form_as_hash.rb
|
296
|
-
- test/test_form_button.rb
|
297
|
-
- test/test_frames.rb
|
298
|
-
- test/test_headers.rb
|
299
|
-
- test/test_history.rb
|
300
|
-
- test/test_history_added.rb
|
301
|
-
- test/test_html_unscape_forms.rb
|
302
|
-
- test/test_if_modified_since.rb
|
303
|
-
- test/test_images.rb
|
304
348
|
- test/test_mechanize.rb
|
305
349
|
- test/test_mechanize_cookie.rb
|
306
350
|
- test/test_mechanize_cookie_jar.rb
|
351
|
+
- test/test_mechanize_download.rb
|
307
352
|
- test/test_mechanize_file.rb
|
353
|
+
- test/test_mechanize_file_connection.rb
|
308
354
|
- test/test_mechanize_file_request.rb
|
309
|
-
- test/
|
355
|
+
- test/test_mechanize_file_saver.rb
|
310
356
|
- test/test_mechanize_form.rb
|
311
357
|
- test/test_mechanize_form_check_box.rb
|
312
358
|
- test/test_mechanize_form_encoding.rb
|
313
359
|
- test/test_mechanize_form_field.rb
|
360
|
+
- test/test_mechanize_form_file_upload.rb
|
314
361
|
- test/test_mechanize_form_image_button.rb
|
362
|
+
- test/test_mechanize_form_keygen.rb
|
363
|
+
- test/test_mechanize_form_multi_select_list.rb
|
364
|
+
- test/test_mechanize_form_option.rb
|
365
|
+
- test/test_mechanize_form_radio_button.rb
|
366
|
+
- test/test_mechanize_form_select_list.rb
|
315
367
|
- test/test_mechanize_form_textarea.rb
|
368
|
+
- test/test_mechanize_headers.rb
|
369
|
+
- test/test_mechanize_history.rb
|
316
370
|
- test/test_mechanize_http_agent.rb
|
371
|
+
- test/test_mechanize_http_auth_challenge.rb
|
372
|
+
- test/test_mechanize_http_auth_realm.rb
|
373
|
+
- test/test_mechanize_http_content_disposition_parser.rb
|
374
|
+
- test/test_mechanize_http_www_authenticate_parser.rb
|
317
375
|
- test/test_mechanize_link.rb
|
376
|
+
- test/test_mechanize_page.rb
|
318
377
|
- test/test_mechanize_page_encoding.rb
|
378
|
+
- test/test_mechanize_page_frame.rb
|
319
379
|
- test/test_mechanize_page_link.rb
|
320
380
|
- test/test_mechanize_page_meta_refresh.rb
|
381
|
+
- test/test_mechanize_parser.rb
|
382
|
+
- test/test_mechanize_pluggable_parser.rb
|
383
|
+
- test/test_mechanize_redirect_limit_reached_error.rb
|
321
384
|
- test/test_mechanize_redirect_not_get_or_head_error.rb
|
322
385
|
- test/test_mechanize_subclass.rb
|
323
386
|
- test/test_mechanize_util.rb
|
324
387
|
- test/test_multi_select.rb
|
325
|
-
- test/test_no_attributes.rb
|
326
|
-
- test/test_option.rb
|
327
|
-
- test/test_pluggable_parser.rb
|
328
|
-
- test/test_post_form.rb
|
329
|
-
- test/test_pretty_print.rb
|
330
|
-
- test/test_radiobutton.rb
|
331
|
-
- test/test_redirect_limit_reached.rb
|
332
|
-
- test/test_referer.rb
|
333
|
-
- test/test_relative_links.rb
|
334
|
-
- test/test_request.rb
|
335
|
-
- test/test_response_code.rb
|
336
|
-
- test/test_robots.rb
|
337
|
-
- test/test_save_file.rb
|
338
|
-
- test/test_scheme.rb
|
339
|
-
- test/test_select.rb
|
340
|
-
- test/test_select_all.rb
|
341
|
-
- test/test_select_none.rb
|
342
|
-
- test/test_select_noopts.rb
|
343
|
-
- test/test_set_fields.rb
|
344
|
-
- test/test_ssl_server.rb
|
345
388
|
- .gemtest
|
346
389
|
homepage: http://mechanize.rubyforge.org
|
347
390
|
licenses: []
|
@@ -375,60 +418,48 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
375
418
|
requirements: []
|
376
419
|
|
377
420
|
rubyforge_project: mechanize
|
378
|
-
rubygems_version: 1.8.
|
421
|
+
rubygems_version: 1.8.10
|
379
422
|
signing_key:
|
380
423
|
specification_version: 3
|
381
424
|
summary: The Mechanize library is used for automating interaction with websites
|
382
425
|
test_files:
|
383
|
-
- test/test_cookies.rb
|
384
|
-
- test/test_form_action.rb
|
385
|
-
- test/test_form_as_hash.rb
|
386
|
-
- test/test_form_button.rb
|
387
|
-
- test/test_frames.rb
|
388
|
-
- test/test_headers.rb
|
389
|
-
- test/test_history.rb
|
390
|
-
- test/test_history_added.rb
|
391
|
-
- test/test_html_unscape_forms.rb
|
392
|
-
- test/test_if_modified_since.rb
|
393
|
-
- test/test_images.rb
|
394
426
|
- test/test_mechanize.rb
|
395
427
|
- test/test_mechanize_cookie.rb
|
396
428
|
- test/test_mechanize_cookie_jar.rb
|
429
|
+
- test/test_mechanize_download.rb
|
397
430
|
- test/test_mechanize_file.rb
|
431
|
+
- test/test_mechanize_file_connection.rb
|
398
432
|
- test/test_mechanize_file_request.rb
|
399
|
-
- test/
|
433
|
+
- test/test_mechanize_file_saver.rb
|
400
434
|
- test/test_mechanize_form.rb
|
401
435
|
- test/test_mechanize_form_check_box.rb
|
402
436
|
- test/test_mechanize_form_encoding.rb
|
403
437
|
- test/test_mechanize_form_field.rb
|
438
|
+
- test/test_mechanize_form_file_upload.rb
|
404
439
|
- test/test_mechanize_form_image_button.rb
|
440
|
+
- test/test_mechanize_form_keygen.rb
|
441
|
+
- test/test_mechanize_form_multi_select_list.rb
|
442
|
+
- test/test_mechanize_form_option.rb
|
443
|
+
- test/test_mechanize_form_radio_button.rb
|
444
|
+
- test/test_mechanize_form_select_list.rb
|
405
445
|
- test/test_mechanize_form_textarea.rb
|
446
|
+
- test/test_mechanize_headers.rb
|
447
|
+
- test/test_mechanize_history.rb
|
406
448
|
- test/test_mechanize_http_agent.rb
|
449
|
+
- test/test_mechanize_http_auth_challenge.rb
|
450
|
+
- test/test_mechanize_http_auth_realm.rb
|
451
|
+
- test/test_mechanize_http_content_disposition_parser.rb
|
452
|
+
- test/test_mechanize_http_www_authenticate_parser.rb
|
407
453
|
- test/test_mechanize_link.rb
|
454
|
+
- test/test_mechanize_page.rb
|
408
455
|
- test/test_mechanize_page_encoding.rb
|
456
|
+
- test/test_mechanize_page_frame.rb
|
409
457
|
- test/test_mechanize_page_link.rb
|
410
458
|
- test/test_mechanize_page_meta_refresh.rb
|
459
|
+
- test/test_mechanize_parser.rb
|
460
|
+
- test/test_mechanize_pluggable_parser.rb
|
461
|
+
- test/test_mechanize_redirect_limit_reached_error.rb
|
411
462
|
- test/test_mechanize_redirect_not_get_or_head_error.rb
|
412
463
|
- test/test_mechanize_subclass.rb
|
413
464
|
- test/test_mechanize_util.rb
|
414
465
|
- test/test_multi_select.rb
|
415
|
-
- test/test_no_attributes.rb
|
416
|
-
- test/test_option.rb
|
417
|
-
- test/test_pluggable_parser.rb
|
418
|
-
- test/test_post_form.rb
|
419
|
-
- test/test_pretty_print.rb
|
420
|
-
- test/test_radiobutton.rb
|
421
|
-
- test/test_redirect_limit_reached.rb
|
422
|
-
- test/test_referer.rb
|
423
|
-
- test/test_relative_links.rb
|
424
|
-
- test/test_request.rb
|
425
|
-
- test/test_response_code.rb
|
426
|
-
- test/test_robots.rb
|
427
|
-
- test/test_save_file.rb
|
428
|
-
- test/test_scheme.rb
|
429
|
-
- test/test_select.rb
|
430
|
-
- test/test_select_all.rb
|
431
|
-
- test/test_select_none.rb
|
432
|
-
- test/test_select_noopts.rb
|
433
|
-
- test/test_set_fields.rb
|
434
|
-
- test/test_ssl_server.rb
|