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,38 +0,0 @@
|
|
1
|
-
require 'mechanize/test_case'
|
2
|
-
|
3
|
-
class TestMechanizeFormCheckBox < Mechanize::TestCase
|
4
|
-
|
5
|
-
def setup
|
6
|
-
super
|
7
|
-
|
8
|
-
@page = @mech.get('http://localhost/tc_checkboxes.html')
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_check
|
12
|
-
form = @page.forms.first
|
13
|
-
|
14
|
-
form.checkbox_with(:name => 'green').check
|
15
|
-
|
16
|
-
assert(form.checkbox_with(:name => 'green').checked)
|
17
|
-
|
18
|
-
%w{ red blue yellow brown }.each do |color|
|
19
|
-
assert_equal(false, form.checkbox_with(:name => color).checked)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_uncheck
|
24
|
-
form = @page.forms.first
|
25
|
-
|
26
|
-
checkbox = form.checkbox_with(:name => 'green')
|
27
|
-
|
28
|
-
checkbox.check
|
29
|
-
|
30
|
-
assert form.checkbox_with(:name => 'green').checked
|
31
|
-
|
32
|
-
checkbox.uncheck
|
33
|
-
|
34
|
-
assert !form.checkbox_with(:name => 'green').checked
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|
38
|
-
|
@@ -1,114 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
require 'mechanize/test_case'
|
3
|
-
|
4
|
-
class TestMechanizeFormEncoding < Mechanize::TestCase
|
5
|
-
|
6
|
-
# See also: tests of Util.from_native_charset
|
7
|
-
# Encoding test should do with non-utf-8 characters
|
8
|
-
|
9
|
-
INPUTTED_VALUE = "テスト" # "test" in Japanese UTF-8 encoding
|
10
|
-
CONTENT_ENCODING = 'Shift_JIS' # one of Japanese encoding
|
11
|
-
encoded_value = "\x83\x65\x83\x58\x83\x67" # "test" in Japanese Shift_JIS encoding
|
12
|
-
encoded_value.force_encoding(::Encoding::SHIFT_JIS) if encoded_value.respond_to?(:force_encoding)
|
13
|
-
EXPECTED_QUERY = "first_name=#{CGI.escape(encoded_value)}&first_name=&gender=&green%5Beggs%5D="
|
14
|
-
|
15
|
-
if Mechanize::Util::NEW_RUBY_ENCODING
|
16
|
-
ENCODING_ERRORS = [EncodingError, Encoding::ConverterNotFoundError] # and so on
|
17
|
-
else
|
18
|
-
ENCODING_ERRORS = [Iconv::InvalidEncoding, Iconv::IllegalSequence]
|
19
|
-
end
|
20
|
-
|
21
|
-
ENCODING_LOG_MESSAGE = /INFO -- : form encoding: Shift_JIS/
|
22
|
-
INVALID_ENCODING = 'UTF-eight'
|
23
|
-
|
24
|
-
def set_form_with_encoding(enc)
|
25
|
-
page = @mech.get("http://localhost/form_set_fields.html")
|
26
|
-
form = page.forms.first
|
27
|
-
form.encoding = enc
|
28
|
-
form['first_name'] = INPUTTED_VALUE
|
29
|
-
form
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_form_encoding_returns_accept_charset
|
33
|
-
page = @mech.get("http://localhost/rails_3_encoding_hack_form_test.html")
|
34
|
-
form = page.forms.first
|
35
|
-
accept_charset = form.form_node['accept-charset']
|
36
|
-
|
37
|
-
assert accept_charset
|
38
|
-
assert_equal accept_charset, form.encoding
|
39
|
-
refute_equal page.encoding, form.encoding
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_form_encoding_returns_page_encoding_when_no_accept_charset
|
43
|
-
page = @mech.get("http://localhost/form_set_fields.html")
|
44
|
-
form = page.forms.first
|
45
|
-
accept_charset = form.form_node['accept-charset']
|
46
|
-
|
47
|
-
assert_nil accept_charset
|
48
|
-
refute_equal accept_charset, form.encoding
|
49
|
-
assert_equal page.encoding, form.encoding
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_form_encoding_equals_sets_new_encoding
|
53
|
-
page = @mech.get("http://localhost/form_set_fields.html")
|
54
|
-
form = page.forms.first
|
55
|
-
|
56
|
-
refute_equal CONTENT_ENCODING, form.encoding
|
57
|
-
|
58
|
-
form.encoding = CONTENT_ENCODING
|
59
|
-
|
60
|
-
assert_equal CONTENT_ENCODING, form.encoding
|
61
|
-
end
|
62
|
-
|
63
|
-
def test_form_encoding_returns_nil_when_no_page_in_initialize
|
64
|
-
# this sequence is seen at Mechanize#post(url, query_hash)
|
65
|
-
|
66
|
-
node = {}
|
67
|
-
# Create a fake form
|
68
|
-
class << node
|
69
|
-
def search(*args); []; end
|
70
|
-
end
|
71
|
-
node['method'] = 'POST'
|
72
|
-
node['enctype'] = 'application/x-www-form-urlencoded'
|
73
|
-
form = Mechanize::Form.new(node)
|
74
|
-
|
75
|
-
assert_equal nil, form.encoding
|
76
|
-
end
|
77
|
-
|
78
|
-
def test_post_form_with_form_encoding
|
79
|
-
form = set_form_with_encoding CONTENT_ENCODING
|
80
|
-
form.submit
|
81
|
-
|
82
|
-
# we can not use "links.find{|l| l.text == 'key:val'}" assertion here
|
83
|
-
# because the link text encoding is always UTF-8 regaredless of html encoding
|
84
|
-
assert EXPECTED_QUERY, @mech.page.at('div#query').inner_text
|
85
|
-
end
|
86
|
-
|
87
|
-
def test_post_form_with_problematic_encoding
|
88
|
-
form = set_form_with_encoding INVALID_ENCODING
|
89
|
-
|
90
|
-
assert_raises(*ENCODING_ERRORS){ form.submit }
|
91
|
-
end
|
92
|
-
|
93
|
-
def test_form_ignore_encoding_error_is_true
|
94
|
-
form = set_form_with_encoding INVALID_ENCODING
|
95
|
-
form.ignore_encoding_error = true
|
96
|
-
|
97
|
-
form.submit
|
98
|
-
|
99
|
-
# HACK no assertions
|
100
|
-
end
|
101
|
-
|
102
|
-
def test_post_form_logs_form_encoding
|
103
|
-
sio = StringIO.new
|
104
|
-
@mech.log = Logger.new(sio)
|
105
|
-
@mech.log.level = Logger::INFO
|
106
|
-
|
107
|
-
form = set_form_with_encoding CONTENT_ENCODING
|
108
|
-
form.submit
|
109
|
-
|
110
|
-
assert_match ENCODING_LOG_MESSAGE, sio.string
|
111
|
-
|
112
|
-
@mech.log = nil
|
113
|
-
end
|
114
|
-
end
|
@@ -1,63 +0,0 @@
|
|
1
|
-
require 'mechanize/test_case'
|
2
|
-
|
3
|
-
class TestMechanizeFormField < Mechanize::TestCase
|
4
|
-
|
5
|
-
def test_name
|
6
|
-
field = node 'input', 'name' => 'a&b'
|
7
|
-
field = Mechanize::Form::Field.new field
|
8
|
-
|
9
|
-
assert_equal 'a&b', field.name
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_name_entity
|
13
|
-
field = node 'input', 'name' => 'a&b'
|
14
|
-
field = Mechanize::Form::Field.new field
|
15
|
-
|
16
|
-
assert_equal 'a&b', field.name
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_name_entity_numeric
|
20
|
-
field = node 'input', 'name' => 'a&b'
|
21
|
-
field = Mechanize::Form::Field.new field
|
22
|
-
|
23
|
-
assert_equal 'a&b', field.name
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_spaceship
|
27
|
-
doc = Nokogiri::HTML::Document.new
|
28
|
-
node = doc.create_element('input')
|
29
|
-
node['name'] = 'foo'
|
30
|
-
node['value'] = 'bar'
|
31
|
-
|
32
|
-
a = Mechanize::Form::Field.new(node)
|
33
|
-
b = Mechanize::Form::Field.new({'name' => 'foo'}, 'bar')
|
34
|
-
c = Mechanize::Form::Field.new({'name' => 'foo'}, 'bar')
|
35
|
-
|
36
|
-
assert_equal [a, b], [a, b].sort
|
37
|
-
assert_equal [a, b], [b, a].sort
|
38
|
-
assert_equal [b, c].sort, [b, c].sort
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_value
|
42
|
-
field = node 'input'
|
43
|
-
field = Mechanize::Form::Field.new field, 'a&b'
|
44
|
-
|
45
|
-
assert_equal 'a&b', field.value
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_value_entity
|
49
|
-
field = node 'input'
|
50
|
-
field = Mechanize::Form::Field.new field, 'a&b'
|
51
|
-
|
52
|
-
assert_equal 'a&b', field.value
|
53
|
-
end
|
54
|
-
|
55
|
-
def test_value_entity_numeric
|
56
|
-
field = node 'input'
|
57
|
-
field = Mechanize::Form::Field.new field, 'a&b'
|
58
|
-
|
59
|
-
assert_equal 'a&b', field.value
|
60
|
-
end
|
61
|
-
|
62
|
-
end
|
63
|
-
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'mechanize/test_case'
|
2
|
-
|
3
|
-
class TestMechanizeFormFileUpload < Mechanize::TestCase
|
4
|
-
|
5
|
-
def test_file_name
|
6
|
-
field = node 'input'
|
7
|
-
field = Mechanize::Form::FileUpload.new field, 'a&b'
|
8
|
-
|
9
|
-
assert_equal 'a&b', field.file_name
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_file_name_entity
|
13
|
-
field = node 'input'
|
14
|
-
field = Mechanize::Form::FileUpload.new field, 'a&b'
|
15
|
-
|
16
|
-
assert_equal 'a&b', field.file_name
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
|
@@ -1,12 +0,0 @@
|
|
1
|
-
require 'mechanize/test_case'
|
2
|
-
|
3
|
-
class TestMechanizeFormImageButton < Mechanize::TestCase
|
4
|
-
|
5
|
-
def test_query_value
|
6
|
-
button = Mechanize::Form::ImageButton.new 'name' => 'image_button'
|
7
|
-
|
8
|
-
assert_equal [%w[image_button.x 0], %w[image_button.y 0]],
|
9
|
-
button.query_value
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
@@ -1,32 +0,0 @@
|
|
1
|
-
require 'mechanize/test_case'
|
2
|
-
|
3
|
-
class TestMechanizeFormKeygen < Mechanize::TestCase
|
4
|
-
|
5
|
-
def setup
|
6
|
-
super
|
7
|
-
|
8
|
-
keygen = node('keygen',
|
9
|
-
'name' => 'userkey',
|
10
|
-
'challenge' => 'f4832e1d200df3df8c5c859edcabe52f')
|
11
|
-
|
12
|
-
@keygen = Mechanize::Form::Keygen.new keygen
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_challenge
|
16
|
-
assert_equal "f4832e1d200df3df8c5c859edcabe52f", @keygen.challenge
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_key
|
20
|
-
assert @keygen.key.kind_of?(OpenSSL::PKey::PKey), "Not an OpenSSL key"
|
21
|
-
assert @keygen.key.private?, "Not a private key"
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_spki_signature
|
25
|
-
spki = OpenSSL::Netscape::SPKI.new @keygen.value
|
26
|
-
assert_equal @keygen.challenge, spki.challenge
|
27
|
-
assert_equal @keygen.key.public_key.to_pem, spki.public_key.to_pem
|
28
|
-
assert spki.verify(@keygen.key.public_key)
|
29
|
-
end
|
30
|
-
|
31
|
-
end
|
32
|
-
|
@@ -1,84 +0,0 @@
|
|
1
|
-
require 'mechanize/test_case'
|
2
|
-
|
3
|
-
class TestMechanizeFormMultiSelectList < Mechanize::TestCase
|
4
|
-
|
5
|
-
def setup
|
6
|
-
super
|
7
|
-
|
8
|
-
page = html_page <<-BODY
|
9
|
-
<form name="form1" method="post" action="/form_post">
|
10
|
-
<select name="select" multiple>
|
11
|
-
<option value="1">Option 1</option>
|
12
|
-
<option value="2" selected>Option 2</option>
|
13
|
-
<option value="3">Option 3</option>
|
14
|
-
<option value="4">Option 4</option>
|
15
|
-
<option value="5">Option 5</option>
|
16
|
-
<option value="6">Option 6</option>
|
17
|
-
</select>
|
18
|
-
</form>
|
19
|
-
BODY
|
20
|
-
|
21
|
-
form = page.forms.first
|
22
|
-
@select = form.fields.first
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_option_with
|
26
|
-
option = @select.option_with :value => '1'
|
27
|
-
|
28
|
-
assert_equal '1', option.value
|
29
|
-
end
|
30
|
-
|
31
|
-
def test_options_with
|
32
|
-
options = @select.options_with :value => /[12]/
|
33
|
-
|
34
|
-
assert_equal 2, options.length
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_query_value
|
38
|
-
assert_equal [%w[select 2]], @select.query_value
|
39
|
-
|
40
|
-
@select.options.last.click
|
41
|
-
|
42
|
-
assert_equal [%w[select 2], %w[select 6]], @select.query_value
|
43
|
-
end
|
44
|
-
|
45
|
-
def test_query_value_empty
|
46
|
-
@select.options.last.click
|
47
|
-
@select.options.last.instance_variable_set :@value, ''
|
48
|
-
|
49
|
-
assert_equal [%w[select 2], ['select', '']], @select.query_value
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_select_all
|
53
|
-
@select.select_all
|
54
|
-
|
55
|
-
assert_equal %w[1 2 3 4 5 6], @select.value
|
56
|
-
end
|
57
|
-
|
58
|
-
def test_select_none
|
59
|
-
@select.select_none
|
60
|
-
|
61
|
-
assert_empty @select.value
|
62
|
-
end
|
63
|
-
|
64
|
-
def test_selected_options
|
65
|
-
assert_equal [@select.options[1]], @select.selected_options
|
66
|
-
|
67
|
-
@select.options.last.click
|
68
|
-
|
69
|
-
assert_equal [@select.options[1], @select.options.last],
|
70
|
-
@select.selected_options
|
71
|
-
end
|
72
|
-
|
73
|
-
def test_value
|
74
|
-
assert_equal %w[2], @select.value
|
75
|
-
end
|
76
|
-
|
77
|
-
def test_value_equals
|
78
|
-
@select.value = %w[a 1 2]
|
79
|
-
|
80
|
-
assert_equal %w[a 1 2], @select.value
|
81
|
-
end
|
82
|
-
|
83
|
-
end
|
84
|
-
|
@@ -1,55 +0,0 @@
|
|
1
|
-
require 'mechanize/test_case'
|
2
|
-
|
3
|
-
class TestMechanizeFormOption < Mechanize::TestCase
|
4
|
-
|
5
|
-
def setup
|
6
|
-
super
|
7
|
-
|
8
|
-
page = html_page <<-BODY
|
9
|
-
<form name="form1" method="post" action="/form_post">
|
10
|
-
<select name="select">
|
11
|
-
<option value="1">Option 1</option>
|
12
|
-
<option value="2" selected>Option 2</option>
|
13
|
-
</select>
|
14
|
-
</form>
|
15
|
-
BODY
|
16
|
-
|
17
|
-
form = page.forms.first
|
18
|
-
@select = form.fields.first
|
19
|
-
@option1 = @select.options.first
|
20
|
-
@option2 = @select.options.last
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_value_missing_value
|
24
|
-
option = node 'option'
|
25
|
-
option.inner_html = 'blah'
|
26
|
-
option = Mechanize::Form::Option.new option, nil
|
27
|
-
|
28
|
-
assert_equal 'blah', option.value
|
29
|
-
end
|
30
|
-
|
31
|
-
def test_click
|
32
|
-
@option1.click
|
33
|
-
|
34
|
-
assert @option1.selected?
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_select
|
38
|
-
@option1.select
|
39
|
-
|
40
|
-
assert @option1.selected?
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_unselect
|
44
|
-
@option2.unselect
|
45
|
-
|
46
|
-
refute @option2.selected?
|
47
|
-
end
|
48
|
-
|
49
|
-
def test_selected_eh
|
50
|
-
refute @option1.selected?
|
51
|
-
assert @option2.selected?
|
52
|
-
end
|
53
|
-
|
54
|
-
end
|
55
|
-
|
@@ -1,78 +0,0 @@
|
|
1
|
-
require 'mechanize/test_case'
|
2
|
-
|
3
|
-
class TestMechanizeFormRadioButton < Mechanize::TestCase
|
4
|
-
|
5
|
-
def setup
|
6
|
-
super
|
7
|
-
|
8
|
-
@page = html_page <<-BODY
|
9
|
-
<form name="form1" method="post" action="/form_post">
|
10
|
-
<label for="blue">Blue</label>
|
11
|
-
<input type="radio" name="color" value="blue" id="blue">
|
12
|
-
<input type="radio" name="color" value="brown">
|
13
|
-
<input type="radio" name="color" value="green">
|
14
|
-
<input type="radio" name="color" value="red">
|
15
|
-
<input type="radio" name="color" value="yellow">
|
16
|
-
|
17
|
-
<input type="submit" value="Submit">
|
18
|
-
</form>
|
19
|
-
BODY
|
20
|
-
|
21
|
-
@form = @page.forms.first
|
22
|
-
|
23
|
-
@blue = @form.radiobutton_with :value => 'blue'
|
24
|
-
@brown = @form.radiobutton_with :value => 'brown'
|
25
|
-
@green = @form.radiobutton_with :value => 'green'
|
26
|
-
@red = @form.radiobutton_with :value => 'red'
|
27
|
-
@yellow = @form.radiobutton_with :value => 'yellow'
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_check
|
31
|
-
@blue.check
|
32
|
-
|
33
|
-
assert @blue.checked?
|
34
|
-
refute @brown.checked?
|
35
|
-
refute @green.checked?
|
36
|
-
refute @red.checked?
|
37
|
-
refute @yellow.checked?
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_check_multiple
|
41
|
-
@blue.check
|
42
|
-
@brown.check
|
43
|
-
|
44
|
-
refute @blue.checked?
|
45
|
-
assert @brown.checked?
|
46
|
-
refute @green.checked?
|
47
|
-
refute @red.checked?
|
48
|
-
refute @yellow.checked?
|
49
|
-
end
|
50
|
-
|
51
|
-
def test_click
|
52
|
-
@blue.click
|
53
|
-
|
54
|
-
assert @blue.checked?
|
55
|
-
|
56
|
-
@blue.click
|
57
|
-
|
58
|
-
refute @blue.checked?
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_label
|
62
|
-
assert_equal 'Blue', @blue.label.text
|
63
|
-
end
|
64
|
-
|
65
|
-
def test_uncheck
|
66
|
-
@blue.check
|
67
|
-
|
68
|
-
@blue.uncheck
|
69
|
-
|
70
|
-
refute @blue.checked?
|
71
|
-
refute @brown.checked?
|
72
|
-
refute @green.checked?
|
73
|
-
refute @red.checked?
|
74
|
-
refute @yellow.checked?
|
75
|
-
end
|
76
|
-
|
77
|
-
end
|
78
|
-
|