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.
- metadata +222 -167
- data/Rakefile +0 -49
- data/lib/mechanize/content_type_error.rb +0 -13
- data/lib/mechanize/cookie.rb +0 -232
- data/lib/mechanize/cookie_jar.rb +0 -194
- data/lib/mechanize/download.rb +0 -59
- data/lib/mechanize/element_matcher.rb +0 -36
- data/lib/mechanize/file.rb +0 -65
- data/lib/mechanize/file_connection.rb +0 -17
- data/lib/mechanize/file_request.rb +0 -26
- data/lib/mechanize/file_response.rb +0 -74
- data/lib/mechanize/file_saver.rb +0 -39
- data/lib/mechanize/form/button.rb +0 -6
- data/lib/mechanize/form/check_box.rb +0 -12
- data/lib/mechanize/form/field.rb +0 -54
- data/lib/mechanize/form/file_upload.rb +0 -21
- data/lib/mechanize/form/hidden.rb +0 -3
- data/lib/mechanize/form/image_button.rb +0 -19
- data/lib/mechanize/form/keygen.rb +0 -34
- data/lib/mechanize/form/multi_select_list.rb +0 -94
- data/lib/mechanize/form/option.rb +0 -50
- data/lib/mechanize/form/radio_button.rb +0 -55
- data/lib/mechanize/form/reset.rb +0 -3
- data/lib/mechanize/form/select_list.rb +0 -44
- data/lib/mechanize/form/submit.rb +0 -3
- data/lib/mechanize/form/text.rb +0 -3
- data/lib/mechanize/form/textarea.rb +0 -3
- data/lib/mechanize/form.rb +0 -543
- data/lib/mechanize/headers.rb +0 -23
- data/lib/mechanize/history.rb +0 -82
- data/lib/mechanize/http/agent.rb +0 -1004
- data/lib/mechanize/http/auth_challenge.rb +0 -59
- data/lib/mechanize/http/auth_realm.rb +0 -31
- data/lib/mechanize/http/content_disposition_parser.rb +0 -188
- data/lib/mechanize/http/www_authenticate_parser.rb +0 -155
- data/lib/mechanize/http.rb +0 -8
- data/lib/mechanize/monkey_patch.rb +0 -16
- data/lib/mechanize/page/base.rb +0 -7
- data/lib/mechanize/page/frame.rb +0 -27
- data/lib/mechanize/page/image.rb +0 -30
- data/lib/mechanize/page/label.rb +0 -20
- data/lib/mechanize/page/link.rb +0 -98
- data/lib/mechanize/page/meta_refresh.rb +0 -68
- data/lib/mechanize/page.rb +0 -440
- data/lib/mechanize/parser.rb +0 -173
- data/lib/mechanize/pluggable_parsers.rb +0 -144
- data/lib/mechanize/redirect_limit_reached_error.rb +0 -19
- data/lib/mechanize/redirect_not_get_or_head_error.rb +0 -21
- data/lib/mechanize/response_code_error.rb +0 -21
- data/lib/mechanize/response_read_error.rb +0 -27
- data/lib/mechanize/robots_disallowed_error.rb +0 -28
- data/lib/mechanize/test_case.rb +0 -663
- data/lib/mechanize/unauthorized_error.rb +0 -3
- data/lib/mechanize/unsupported_scheme_error.rb +0 -6
- data/lib/mechanize/util.rb +0 -101
- data/lib/mechanize.rb +0 -1079
- data/test/data/htpasswd +0 -1
- data/test/data/server.crt +0 -16
- data/test/data/server.csr +0 -12
- data/test/data/server.key +0 -15
- data/test/data/server.pem +0 -15
- data/test/htdocs/alt_text.html +0 -10
- data/test/htdocs/bad_form_test.html +0 -9
- data/test/htdocs/button.jpg +0 -0
- data/test/htdocs/canonical_uri.html +0 -9
- data/test/htdocs/dir with spaces/foo.html +0 -1
- data/test/htdocs/empty_form.html +0 -6
- data/test/htdocs/file_upload.html +0 -26
- data/test/htdocs/find_link.html +0 -41
- data/test/htdocs/form_multi_select.html +0 -16
- data/test/htdocs/form_multival.html +0 -37
- data/test/htdocs/form_no_action.html +0 -18
- data/test/htdocs/form_no_input_name.html +0 -16
- data/test/htdocs/form_order_test.html +0 -11
- data/test/htdocs/form_select.html +0 -16
- data/test/htdocs/form_set_fields.html +0 -14
- data/test/htdocs/form_test.html +0 -188
- data/test/htdocs/frame_referer_test.html +0 -10
- data/test/htdocs/frame_test.html +0 -30
- data/test/htdocs/google.html +0 -13
- data/test/htdocs/index.html +0 -6
- data/test/htdocs/link with space.html +0 -5
- data/test/htdocs/meta_cookie.html +0 -11
- data/test/htdocs/no_title_test.html +0 -6
- data/test/htdocs/noindex.html +0 -9
- data/test/htdocs/rails_3_encoding_hack_form_test.html +0 -27
- data/test/htdocs/relative/tc_relative_links.html +0 -21
- data/test/htdocs/robots.html +0 -8
- data/test/htdocs/robots.txt +0 -2
- data/test/htdocs/tc_bad_charset.html +0 -9
- data/test/htdocs/tc_bad_links.html +0 -5
- data/test/htdocs/tc_base_link.html +0 -8
- data/test/htdocs/tc_blank_form.html +0 -11
- data/test/htdocs/tc_charset.html +0 -6
- data/test/htdocs/tc_checkboxes.html +0 -19
- data/test/htdocs/tc_encoded_links.html +0 -5
- data/test/htdocs/tc_field_precedence.html +0 -11
- data/test/htdocs/tc_follow_meta.html +0 -8
- data/test/htdocs/tc_form_action.html +0 -48
- data/test/htdocs/tc_links.html +0 -19
- data/test/htdocs/tc_meta_in_body.html +0 -9
- data/test/htdocs/tc_pretty_print.html +0 -17
- data/test/htdocs/tc_referer.html +0 -16
- data/test/htdocs/tc_relative_links.html +0 -19
- data/test/htdocs/tc_textarea.html +0 -23
- data/test/htdocs/test_click.html +0 -11
- data/test/htdocs/unusual______.html +0 -5
- data/test/test_mechanize.rb +0 -1164
- data/test/test_mechanize_cookie.rb +0 -451
- data/test/test_mechanize_cookie_jar.rb +0 -483
- data/test/test_mechanize_download.rb +0 -43
- data/test/test_mechanize_file.rb +0 -61
- data/test/test_mechanize_file_connection.rb +0 -21
- data/test/test_mechanize_file_request.rb +0 -19
- data/test/test_mechanize_file_saver.rb +0 -21
- data/test/test_mechanize_form.rb +0 -875
- data/test/test_mechanize_form_check_box.rb +0 -38
- data/test/test_mechanize_form_encoding.rb +0 -114
- data/test/test_mechanize_form_field.rb +0 -63
- data/test/test_mechanize_form_file_upload.rb +0 -20
- data/test/test_mechanize_form_image_button.rb +0 -12
- data/test/test_mechanize_form_keygen.rb +0 -32
- data/test/test_mechanize_form_multi_select_list.rb +0 -84
- data/test/test_mechanize_form_option.rb +0 -55
- data/test/test_mechanize_form_radio_button.rb +0 -78
- data/test/test_mechanize_form_select_list.rb +0 -76
- data/test/test_mechanize_form_textarea.rb +0 -52
- data/test/test_mechanize_headers.rb +0 -35
- data/test/test_mechanize_history.rb +0 -103
- data/test/test_mechanize_http_agent.rb +0 -1225
- data/test/test_mechanize_http_auth_challenge.rb +0 -39
- data/test/test_mechanize_http_auth_realm.rb +0 -49
- data/test/test_mechanize_http_content_disposition_parser.rb +0 -118
- data/test/test_mechanize_http_www_authenticate_parser.rb +0 -146
- data/test/test_mechanize_link.rb +0 -80
- data/test/test_mechanize_page.rb +0 -118
- data/test/test_mechanize_page_encoding.rb +0 -182
- data/test/test_mechanize_page_frame.rb +0 -16
- data/test/test_mechanize_page_link.rb +0 -390
- data/test/test_mechanize_page_meta_refresh.rb +0 -127
- data/test/test_mechanize_parser.rb +0 -289
- data/test/test_mechanize_pluggable_parser.rb +0 -52
- data/test/test_mechanize_redirect_limit_reached_error.rb +0 -24
- data/test/test_mechanize_redirect_not_get_or_head_error.rb +0 -14
- data/test/test_mechanize_subclass.rb +0 -22
- data/test/test_mechanize_util.rb +0 -103
- data/test/test_multi_select.rb +0 -119
@@ -1,127 +0,0 @@
|
|
1
|
-
require 'mechanize/test_case'
|
2
|
-
|
3
|
-
class TestMechanizePageMetaRefresh < Mechanize::TestCase
|
4
|
-
|
5
|
-
def setup
|
6
|
-
super
|
7
|
-
|
8
|
-
@MR = Mechanize::Page::MetaRefresh
|
9
|
-
|
10
|
-
@uri = URI 'http://example/here/'
|
11
|
-
end
|
12
|
-
|
13
|
-
def util_page delay, uri
|
14
|
-
body = <<-BODY
|
15
|
-
<head><meta http-equiv="refresh" content="#{delay};url=#{uri}"></head>
|
16
|
-
BODY
|
17
|
-
|
18
|
-
Mechanize::Page.new(@uri, { 'content-type' => 'text/html' }, body, 200,
|
19
|
-
@mech)
|
20
|
-
end
|
21
|
-
|
22
|
-
def util_meta_refresh page
|
23
|
-
node = page.search('meta').first
|
24
|
-
@MR.from_node node, page, @uri
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_class_parse
|
28
|
-
delay, uri, link_self = @MR.parse "0; url=http://localhost:8080/path", @uri
|
29
|
-
assert_equal "0", delay
|
30
|
-
assert_equal "http://localhost:8080/path", uri.to_s
|
31
|
-
refute link_self
|
32
|
-
|
33
|
-
delay, uri, link_self =
|
34
|
-
@MR.parse "100.001; url=http://localhost:8080/path", @uri
|
35
|
-
assert_equal "100.001", delay
|
36
|
-
assert_equal "http://localhost:8080/path", uri.to_s
|
37
|
-
refute link_self
|
38
|
-
|
39
|
-
delay, uri, link_self =
|
40
|
-
@MR.parse "0; url='http://localhost:8080/path'", @uri
|
41
|
-
assert_equal "0", delay
|
42
|
-
assert_equal "http://localhost:8080/path", uri.to_s
|
43
|
-
refute link_self
|
44
|
-
|
45
|
-
delay, uri, link_self =
|
46
|
-
@MR.parse "0; url=\"http://localhost:8080/path\"", @uri
|
47
|
-
assert_equal "0", delay
|
48
|
-
assert_equal "http://localhost:8080/path", uri.to_s
|
49
|
-
refute link_self
|
50
|
-
|
51
|
-
delay, uri, link_self = @MR.parse "0; url=", @uri
|
52
|
-
assert_equal "0", delay
|
53
|
-
assert_equal "http://example/here/", uri.to_s
|
54
|
-
assert link_self
|
55
|
-
|
56
|
-
delay, uri, link_self = @MR.parse "0", @uri
|
57
|
-
assert_equal "0", delay
|
58
|
-
assert_equal "http://example/here/", uri.to_s
|
59
|
-
assert link_self
|
60
|
-
|
61
|
-
delay, uri, link_self = @MR.parse " 0; ", @uri
|
62
|
-
assert_equal "0", delay
|
63
|
-
assert_equal "http://example/here/", uri.to_s
|
64
|
-
assert link_self
|
65
|
-
|
66
|
-
delay, uri, link_self = @MR.parse "0; UrL=http://localhost:8080/path", @uri
|
67
|
-
assert_equal "0", delay
|
68
|
-
assert_equal "http://localhost:8080/path", uri.to_s
|
69
|
-
refute link_self
|
70
|
-
end
|
71
|
-
|
72
|
-
def test_class_from_node
|
73
|
-
page = util_page 5, 'http://b.example'
|
74
|
-
link = util_meta_refresh page
|
75
|
-
assert_equal 5, link.delay
|
76
|
-
assert_equal 'http://b.example', link.href
|
77
|
-
|
78
|
-
page = util_page 5, 'http://example/a'
|
79
|
-
link = util_meta_refresh page
|
80
|
-
assert_equal 5, link.delay
|
81
|
-
assert_equal 'http://example/a', link.href
|
82
|
-
|
83
|
-
page = util_page 5, 'test'
|
84
|
-
link = util_meta_refresh page
|
85
|
-
assert_equal 5, link.delay
|
86
|
-
assert_equal 'http://example/here/test', link.href
|
87
|
-
|
88
|
-
page = util_page 5, '/test'
|
89
|
-
link = util_meta_refresh page
|
90
|
-
assert_equal 5, link.delay
|
91
|
-
assert_equal 'http://example/test', link.href
|
92
|
-
|
93
|
-
page = util_page 5, nil
|
94
|
-
link = util_meta_refresh page
|
95
|
-
assert_equal 5, link.delay
|
96
|
-
assert_equal 'http://example/here/', link.href
|
97
|
-
|
98
|
-
page = util_page 5, @uri
|
99
|
-
link = util_meta_refresh page
|
100
|
-
assert_equal 5, link.delay
|
101
|
-
assert_equal 'http://example/here/', link.href
|
102
|
-
end
|
103
|
-
|
104
|
-
def test_class_from_node_no_content
|
105
|
-
body = <<-BODY
|
106
|
-
<head><meta http-equiv="refresh"></head>
|
107
|
-
BODY
|
108
|
-
|
109
|
-
page = Mechanize::Page.new(@uri, { 'content-type' => 'text/html' }, body,
|
110
|
-
200, @mech)
|
111
|
-
|
112
|
-
assert_nil util_meta_refresh page
|
113
|
-
end
|
114
|
-
|
115
|
-
def test_class_from_node_not_refresh
|
116
|
-
body = <<-BODY
|
117
|
-
<head><meta http-equiv="other-thing" content="0;"></head>
|
118
|
-
BODY
|
119
|
-
|
120
|
-
page = Mechanize::Page.new(@uri, { 'content-type' => 'text/html' }, body,
|
121
|
-
200, @mech)
|
122
|
-
|
123
|
-
assert_nil util_meta_refresh page
|
124
|
-
end
|
125
|
-
|
126
|
-
end
|
127
|
-
|
@@ -1,289 +0,0 @@
|
|
1
|
-
require 'mechanize/test_case'
|
2
|
-
|
3
|
-
class TestMechanizeParser < Mechanize::TestCase
|
4
|
-
|
5
|
-
class P
|
6
|
-
include Mechanize::Parser
|
7
|
-
|
8
|
-
attr_accessor :filename
|
9
|
-
attr_accessor :response
|
10
|
-
attr_accessor :uri
|
11
|
-
|
12
|
-
def initialize
|
13
|
-
@uri = URI 'http://example'
|
14
|
-
@full_path = false
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
def setup
|
19
|
-
super
|
20
|
-
|
21
|
-
@parser = P.new
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_extract_filename
|
25
|
-
@parser.response = {}
|
26
|
-
|
27
|
-
assert_equal 'index.html', @parser.extract_filename
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_extract_filename_content_disposition
|
31
|
-
@parser.uri = URI 'http://example/foo'
|
32
|
-
|
33
|
-
@parser.response = {
|
34
|
-
'content-disposition' => 'attachment; filename=genome.jpeg'
|
35
|
-
}
|
36
|
-
|
37
|
-
assert_equal 'genome.jpeg', @parser.extract_filename
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_extract_filename_content_disposition_path
|
41
|
-
@parser.uri = URI 'http://example'
|
42
|
-
|
43
|
-
@parser.response = {
|
44
|
-
'content-disposition' => 'attachment; filename="../genome.jpeg"'
|
45
|
-
}
|
46
|
-
|
47
|
-
assert_equal 'example/genome.jpeg', @parser.extract_filename(true)
|
48
|
-
|
49
|
-
@parser.response = {
|
50
|
-
'content-disposition' => 'attachment; filename="foo/genome.jpeg"'
|
51
|
-
}
|
52
|
-
|
53
|
-
assert_equal 'example/genome.jpeg', @parser.extract_filename(true)
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_extract_filename_content_disposition_path_windows
|
57
|
-
@parser.uri = URI 'http://example'
|
58
|
-
|
59
|
-
@parser.response = {
|
60
|
-
'content-disposition' => 'attachment; filename="..\\\\genome.jpeg"'
|
61
|
-
}
|
62
|
-
|
63
|
-
assert_equal 'example/genome.jpeg', @parser.extract_filename(true)
|
64
|
-
|
65
|
-
@parser.response = {
|
66
|
-
'content-disposition' => 'attachment; filename="foo\\\\genome.jpeg"'
|
67
|
-
}
|
68
|
-
|
69
|
-
assert_equal 'example/genome.jpeg', @parser.extract_filename(true)
|
70
|
-
end
|
71
|
-
|
72
|
-
def test_extract_filename_content_disposition_full_path
|
73
|
-
@parser.uri = URI 'http://example/foo'
|
74
|
-
|
75
|
-
@parser.response = {
|
76
|
-
'content-disposition' => 'attachment; filename=genome.jpeg'
|
77
|
-
}
|
78
|
-
|
79
|
-
assert_equal 'example/genome.jpeg', @parser.extract_filename(true)
|
80
|
-
end
|
81
|
-
|
82
|
-
def test_extract_filename_content_disposition_quoted
|
83
|
-
@parser.uri = URI 'http://example'
|
84
|
-
|
85
|
-
@parser.response = {
|
86
|
-
'content-disposition' => 'attachment; filename="some \"file\""'
|
87
|
-
}
|
88
|
-
|
89
|
-
assert_equal 'some__file_', @parser.extract_filename
|
90
|
-
end
|
91
|
-
|
92
|
-
def test_extract_filename_content_disposition_special
|
93
|
-
@parser.uri = URI 'http://example/foo'
|
94
|
-
|
95
|
-
@parser.response = {
|
96
|
-
'content-disposition' => 'attachment; filename="/\\\\<>:\\"|?*"'
|
97
|
-
}
|
98
|
-
|
99
|
-
assert_equal '_______', @parser.extract_filename
|
100
|
-
|
101
|
-
chars = (0..12).map { |c| c.chr }.join
|
102
|
-
chars += "\\\r"
|
103
|
-
chars += (14..31).map { |c| c.chr }.join
|
104
|
-
|
105
|
-
@parser.response = {
|
106
|
-
'content-disposition' => "attachment; filename=\"#{chars}\""
|
107
|
-
}
|
108
|
-
|
109
|
-
assert_equal '_' * 32, @parser.extract_filename
|
110
|
-
end
|
111
|
-
|
112
|
-
def test_extract_filename_content_disposition_windows_special
|
113
|
-
@parser.uri = URI 'http://example'
|
114
|
-
|
115
|
-
windows_special = %w[
|
116
|
-
AUX
|
117
|
-
COM1
|
118
|
-
COM2
|
119
|
-
COM3
|
120
|
-
COM4
|
121
|
-
COM5
|
122
|
-
COM6
|
123
|
-
COM7
|
124
|
-
COM8
|
125
|
-
COM9
|
126
|
-
CON
|
127
|
-
LPT1
|
128
|
-
LPT2
|
129
|
-
LPT3
|
130
|
-
LPT4
|
131
|
-
LPT5
|
132
|
-
LPT6
|
133
|
-
LPT7
|
134
|
-
LPT8
|
135
|
-
LPT9
|
136
|
-
NUL
|
137
|
-
PRN
|
138
|
-
]
|
139
|
-
|
140
|
-
windows_special.each do |special|
|
141
|
-
@parser.response = {
|
142
|
-
'content-disposition' => "attachment; filename=#{special}"
|
143
|
-
}
|
144
|
-
|
145
|
-
assert_equal "_#{special}", @parser.extract_filename
|
146
|
-
end
|
147
|
-
end
|
148
|
-
|
149
|
-
def test_extract_filename_host
|
150
|
-
@parser.response = {}
|
151
|
-
@parser.uri = URI 'http://example'
|
152
|
-
|
153
|
-
assert_equal 'example/index.html', @parser.extract_filename(true)
|
154
|
-
end
|
155
|
-
|
156
|
-
def test_extract_filename_special_character
|
157
|
-
@parser.response = {}
|
158
|
-
|
159
|
-
invisible = "\t\n\v\f\r"
|
160
|
-
|
161
|
-
invisible.chars.each do |char|
|
162
|
-
begin
|
163
|
-
@parser.uri = URI "http://example/#{char}"
|
164
|
-
|
165
|
-
assert_equal 'index.html', @parser.extract_filename, char.inspect
|
166
|
-
rescue URI::InvalidURIError
|
167
|
-
# ignore
|
168
|
-
end
|
169
|
-
end
|
170
|
-
|
171
|
-
escaped = "<>\"\\|"
|
172
|
-
|
173
|
-
escaped.chars.each do |char|
|
174
|
-
escaped_char = CGI.escape char
|
175
|
-
|
176
|
-
@parser.uri = URI "http://example/#{escaped_char}"
|
177
|
-
|
178
|
-
assert_equal "#{escaped_char}.html", @parser.extract_filename, char
|
179
|
-
end
|
180
|
-
|
181
|
-
@parser.uri = URI "http://example/?"
|
182
|
-
|
183
|
-
assert_equal 'index.html_', @parser.extract_filename, 'empty query'
|
184
|
-
|
185
|
-
@parser.uri = URI "http://example/:"
|
186
|
-
|
187
|
-
assert_equal '_.html', @parser.extract_filename, 'colon'
|
188
|
-
|
189
|
-
@parser.uri = URI "http://example/*"
|
190
|
-
|
191
|
-
assert_equal '_.html', @parser.extract_filename, 'asterisk'
|
192
|
-
end
|
193
|
-
|
194
|
-
def test_extract_filename_uri
|
195
|
-
@parser.response = {}
|
196
|
-
@parser.uri = URI 'http://example/foo'
|
197
|
-
|
198
|
-
assert_equal 'foo.html', @parser.extract_filename
|
199
|
-
|
200
|
-
@parser.uri += '/foo.jpg'
|
201
|
-
|
202
|
-
assert_equal 'foo.jpg', @parser.extract_filename
|
203
|
-
end
|
204
|
-
|
205
|
-
def test_extract_filename_uri_full_path
|
206
|
-
@parser.response = {}
|
207
|
-
@parser.uri = URI 'http://example/foo'
|
208
|
-
|
209
|
-
assert_equal 'example/foo.html', @parser.extract_filename(true)
|
210
|
-
|
211
|
-
@parser.uri += '/foo.jpg'
|
212
|
-
|
213
|
-
assert_equal 'example/foo.jpg', @parser.extract_filename(true)
|
214
|
-
end
|
215
|
-
|
216
|
-
def test_extract_filename_uri_query
|
217
|
-
@parser.response = {}
|
218
|
-
@parser.uri = URI 'http://example/?id=5'
|
219
|
-
|
220
|
-
assert_equal 'index.html_id=5', @parser.extract_filename
|
221
|
-
|
222
|
-
@parser.uri += '/foo.html?id=5'
|
223
|
-
|
224
|
-
assert_equal 'foo.html_id=5', @parser.extract_filename
|
225
|
-
end
|
226
|
-
|
227
|
-
def test_extract_filename_uri_slash
|
228
|
-
@parser.response = {}
|
229
|
-
@parser.uri = URI 'http://example/foo/'
|
230
|
-
|
231
|
-
assert_equal 'example/foo/index.html', @parser.extract_filename(true)
|
232
|
-
|
233
|
-
@parser.uri += '/foo///'
|
234
|
-
|
235
|
-
assert_equal 'example/foo/index.html', @parser.extract_filename(true)
|
236
|
-
end
|
237
|
-
|
238
|
-
def test_extract_filename_windows_special
|
239
|
-
@parser.uri = URI 'http://example'
|
240
|
-
@parser.response = {}
|
241
|
-
|
242
|
-
windows_special = %w[
|
243
|
-
AUX
|
244
|
-
COM1
|
245
|
-
COM2
|
246
|
-
COM3
|
247
|
-
COM4
|
248
|
-
COM5
|
249
|
-
COM6
|
250
|
-
COM7
|
251
|
-
COM8
|
252
|
-
COM9
|
253
|
-
CON
|
254
|
-
LPT1
|
255
|
-
LPT2
|
256
|
-
LPT3
|
257
|
-
LPT4
|
258
|
-
LPT5
|
259
|
-
LPT6
|
260
|
-
LPT7
|
261
|
-
LPT8
|
262
|
-
LPT9
|
263
|
-
NUL
|
264
|
-
PRN
|
265
|
-
]
|
266
|
-
|
267
|
-
windows_special.each do |special|
|
268
|
-
@parser.uri += "/#{special}"
|
269
|
-
|
270
|
-
assert_equal "_#{special}.html", @parser.extract_filename
|
271
|
-
end
|
272
|
-
end
|
273
|
-
|
274
|
-
def test_fill_header
|
275
|
-
@parser.fill_header 'a' => 'b'
|
276
|
-
|
277
|
-
expected = { 'a' => 'b' }
|
278
|
-
|
279
|
-
assert_equal expected, @parser.response
|
280
|
-
end
|
281
|
-
|
282
|
-
def test_fill_header_nil
|
283
|
-
@parser.fill_header nil
|
284
|
-
|
285
|
-
assert_empty @parser.response
|
286
|
-
end
|
287
|
-
|
288
|
-
end
|
289
|
-
|
@@ -1,52 +0,0 @@
|
|
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
|
-
|