diamond-mechanize 2.1 → 2.2

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.
Files changed (147) hide show
  1. metadata +222 -167
  2. data/Rakefile +0 -49
  3. data/lib/mechanize/content_type_error.rb +0 -13
  4. data/lib/mechanize/cookie.rb +0 -232
  5. data/lib/mechanize/cookie_jar.rb +0 -194
  6. data/lib/mechanize/download.rb +0 -59
  7. data/lib/mechanize/element_matcher.rb +0 -36
  8. data/lib/mechanize/file.rb +0 -65
  9. data/lib/mechanize/file_connection.rb +0 -17
  10. data/lib/mechanize/file_request.rb +0 -26
  11. data/lib/mechanize/file_response.rb +0 -74
  12. data/lib/mechanize/file_saver.rb +0 -39
  13. data/lib/mechanize/form/button.rb +0 -6
  14. data/lib/mechanize/form/check_box.rb +0 -12
  15. data/lib/mechanize/form/field.rb +0 -54
  16. data/lib/mechanize/form/file_upload.rb +0 -21
  17. data/lib/mechanize/form/hidden.rb +0 -3
  18. data/lib/mechanize/form/image_button.rb +0 -19
  19. data/lib/mechanize/form/keygen.rb +0 -34
  20. data/lib/mechanize/form/multi_select_list.rb +0 -94
  21. data/lib/mechanize/form/option.rb +0 -50
  22. data/lib/mechanize/form/radio_button.rb +0 -55
  23. data/lib/mechanize/form/reset.rb +0 -3
  24. data/lib/mechanize/form/select_list.rb +0 -44
  25. data/lib/mechanize/form/submit.rb +0 -3
  26. data/lib/mechanize/form/text.rb +0 -3
  27. data/lib/mechanize/form/textarea.rb +0 -3
  28. data/lib/mechanize/form.rb +0 -543
  29. data/lib/mechanize/headers.rb +0 -23
  30. data/lib/mechanize/history.rb +0 -82
  31. data/lib/mechanize/http/agent.rb +0 -1004
  32. data/lib/mechanize/http/auth_challenge.rb +0 -59
  33. data/lib/mechanize/http/auth_realm.rb +0 -31
  34. data/lib/mechanize/http/content_disposition_parser.rb +0 -188
  35. data/lib/mechanize/http/www_authenticate_parser.rb +0 -155
  36. data/lib/mechanize/http.rb +0 -8
  37. data/lib/mechanize/monkey_patch.rb +0 -16
  38. data/lib/mechanize/page/base.rb +0 -7
  39. data/lib/mechanize/page/frame.rb +0 -27
  40. data/lib/mechanize/page/image.rb +0 -30
  41. data/lib/mechanize/page/label.rb +0 -20
  42. data/lib/mechanize/page/link.rb +0 -98
  43. data/lib/mechanize/page/meta_refresh.rb +0 -68
  44. data/lib/mechanize/page.rb +0 -440
  45. data/lib/mechanize/parser.rb +0 -173
  46. data/lib/mechanize/pluggable_parsers.rb +0 -144
  47. data/lib/mechanize/redirect_limit_reached_error.rb +0 -19
  48. data/lib/mechanize/redirect_not_get_or_head_error.rb +0 -21
  49. data/lib/mechanize/response_code_error.rb +0 -21
  50. data/lib/mechanize/response_read_error.rb +0 -27
  51. data/lib/mechanize/robots_disallowed_error.rb +0 -28
  52. data/lib/mechanize/test_case.rb +0 -663
  53. data/lib/mechanize/unauthorized_error.rb +0 -3
  54. data/lib/mechanize/unsupported_scheme_error.rb +0 -6
  55. data/lib/mechanize/util.rb +0 -101
  56. data/lib/mechanize.rb +0 -1079
  57. data/test/data/htpasswd +0 -1
  58. data/test/data/server.crt +0 -16
  59. data/test/data/server.csr +0 -12
  60. data/test/data/server.key +0 -15
  61. data/test/data/server.pem +0 -15
  62. data/test/htdocs/alt_text.html +0 -10
  63. data/test/htdocs/bad_form_test.html +0 -9
  64. data/test/htdocs/button.jpg +0 -0
  65. data/test/htdocs/canonical_uri.html +0 -9
  66. data/test/htdocs/dir with spaces/foo.html +0 -1
  67. data/test/htdocs/empty_form.html +0 -6
  68. data/test/htdocs/file_upload.html +0 -26
  69. data/test/htdocs/find_link.html +0 -41
  70. data/test/htdocs/form_multi_select.html +0 -16
  71. data/test/htdocs/form_multival.html +0 -37
  72. data/test/htdocs/form_no_action.html +0 -18
  73. data/test/htdocs/form_no_input_name.html +0 -16
  74. data/test/htdocs/form_order_test.html +0 -11
  75. data/test/htdocs/form_select.html +0 -16
  76. data/test/htdocs/form_set_fields.html +0 -14
  77. data/test/htdocs/form_test.html +0 -188
  78. data/test/htdocs/frame_referer_test.html +0 -10
  79. data/test/htdocs/frame_test.html +0 -30
  80. data/test/htdocs/google.html +0 -13
  81. data/test/htdocs/index.html +0 -6
  82. data/test/htdocs/link with space.html +0 -5
  83. data/test/htdocs/meta_cookie.html +0 -11
  84. data/test/htdocs/no_title_test.html +0 -6
  85. data/test/htdocs/noindex.html +0 -9
  86. data/test/htdocs/rails_3_encoding_hack_form_test.html +0 -27
  87. data/test/htdocs/relative/tc_relative_links.html +0 -21
  88. data/test/htdocs/robots.html +0 -8
  89. data/test/htdocs/robots.txt +0 -2
  90. data/test/htdocs/tc_bad_charset.html +0 -9
  91. data/test/htdocs/tc_bad_links.html +0 -5
  92. data/test/htdocs/tc_base_link.html +0 -8
  93. data/test/htdocs/tc_blank_form.html +0 -11
  94. data/test/htdocs/tc_charset.html +0 -6
  95. data/test/htdocs/tc_checkboxes.html +0 -19
  96. data/test/htdocs/tc_encoded_links.html +0 -5
  97. data/test/htdocs/tc_field_precedence.html +0 -11
  98. data/test/htdocs/tc_follow_meta.html +0 -8
  99. data/test/htdocs/tc_form_action.html +0 -48
  100. data/test/htdocs/tc_links.html +0 -19
  101. data/test/htdocs/tc_meta_in_body.html +0 -9
  102. data/test/htdocs/tc_pretty_print.html +0 -17
  103. data/test/htdocs/tc_referer.html +0 -16
  104. data/test/htdocs/tc_relative_links.html +0 -19
  105. data/test/htdocs/tc_textarea.html +0 -23
  106. data/test/htdocs/test_click.html +0 -11
  107. data/test/htdocs/unusual______.html +0 -5
  108. data/test/test_mechanize.rb +0 -1164
  109. data/test/test_mechanize_cookie.rb +0 -451
  110. data/test/test_mechanize_cookie_jar.rb +0 -483
  111. data/test/test_mechanize_download.rb +0 -43
  112. data/test/test_mechanize_file.rb +0 -61
  113. data/test/test_mechanize_file_connection.rb +0 -21
  114. data/test/test_mechanize_file_request.rb +0 -19
  115. data/test/test_mechanize_file_saver.rb +0 -21
  116. data/test/test_mechanize_form.rb +0 -875
  117. data/test/test_mechanize_form_check_box.rb +0 -38
  118. data/test/test_mechanize_form_encoding.rb +0 -114
  119. data/test/test_mechanize_form_field.rb +0 -63
  120. data/test/test_mechanize_form_file_upload.rb +0 -20
  121. data/test/test_mechanize_form_image_button.rb +0 -12
  122. data/test/test_mechanize_form_keygen.rb +0 -32
  123. data/test/test_mechanize_form_multi_select_list.rb +0 -84
  124. data/test/test_mechanize_form_option.rb +0 -55
  125. data/test/test_mechanize_form_radio_button.rb +0 -78
  126. data/test/test_mechanize_form_select_list.rb +0 -76
  127. data/test/test_mechanize_form_textarea.rb +0 -52
  128. data/test/test_mechanize_headers.rb +0 -35
  129. data/test/test_mechanize_history.rb +0 -103
  130. data/test/test_mechanize_http_agent.rb +0 -1225
  131. data/test/test_mechanize_http_auth_challenge.rb +0 -39
  132. data/test/test_mechanize_http_auth_realm.rb +0 -49
  133. data/test/test_mechanize_http_content_disposition_parser.rb +0 -118
  134. data/test/test_mechanize_http_www_authenticate_parser.rb +0 -146
  135. data/test/test_mechanize_link.rb +0 -80
  136. data/test/test_mechanize_page.rb +0 -118
  137. data/test/test_mechanize_page_encoding.rb +0 -182
  138. data/test/test_mechanize_page_frame.rb +0 -16
  139. data/test/test_mechanize_page_link.rb +0 -390
  140. data/test/test_mechanize_page_meta_refresh.rb +0 -127
  141. data/test/test_mechanize_parser.rb +0 -289
  142. data/test/test_mechanize_pluggable_parser.rb +0 -52
  143. data/test/test_mechanize_redirect_limit_reached_error.rb +0 -24
  144. data/test/test_mechanize_redirect_not_get_or_head_error.rb +0 -14
  145. data/test/test_mechanize_subclass.rb +0 -22
  146. data/test/test_mechanize_util.rb +0 -103
  147. data/test/test_multi_select.rb +0 -119
@@ -1,24 +0,0 @@
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,14 +0,0 @@
1
- require 'mechanize/test_case'
2
-
3
- class TestMechanizeRedirectNotGetOrHead < Mechanize::TestCase
4
-
5
- def test_to_s
6
- page = fake_page
7
-
8
- error = Mechanize::RedirectNotGetOrHeadError.new(page, :put)
9
-
10
- assert_match(/ PUT /, error.to_s)
11
- end
12
-
13
- end
14
-
@@ -1,22 +0,0 @@
1
- require 'mechanize/test_case'
2
-
3
- class TestMechanizeSubclass < Mechanize::TestCase
4
-
5
- class Parent < Mechanize
6
- @html_parser = :parser
7
- @log = :log
8
- end
9
-
10
- class Child < Parent
11
- end
12
-
13
- def test_subclass_inherits_html_parser
14
- assert_equal :parser, Child.html_parser
15
- end
16
-
17
- def test_subclass_inherits_log
18
- assert_equal :log, Child.log
19
- end
20
-
21
- end
22
-
@@ -1,103 +0,0 @@
1
- # coding: utf-8
2
-
3
- require 'mechanize/test_case'
4
-
5
- class TestMechanizeUtil < Mechanize::TestCase
6
-
7
- INPUTTED_VALUE = "テスト" # "test" in Japanese UTF-8 encoding
8
- CONTENT_ENCODING = 'Shift_JIS' # one of Japanese encoding
9
- ENCODED_VALUE = "\x83\x65\x83\x58\x83\x67" # "test" in Japanese Shift_JIS encoding
10
-
11
- if Mechanize::Util::NEW_RUBY_ENCODING
12
- ENCODING_ERRORS = [EncodingError, Encoding::ConverterNotFoundError] # and so on
13
- ERROR_LOG_MESSAGE = /from_native_charset: Encoding::ConverterNotFoundError: form encoding: "UTF-eight"/
14
- ENCODED_VALUE.force_encoding(::Encoding::SHIFT_JIS)
15
- else
16
- ENCODING_ERRORS = [Iconv::InvalidEncoding, Iconv::IllegalSequence]
17
- ERROR_LOG_MESSAGE = /from_native_charset: Iconv::InvalidEncoding: form encoding: "UTF-eight"/
18
- end
19
-
20
- INVALID_ENCODING = 'UTF-eight'
21
-
22
- def setup
23
- super
24
-
25
- @MU = Mechanize::Util
26
- @result = "not set"
27
- end
28
-
29
- def test_from_native_charset
30
- @result = @MU.from_native_charset(INPUTTED_VALUE, CONTENT_ENCODING)
31
- assert_equal ENCODED_VALUE, @result
32
- end
33
-
34
- def test_from_native_charset_returns_nil_when_no_string
35
- @result = @MU.from_native_charset(nil, CONTENT_ENCODING)
36
- assert_equal nil, @result
37
- end
38
-
39
- def test_from_native_charset_doesnot_convert_when_no_encoding
40
- @result = @MU.from_native_charset(INPUTTED_VALUE, nil)
41
- refute_equal ENCODED_VALUE, @result
42
- assert_equal INPUTTED_VALUE, @result
43
- end
44
-
45
- def test_from_native_charset_doesnot_convert_when_not_nokogiri
46
- parser = Mechanize.html_parser
47
- Mechanize.html_parser = 'Another HTML Parser'
48
-
49
- @result = @MU.from_native_charset(INPUTTED_VALUE, CONTENT_ENCODING)
50
- refute_equal ENCODED_VALUE, @result
51
- assert_equal INPUTTED_VALUE, @result
52
- ensure
53
- Mechanize.html_parser = parser
54
- end
55
-
56
- def test_from_native_charset_raises_error_with_bad_encoding
57
- assert_raises(*ENCODING_ERRORS) do
58
- @MU.from_native_charset(INPUTTED_VALUE, INVALID_ENCODING)
59
- end
60
- end
61
-
62
- def test_from_native_charset_suppress_encoding_error_when_3rd_arg_is_true
63
- @MU.from_native_charset(INPUTTED_VALUE, INVALID_ENCODING, true)
64
-
65
- # HACK no assertion
66
- end
67
-
68
- def test_from_native_charset_doesnot_convert_when_encoding_error_raised_and_ignored
69
- @result = @MU.from_native_charset(INPUTTED_VALUE, INVALID_ENCODING, true)
70
-
71
- refute_equal ENCODED_VALUE, @result
72
- assert_equal INPUTTED_VALUE, @result
73
- end
74
-
75
- def test_from_native_charset_logs_form_when_encoding_error_raised
76
- sio = StringIO.new("")
77
- log = Logger.new(sio)
78
- log.level = Logger::DEBUG
79
-
80
- assert_raises(*ENCODING_ERRORS) do
81
- @MU.from_native_charset(INPUTTED_VALUE, INVALID_ENCODING, nil, log)
82
- end
83
-
84
- assert_match ERROR_LOG_MESSAGE, sio.string
85
- end
86
-
87
- def test_from_native_charset_logs_form_when_encoding_error_is_ignored
88
- sio = StringIO.new("")
89
- log = Logger.new(sio)
90
- log.level = Logger::DEBUG
91
-
92
- @MU.from_native_charset(INPUTTED_VALUE, INVALID_ENCODING, true, log)
93
-
94
- assert_match ERROR_LOG_MESSAGE, sio.string
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
-
102
- end
103
-
@@ -1,119 +0,0 @@
1
- require 'mechanize/test_case'
2
-
3
- class MultiSelectTest < Mechanize::TestCase
4
- def setup
5
- super
6
-
7
- @page = @mech.get("http://localhost/form_multi_select.html")
8
- @form = @page.forms.first
9
- end
10
-
11
- def test_option_with
12
- o = @form.field_with(:name => 'list').option_with(:value => '1')
13
- assert_equal '1', o.value
14
- end
15
-
16
- def test_options_with
17
- os = @form.field_with(:name => 'list').options_with(:value => /1|2/)
18
- assert_equal ['1', '2'].sort, os.map { |x| x.value }.sort
19
- end
20
-
21
- def test_select_none
22
- page = @mech.get("http://localhost/form_multi_select.html")
23
- form = page.forms.first
24
- form.field_with(:name => 'list').select_none
25
- page = @mech.submit(form)
26
- assert_equal(0, page.links.length)
27
- end
28
-
29
- def test_select_all
30
- page = @mech.get("http://localhost/form_multi_select.html")
31
- form = page.forms.first
32
- form.field_with(:name => 'list').select_all
33
- page = @mech.submit(form)
34
- assert_equal(6, page.links.length)
35
- assert_equal(1, page.links_with(:text => 'list:1').length)
36
- assert_equal(1, page.links_with(:text => 'list:2').length)
37
- assert_equal(1, page.links_with(:text => 'list:3').length)
38
- assert_equal(1, page.links_with(:text => 'list:4').length)
39
- assert_equal(1, page.links_with(:text => 'list:5').length)
40
- assert_equal(1, page.links_with(:text => 'list:6').length)
41
- end
42
-
43
- def test_click_all
44
- page = @mech.get("http://localhost/form_multi_select.html")
45
- form = page.forms.first
46
- form.field_with(:name => 'list').options.each { |o| o.click }
47
- page = @mech.submit(form)
48
- assert_equal(5, page.links.length)
49
- assert_equal(1, page.links_with(:text => 'list:1').length)
50
- assert_equal(1, page.links_with(:text => 'list:3').length)
51
- assert_equal(1, page.links_with(:text => 'list:4').length)
52
- assert_equal(1, page.links_with(:text => 'list:5').length)
53
- assert_equal(1, page.links_with(:text => 'list:6').length)
54
- end
55
-
56
- def test_select_default
57
- page = @mech.get("http://localhost/form_multi_select.html")
58
- form = page.forms.first
59
- page = @mech.submit(form)
60
- assert_equal(1, page.links.length)
61
- assert_equal(1, page.links_with(:text => 'list:2').length)
62
- end
63
-
64
- def test_select_one
65
- page = @mech.get("http://localhost/form_multi_select.html")
66
- form = page.forms.first
67
- form.list = 'Aaron'
68
- assert_equal(['Aaron'], form.list)
69
- page = @mech.submit(form)
70
- assert_equal(1, page.links.length)
71
- assert_equal('list:Aaron', page.links.first.text)
72
- end
73
-
74
- def test_select_two
75
- page = @mech.get("http://localhost/form_multi_select.html")
76
- form = page.forms.first
77
- form.list = ['1', 'Aaron']
78
- page = @mech.submit(form)
79
- assert_equal(2, page.links.length)
80
- assert_equal(1, page.links_with(:text => 'list:1').length)
81
- assert_equal(1, page.links_with(:text => 'list:Aaron').length)
82
- end
83
-
84
- def test_select_three
85
- page = @mech.get("http://localhost/form_multi_select.html")
86
- form = page.forms.first
87
- form.list = ['1', '2', '3']
88
- page = @mech.submit(form)
89
- assert_equal(3, page.links.length)
90
- assert_equal(1, page.links_with(:text => 'list:1').length)
91
- assert_equal(1, page.links_with(:text => 'list:2').length)
92
- assert_equal(1, page.links_with(:text => 'list:3').length)
93
- end
94
-
95
- def test_select_three_twice
96
- page = @mech.get("http://localhost/form_multi_select.html")
97
- form = page.forms.first
98
- form.list = ['1', '2', '3']
99
- form.list = ['1', '2', '3']
100
- page = @mech.submit(form)
101
- assert_equal(3, page.links.length)
102
- assert_equal(1, page.links_with(:text => 'list:1').length)
103
- assert_equal(1, page.links_with(:text => 'list:2').length)
104
- assert_equal(1, page.links_with(:text => 'list:3').length)
105
- end
106
-
107
- def test_select_with_click
108
- page = @mech.get("http://localhost/form_multi_select.html")
109
- form = page.forms.first
110
- form.list = ['1', 'Aaron']
111
- form.field_with(:name => 'list').options[3].tick
112
- assert_equal(['1', 'Aaron', '4'].sort, form.list.sort)
113
- page = @mech.submit(form)
114
- assert_equal(3, page.links.length)
115
- assert_equal(1, page.links_with(:text => 'list:1').length)
116
- assert_equal(1, page.links_with(:text => 'list:Aaron').length)
117
- assert_equal(1, page.links_with(:text => 'list:4').length)
118
- end
119
- end