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.

Files changed (148) hide show
  1. data.tar.gz.sig +0 -0
  2. data/CHANGELOG.rdoc +82 -0
  3. data/EXAMPLES.rdoc +1 -1
  4. data/FAQ.rdoc +9 -9
  5. data/Manifest.txt +35 -48
  6. data/README.rdoc +2 -1
  7. data/Rakefile +16 -3
  8. data/lib/mechanize.rb +809 -392
  9. data/lib/mechanize/content_type_error.rb +10 -11
  10. data/lib/mechanize/cookie.rb +193 -60
  11. data/lib/mechanize/cookie_jar.rb +39 -86
  12. data/lib/mechanize/download.rb +59 -0
  13. data/lib/mechanize/element_matcher.rb +1 -0
  14. data/lib/mechanize/file.rb +61 -76
  15. data/lib/mechanize/file_saver.rb +37 -35
  16. data/lib/mechanize/form.rb +475 -410
  17. data/lib/mechanize/form/button.rb +4 -7
  18. data/lib/mechanize/form/check_box.rb +10 -9
  19. data/lib/mechanize/form/field.rb +52 -42
  20. data/lib/mechanize/form/file_upload.rb +17 -19
  21. data/lib/mechanize/form/hidden.rb +3 -0
  22. data/lib/mechanize/form/image_button.rb +15 -16
  23. data/lib/mechanize/form/keygen.rb +34 -0
  24. data/lib/mechanize/form/multi_select_list.rb +20 -9
  25. data/lib/mechanize/form/option.rb +48 -47
  26. data/lib/mechanize/form/radio_button.rb +52 -45
  27. data/lib/mechanize/form/reset.rb +3 -0
  28. data/lib/mechanize/form/select_list.rb +10 -6
  29. data/lib/mechanize/form/submit.rb +3 -0
  30. data/lib/mechanize/form/text.rb +3 -0
  31. data/lib/mechanize/form/textarea.rb +3 -0
  32. data/lib/mechanize/headers.rb +17 -19
  33. data/lib/mechanize/history.rb +60 -61
  34. data/lib/mechanize/http.rb +5 -0
  35. data/lib/mechanize/http/agent.rb +485 -218
  36. data/lib/mechanize/http/auth_challenge.rb +59 -0
  37. data/lib/mechanize/http/auth_realm.rb +31 -0
  38. data/lib/mechanize/http/content_disposition_parser.rb +188 -0
  39. data/lib/mechanize/http/www_authenticate_parser.rb +155 -0
  40. data/lib/mechanize/monkey_patch.rb +14 -35
  41. data/lib/mechanize/page.rb +34 -2
  42. data/lib/mechanize/page/base.rb +6 -7
  43. data/lib/mechanize/page/frame.rb +5 -5
  44. data/lib/mechanize/page/image.rb +23 -23
  45. data/lib/mechanize/page/label.rb +16 -16
  46. data/lib/mechanize/page/link.rb +16 -0
  47. data/lib/mechanize/page/meta_refresh.rb +19 -7
  48. data/lib/mechanize/parser.rb +173 -0
  49. data/lib/mechanize/pluggable_parsers.rb +126 -83
  50. data/lib/mechanize/redirect_limit_reached_error.rb +16 -13
  51. data/lib/mechanize/redirect_not_get_or_head_error.rb +18 -16
  52. data/lib/mechanize/response_code_error.rb +16 -17
  53. data/lib/mechanize/robots_disallowed_error.rb +22 -23
  54. data/lib/mechanize/test_case.rb +659 -0
  55. data/lib/mechanize/unauthorized_error.rb +3 -0
  56. data/lib/mechanize/unsupported_scheme_error.rb +4 -6
  57. data/lib/mechanize/util.rb +0 -12
  58. data/test/htdocs/form_order_test.html +11 -0
  59. data/test/htdocs/form_test.html +2 -2
  60. data/test/htdocs/tc_links.html +1 -0
  61. data/test/test_mechanize.rb +367 -59
  62. data/test/test_mechanize_cookie.rb +69 -4
  63. data/test/test_mechanize_cookie_jar.rb +200 -124
  64. data/test/test_mechanize_download.rb +43 -0
  65. data/test/test_mechanize_file.rb +53 -45
  66. data/test/{test_mechanize_file_response.rb → test_mechanize_file_connection.rb} +2 -2
  67. data/test/test_mechanize_file_request.rb +2 -2
  68. data/test/test_mechanize_file_saver.rb +21 -0
  69. data/test/test_mechanize_form.rb +345 -46
  70. data/test/test_mechanize_form_check_box.rb +5 -4
  71. data/test/test_mechanize_form_encoding.rb +10 -16
  72. data/test/test_mechanize_form_field.rb +45 -3
  73. data/test/test_mechanize_form_file_upload.rb +20 -0
  74. data/test/test_mechanize_form_image_button.rb +2 -2
  75. data/test/test_mechanize_form_keygen.rb +32 -0
  76. data/test/test_mechanize_form_multi_select_list.rb +84 -0
  77. data/test/test_mechanize_form_option.rb +55 -0
  78. data/test/test_mechanize_form_radio_button.rb +78 -0
  79. data/test/test_mechanize_form_select_list.rb +76 -0
  80. data/test/test_mechanize_form_textarea.rb +8 -7
  81. data/test/{test_headers.rb → test_mechanize_headers.rb} +4 -2
  82. data/test/test_mechanize_history.rb +103 -0
  83. data/test/test_mechanize_http_agent.rb +525 -17
  84. data/test/test_mechanize_http_auth_challenge.rb +39 -0
  85. data/test/test_mechanize_http_auth_realm.rb +49 -0
  86. data/test/test_mechanize_http_content_disposition_parser.rb +118 -0
  87. data/test/test_mechanize_http_www_authenticate_parser.rb +146 -0
  88. data/test/test_mechanize_link.rb +10 -14
  89. data/test/test_mechanize_page.rb +118 -0
  90. data/test/test_mechanize_page_encoding.rb +48 -13
  91. data/test/test_mechanize_page_frame.rb +16 -0
  92. data/test/test_mechanize_page_link.rb +27 -19
  93. data/test/test_mechanize_page_meta_refresh.rb +26 -14
  94. data/test/test_mechanize_parser.rb +289 -0
  95. data/test/test_mechanize_pluggable_parser.rb +52 -0
  96. data/test/test_mechanize_redirect_limit_reached_error.rb +24 -0
  97. data/test/test_mechanize_redirect_not_get_or_head_error.rb +3 -7
  98. data/test/test_mechanize_subclass.rb +2 -2
  99. data/test/test_mechanize_util.rb +24 -13
  100. data/test/test_multi_select.rb +23 -22
  101. metadata +145 -114
  102. metadata.gz.sig +0 -0
  103. data/lib/mechanize/inspect.rb +0 -88
  104. data/test/helper.rb +0 -175
  105. data/test/htdocs/form_select_all.html +0 -16
  106. data/test/htdocs/form_select_none.html +0 -17
  107. data/test/htdocs/form_select_noopts.html +0 -10
  108. data/test/htdocs/iframe_test.html +0 -16
  109. data/test/htdocs/nofollow.html +0 -9
  110. data/test/htdocs/norobots.html +0 -8
  111. data/test/htdocs/rel_nofollow.html +0 -8
  112. data/test/htdocs/tc_base_images.html +0 -10
  113. data/test/htdocs/tc_images.html +0 -8
  114. data/test/htdocs/tc_no_attributes.html +0 -16
  115. data/test/htdocs/tc_radiobuttons.html +0 -17
  116. data/test/htdocs/test_bad_encoding.html +0 -52
  117. data/test/servlets.rb +0 -402
  118. data/test/ssl_server.rb +0 -48
  119. data/test/test_cookies.rb +0 -129
  120. data/test/test_form_action.rb +0 -52
  121. data/test/test_form_as_hash.rb +0 -59
  122. data/test/test_form_button.rb +0 -46
  123. data/test/test_frames.rb +0 -34
  124. data/test/test_history.rb +0 -118
  125. data/test/test_history_added.rb +0 -16
  126. data/test/test_html_unscape_forms.rb +0 -46
  127. data/test/test_if_modified_since.rb +0 -20
  128. data/test/test_images.rb +0 -19
  129. data/test/test_no_attributes.rb +0 -13
  130. data/test/test_option.rb +0 -18
  131. data/test/test_pluggable_parser.rb +0 -136
  132. data/test/test_post_form.rb +0 -37
  133. data/test/test_pretty_print.rb +0 -22
  134. data/test/test_radiobutton.rb +0 -75
  135. data/test/test_redirect_limit_reached.rb +0 -39
  136. data/test/test_referer.rb +0 -81
  137. data/test/test_relative_links.rb +0 -40
  138. data/test/test_request.rb +0 -13
  139. data/test/test_response_code.rb +0 -53
  140. data/test/test_robots.rb +0 -72
  141. data/test/test_save_file.rb +0 -48
  142. data/test/test_scheme.rb +0 -48
  143. data/test/test_select.rb +0 -119
  144. data/test/test_select_all.rb +0 -15
  145. data/test/test_select_none.rb +0 -15
  146. data/test/test_select_noopts.rb +0 -18
  147. data/test/test_set_fields.rb +0 -44
  148. 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 'helper'
1
+ require 'mechanize/test_case'
2
2
 
3
- class TestMechanizeRedirectNotGetOrHead < MiniTest::Unit::TestCase
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 = MechTestHelper.fake_page(@agent)
6
+ page = fake_page
11
7
 
12
8
  error = Mechanize::RedirectNotGetOrHeadError.new(page, :put)
13
9
 
@@ -1,6 +1,6 @@
1
- require "helper"
1
+ require 'mechanize/test_case'
2
2
 
3
- class TestMechanizeSubclass < MiniTest::Unit::TestCase
3
+ class TestMechanizeSubclass < Mechanize::TestCase
4
4
 
5
5
  class Parent < Mechanize
6
6
  @html_parser = :parser
@@ -1,7 +1,8 @@
1
1
  # coding: utf-8
2
- require 'helper'
3
2
 
4
- class TestMechanizeUtil < MiniTest::Unit::TestCase
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 = Mechanize::Util.from_native_charset(INPUTTED_VALUE, CONTENT_ENCODING)
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 = Mechanize::Util.from_native_charset(nil, CONTENT_ENCODING)
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 = Mechanize::Util.from_native_charset(INPUTTED_VALUE, nil)
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 = Mechanize::Util.from_native_charset(INPUTTED_VALUE, CONTENT_ENCODING)
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
- Mechanize::Util.from_native_charset(INPUTTED_VALUE, INVALID_ENCODING)
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
- Mechanize::Util.from_native_charset(INPUTTED_VALUE, INVALID_ENCODING, true)
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 = Mechanize::Util.from_native_charset(INPUTTED_VALUE, INVALID_ENCODING, true)
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
- Mechanize::Util.from_native_charset(INPUTTED_VALUE, INVALID_ENCODING, nil, log)
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
- Mechanize::Util.from_native_charset(INPUTTED_VALUE, INVALID_ENCODING, true, log)
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('&amp;')
100
+ end
101
+
92
102
  end
103
+
@@ -1,9 +1,10 @@
1
- require "helper"
1
+ require 'mechanize/test_case'
2
2
 
3
- class MultiSelectTest < MiniTest::Unit::TestCase
3
+ class MultiSelectTest < Mechanize::TestCase
4
4
  def setup
5
- @agent = Mechanize.new
6
- @page = @agent.get("http://localhost/form_multi_select.html")
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 = @agent.get("http://localhost/form_multi_select.html")
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 = @agent.submit(form)
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 = @agent.get("http://localhost/form_multi_select.html")
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 = @agent.submit(form)
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 = @agent.get("http://localhost/form_multi_select.html")
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 = @agent.submit(form)
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 = @agent.get("http://localhost/form_multi_select.html")
57
+ page = @mech.get("http://localhost/form_multi_select.html")
57
58
  form = page.forms.first
58
- page = @agent.submit(form)
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 = @agent.get("http://localhost/form_multi_select.html")
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 = @agent.submit(form)
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 = @agent.get("http://localhost/form_multi_select.html")
75
+ page = @mech.get("http://localhost/form_multi_select.html")
75
76
  form = page.forms.first
76
77
  form.list = ['1', 'Aaron']
77
- page = @agent.submit(form)
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 = @agent.get("http://localhost/form_multi_select.html")
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 = @agent.submit(form)
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 = @agent.get("http://localhost/form_multi_select.html")
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 = @agent.submit(form)
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 = @agent.get("http://localhost/form_multi_select.html")
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 = @agent.submit(form)
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: 13
4
+ hash: 1923831923
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
- - 0
9
8
  - 1
10
- version: 2.0.1
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-06-28 00:00:00 Z
43
+ date: 2011-11-09 00:00:00 Z
42
44
  dependencies:
43
45
  - !ruby/object:Gem::Dependency
44
- name: nokogiri
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: 7
53
+ hash: 13
52
54
  segments:
53
55
  - 1
54
- - 4
55
- version: "1.4"
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: 31
76
+ hash: 5
67
77
  segments:
68
- - 1
69
- - 8
70
- version: "1.8"
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: net-http-digest_auth
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: 13
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: "1.1"
118
+ version: "0.1"
86
119
  - - ">="
87
120
  - !ruby/object:Gem::Version
88
- hash: 17
121
+ hash: 25
89
122
  segments:
123
+ - 0
90
124
  - 1
91
125
  - 1
92
- - 1
93
- version: 1.1.1
126
+ version: 0.1.1
94
127
  type: :runtime
95
- version_requirements: *id003
128
+ version_requirements: *id004
96
129
  - !ruby/object:Gem::Dependency
97
130
  name: webrobots
98
131
  prerelease: false
99
- requirement: &id004 !ruby/object:Gem::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: *id004
151
+ version_requirements: *id005
119
152
  - !ruby/object:Gem::Dependency
120
- name: minitest
153
+ name: domain_name
121
154
  prerelease: false
122
- requirement: &id005 !ruby/object:Gem::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
- - 2
130
- - 3
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: 2.3.1
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: *id005
189
+ version_requirements: *id007
135
190
  - !ruby/object:Gem::Dependency
136
191
  name: hoe
137
192
  prerelease: false
138
- requirement: &id006 !ruby/object:Gem::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: 17
198
+ hash: 27
144
199
  segments:
145
200
  - 2
146
- - 9
147
- version: "2.9"
201
+ - 12
202
+ version: "2.12"
148
203
  type: :development
149
- version_requirements: *id006
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/inspect.rb
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/test_mechanize_file_response.rb
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.5
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/test_mechanize_file_response.rb
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