diamond-mechanize 2.1 → 2.2

Sign up to get free protection for your applications and to get access to all the features.
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