knu-mechanize 0.9.3.20090623142847

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 (173) hide show
  1. data/CHANGELOG.rdoc +504 -0
  2. data/EXAMPLES.rdoc +171 -0
  3. data/FAQ.rdoc +11 -0
  4. data/GUIDE.rdoc +122 -0
  5. data/LICENSE.rdoc +340 -0
  6. data/Manifest.txt +169 -0
  7. data/README.rdoc +60 -0
  8. data/Rakefile +43 -0
  9. data/examples/flickr_upload.rb +23 -0
  10. data/examples/mech-dump.rb +7 -0
  11. data/examples/proxy_req.rb +9 -0
  12. data/examples/rubyforge.rb +21 -0
  13. data/examples/spider.rb +11 -0
  14. data/lib/mechanize.rb +7 -0
  15. data/lib/www/mechanize.rb +619 -0
  16. data/lib/www/mechanize/chain.rb +34 -0
  17. data/lib/www/mechanize/chain/auth_headers.rb +80 -0
  18. data/lib/www/mechanize/chain/body_decoding_handler.rb +48 -0
  19. data/lib/www/mechanize/chain/connection_resolver.rb +78 -0
  20. data/lib/www/mechanize/chain/custom_headers.rb +23 -0
  21. data/lib/www/mechanize/chain/handler.rb +9 -0
  22. data/lib/www/mechanize/chain/header_resolver.rb +53 -0
  23. data/lib/www/mechanize/chain/parameter_resolver.rb +24 -0
  24. data/lib/www/mechanize/chain/post_connect_hook.rb +0 -0
  25. data/lib/www/mechanize/chain/pre_connect_hook.rb +22 -0
  26. data/lib/www/mechanize/chain/request_resolver.rb +32 -0
  27. data/lib/www/mechanize/chain/response_body_parser.rb +40 -0
  28. data/lib/www/mechanize/chain/response_header_handler.rb +50 -0
  29. data/lib/www/mechanize/chain/response_reader.rb +41 -0
  30. data/lib/www/mechanize/chain/ssl_resolver.rb +42 -0
  31. data/lib/www/mechanize/chain/uri_resolver.rb +77 -0
  32. data/lib/www/mechanize/content_type_error.rb +16 -0
  33. data/lib/www/mechanize/cookie.rb +72 -0
  34. data/lib/www/mechanize/cookie_jar.rb +191 -0
  35. data/lib/www/mechanize/file.rb +73 -0
  36. data/lib/www/mechanize/file_response.rb +62 -0
  37. data/lib/www/mechanize/file_saver.rb +39 -0
  38. data/lib/www/mechanize/form.rb +360 -0
  39. data/lib/www/mechanize/form/button.rb +8 -0
  40. data/lib/www/mechanize/form/check_box.rb +13 -0
  41. data/lib/www/mechanize/form/field.rb +28 -0
  42. data/lib/www/mechanize/form/file_upload.rb +24 -0
  43. data/lib/www/mechanize/form/image_button.rb +23 -0
  44. data/lib/www/mechanize/form/multi_select_list.rb +69 -0
  45. data/lib/www/mechanize/form/option.rb +51 -0
  46. data/lib/www/mechanize/form/radio_button.rb +38 -0
  47. data/lib/www/mechanize/form/select_list.rb +45 -0
  48. data/lib/www/mechanize/headers.rb +12 -0
  49. data/lib/www/mechanize/history.rb +67 -0
  50. data/lib/www/mechanize/inspect.rb +90 -0
  51. data/lib/www/mechanize/monkey_patch.rb +37 -0
  52. data/lib/www/mechanize/page.rb +181 -0
  53. data/lib/www/mechanize/page/base.rb +10 -0
  54. data/lib/www/mechanize/page/frame.rb +22 -0
  55. data/lib/www/mechanize/page/link.rb +50 -0
  56. data/lib/www/mechanize/page/meta.rb +51 -0
  57. data/lib/www/mechanize/pluggable_parsers.rb +103 -0
  58. data/lib/www/mechanize/redirect_limit_reached_error.rb +18 -0
  59. data/lib/www/mechanize/redirect_not_get_or_head_error.rb +20 -0
  60. data/lib/www/mechanize/response_code_error.rb +25 -0
  61. data/lib/www/mechanize/unsupported_scheme_error.rb +10 -0
  62. data/lib/www/mechanize/util.rb +76 -0
  63. data/mechanize.gemspec +41 -0
  64. data/test/chain/test_argument_validator.rb +14 -0
  65. data/test/chain/test_auth_headers.rb +25 -0
  66. data/test/chain/test_custom_headers.rb +18 -0
  67. data/test/chain/test_header_resolver.rb +28 -0
  68. data/test/chain/test_parameter_resolver.rb +35 -0
  69. data/test/chain/test_request_resolver.rb +29 -0
  70. data/test/chain/test_response_reader.rb +24 -0
  71. data/test/data/htpasswd +1 -0
  72. data/test/data/server.crt +16 -0
  73. data/test/data/server.csr +12 -0
  74. data/test/data/server.key +15 -0
  75. data/test/data/server.pem +15 -0
  76. data/test/helper.rb +129 -0
  77. data/test/htdocs/alt_text.html +10 -0
  78. data/test/htdocs/bad_form_test.html +9 -0
  79. data/test/htdocs/button.jpg +0 -0
  80. data/test/htdocs/empty_form.html +6 -0
  81. data/test/htdocs/file_upload.html +26 -0
  82. data/test/htdocs/find_link.html +41 -0
  83. data/test/htdocs/form_multi_select.html +16 -0
  84. data/test/htdocs/form_multival.html +37 -0
  85. data/test/htdocs/form_no_action.html +18 -0
  86. data/test/htdocs/form_no_input_name.html +16 -0
  87. data/test/htdocs/form_select.html +16 -0
  88. data/test/htdocs/form_select_all.html +16 -0
  89. data/test/htdocs/form_select_none.html +17 -0
  90. data/test/htdocs/form_select_noopts.html +10 -0
  91. data/test/htdocs/form_set_fields.html +14 -0
  92. data/test/htdocs/form_test.html +188 -0
  93. data/test/htdocs/frame_test.html +30 -0
  94. data/test/htdocs/google.html +13 -0
  95. data/test/htdocs/iframe_test.html +16 -0
  96. data/test/htdocs/index.html +6 -0
  97. data/test/htdocs/link with space.html +5 -0
  98. data/test/htdocs/meta_cookie.html +11 -0
  99. data/test/htdocs/no_title_test.html +6 -0
  100. data/test/htdocs/relative/tc_relative_links.html +21 -0
  101. data/test/htdocs/tc_bad_links.html +5 -0
  102. data/test/htdocs/tc_base_link.html +8 -0
  103. data/test/htdocs/tc_blank_form.html +11 -0
  104. data/test/htdocs/tc_checkboxes.html +19 -0
  105. data/test/htdocs/tc_encoded_links.html +5 -0
  106. data/test/htdocs/tc_follow_meta.html +8 -0
  107. data/test/htdocs/tc_form_action.html +48 -0
  108. data/test/htdocs/tc_links.html +18 -0
  109. data/test/htdocs/tc_no_attributes.html +16 -0
  110. data/test/htdocs/tc_pretty_print.html +17 -0
  111. data/test/htdocs/tc_radiobuttons.html +17 -0
  112. data/test/htdocs/tc_referer.html +10 -0
  113. data/test/htdocs/tc_relative_links.html +19 -0
  114. data/test/htdocs/tc_textarea.html +23 -0
  115. data/test/htdocs/unusual______.html +5 -0
  116. data/test/servlets.rb +365 -0
  117. data/test/ssl_server.rb +48 -0
  118. data/test/test_authenticate.rb +71 -0
  119. data/test/test_bad_links.rb +25 -0
  120. data/test/test_blank_form.rb +16 -0
  121. data/test/test_checkboxes.rb +61 -0
  122. data/test/test_content_type.rb +13 -0
  123. data/test/test_cookie_class.rb +338 -0
  124. data/test/test_cookie_jar.rb +362 -0
  125. data/test/test_cookies.rb +123 -0
  126. data/test/test_encoded_links.rb +20 -0
  127. data/test/test_errors.rb +49 -0
  128. data/test/test_follow_meta.rb +108 -0
  129. data/test/test_form_action.rb +52 -0
  130. data/test/test_form_as_hash.rb +61 -0
  131. data/test/test_form_button.rb +38 -0
  132. data/test/test_form_no_inputname.rb +15 -0
  133. data/test/test_forms.rb +564 -0
  134. data/test/test_frames.rb +25 -0
  135. data/test/test_get_headers.rb +52 -0
  136. data/test/test_gzipping.rb +22 -0
  137. data/test/test_hash_api.rb +45 -0
  138. data/test/test_history.rb +142 -0
  139. data/test/test_history_added.rb +16 -0
  140. data/test/test_html_unscape_forms.rb +39 -0
  141. data/test/test_if_modified_since.rb +20 -0
  142. data/test/test_keep_alive.rb +31 -0
  143. data/test/test_links.rb +120 -0
  144. data/test/test_mech.rb +268 -0
  145. data/test/test_mechanize_file.rb +47 -0
  146. data/test/test_meta.rb +65 -0
  147. data/test/test_multi_select.rb +106 -0
  148. data/test/test_no_attributes.rb +13 -0
  149. data/test/test_option.rb +18 -0
  150. data/test/test_page.rb +119 -0
  151. data/test/test_pluggable_parser.rb +145 -0
  152. data/test/test_post_form.rb +34 -0
  153. data/test/test_pretty_print.rb +22 -0
  154. data/test/test_radiobutton.rb +75 -0
  155. data/test/test_redirect_limit_reached.rb +41 -0
  156. data/test/test_redirect_verb_handling.rb +45 -0
  157. data/test/test_referer.rb +39 -0
  158. data/test/test_relative_links.rb +40 -0
  159. data/test/test_request.rb +13 -0
  160. data/test/test_response_code.rb +52 -0
  161. data/test/test_save_file.rb +48 -0
  162. data/test/test_scheme.rb +48 -0
  163. data/test/test_select.rb +106 -0
  164. data/test/test_select_all.rb +15 -0
  165. data/test/test_select_none.rb +15 -0
  166. data/test/test_select_noopts.rb +16 -0
  167. data/test/test_set_fields.rb +44 -0
  168. data/test/test_ssl_server.rb +20 -0
  169. data/test/test_subclass.rb +14 -0
  170. data/test/test_textarea.rb +45 -0
  171. data/test/test_upload.rb +109 -0
  172. data/test/test_verbs.rb +25 -0
  173. metadata +314 -0
@@ -0,0 +1,44 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), "helper"))
2
+
3
+ class TestSetFields < Test::Unit::TestCase
4
+ def setup
5
+ @agent = WWW::Mechanize.new
6
+ @page = @agent.get("http://localhost/form_set_fields.html")
7
+ @form = @page.forms.first
8
+ end
9
+
10
+ def test_set_no_fields
11
+ before = {}
12
+ @form.fields.each { |f| before[f.name] = f.value }
13
+ @form.set_fields
14
+ before.each { |k,v| assert_equal(v, @form.send(k)) }
15
+ end
16
+
17
+ def test_set_one_field
18
+ @form.set_fields( :gender => 'male' )
19
+ assert_equal('male', @form.gender)
20
+ end
21
+
22
+ def test_set_many_fields
23
+ @form.set_fields( :gender => 'male',
24
+ :first_name => 'Aaron',
25
+ 'green[eggs]' => 'Ham'
26
+ )
27
+ assert_equal('male', @form.gender)
28
+ assert_equal('Aaron', @form.first_name)
29
+ assert_equal('Ham', @form.fields_with(:name => 'green[eggs]').first.value)
30
+ end
31
+
32
+ def test_set_multiple_duplicate_fields
33
+ page = @agent.get("http://localhost/form_multival.html")
34
+ form = page.form('post_form')
35
+ form.set_fields( :first => { 0 => 'a', 1 => 'b' } )
36
+ assert_equal('a', form.fields_with(:name => 'first')[0].value)
37
+ assert_equal('b', form.fields_with(:name => 'first')[1].value)
38
+ end
39
+
40
+ def test_set_second_field
41
+ @form.set_fields( :first_name => ['Aaron', 1] )
42
+ assert_equal('Aaron', @form.fields_with(:name => 'first_name')[1].value)
43
+ end
44
+ end
@@ -0,0 +1,20 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), "helper"))
2
+
3
+ class SSLServerTest < Test::Unit::TestCase
4
+ def setup
5
+ @agent = WWW::Mechanize.new
6
+ end
7
+
8
+ def test_ssl_request
9
+ non_ssl_page = @agent.get("http://localhost/form_test.html")
10
+ ssl_page = @agent.get("https://localhost/form_test.html")
11
+ assert_equal(non_ssl_page.body.length, ssl_page.body.length)
12
+ end
13
+
14
+ def test_ssl_request_verify
15
+ non_ssl_page = @agent.get("http://localhost/form_test.html")
16
+ @agent.ca_file = 'data/server.crt'
17
+ ssl_page = @agent.get("https://localhost/form_test.html")
18
+ assert_equal(non_ssl_page.body.length, ssl_page.body.length)
19
+ end
20
+ end
@@ -0,0 +1,14 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), "helper"))
2
+
3
+ class TestSubclass < Test::Unit::TestCase
4
+ def setup
5
+ @agent = WWW::Mechanize.new
6
+ end
7
+
8
+ def test_send_cookie
9
+ page = @agent.get( :url => "http://localhost/send_cookies",
10
+ :headers => {'Cookie' => 'name=Aaron'} )
11
+ assert_equal(1, page.links.length)
12
+ assert_not_nil(page.links.find { |l| l.text == "name:Aaron" })
13
+ end
14
+ end
@@ -0,0 +1,45 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), "helper"))
2
+
3
+ class TestTextArea < Test::Unit::TestCase
4
+ def setup
5
+ @agent = WWW::Mechanize.new
6
+ @page = @agent.get("http://localhost/tc_textarea.html")
7
+ end
8
+
9
+ def test_empty_text_area
10
+ form = @page.forms_with(:name => 'form1').first
11
+ assert_equal('', form.field_with(:name => 'text1').value)
12
+ form.text1 = 'Hello World'
13
+ assert_equal('Hello World', form.field_with(:name => 'text1').value)
14
+ page = @agent.submit(form)
15
+ assert_equal(1, page.links.length)
16
+ assert_equal('text1:Hello World', page.links[0].text)
17
+ end
18
+
19
+ def test_non_empty_textfield
20
+ form = @page.forms_with(:name => 'form2').first
21
+ assert_equal('sample text', form.field_with(:name => 'text1').value)
22
+ page = @agent.submit(form)
23
+ assert_equal(1, page.links.length)
24
+ assert_equal('text1:sample text', page.links[0].text)
25
+ end
26
+
27
+ def test_multi_textfield
28
+ form = @page.form_with(:name => 'form3')
29
+ assert_equal(2, form.fields_with(:name => 'text1').length)
30
+ assert_equal('', form.fields_with(:name => 'text1')[0].value)
31
+ assert_equal('sample text', form.fields_with(:name => 'text1')[1].value)
32
+ form.text1 = 'Hello World'
33
+ assert_equal('Hello World', form.fields_with(:name => 'text1')[0].value)
34
+ assert_equal('sample text', form.fields_with(:name => 'text1')[1].value)
35
+ page = @agent.submit(form)
36
+ assert_equal(2, page.links.length)
37
+ link = page.links_with(:text => 'text1:sample text')
38
+ assert_not_nil(link)
39
+ assert_equal(1, link.length)
40
+
41
+ link = page.links_with(:text => 'text1:Hello World')
42
+ assert_not_nil(link)
43
+ assert_equal(1, link.length)
44
+ end
45
+ end
@@ -0,0 +1,109 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), "helper"))
2
+
3
+ class UploadMechTest < Test::Unit::TestCase
4
+ def setup
5
+ @agent = WWW::Mechanize.new
6
+ @page = @agent.get("http://localhost/file_upload.html")
7
+ end
8
+
9
+ def test_upload_with_post_param
10
+ page = @agent.post('http://localhost/file_upload', {
11
+ :name => 'Some file',
12
+ :userfile1 => File.open(__FILE__)
13
+ })
14
+ assert_match(
15
+ "Content-Disposition: form-data; name=\"userfile1\"; filename=\"#{File.basename(__FILE__)}\"",
16
+ page.body
17
+ )
18
+ assert page.body.length > File.read(__FILE__).length
19
+ end
20
+
21
+ def test_form_enctype
22
+ assert_equal('multipart/form-data', @page.forms[0].enctype)
23
+
24
+ form = @page.forms.first
25
+ form.file_uploads.first.file_name = "#{BASE_DIR}/helper.rb"
26
+ form.file_uploads.first.mime_type = "text/plain"
27
+ form.file_uploads.first.file_data = "Hello World\n\n"
28
+
29
+ @page = @agent.submit(form)
30
+
31
+ assert_match(
32
+ "Content-Disposition: form-data; name=\"userfile1\"; filename=\"helper.rb\"",
33
+ @page.body
34
+ )
35
+ assert_match(
36
+ "Content-Disposition: form-data; name=\"name\"",
37
+ @page.body
38
+ )
39
+ assert_match('Content-Type: text/plain', @page.body)
40
+ assert_match('Hello World', @page.body)
41
+ assert_match('foo[aaron]', @page.body)
42
+ end
43
+
44
+ def test_form_multipart
45
+ assert_equal('multipart/form-data', @page.forms[1].enctype)
46
+
47
+ form = @page.forms[1]
48
+ form.file_uploads.first.file_name = "#{BASE_DIR}/helper.rb"
49
+ form.file_uploads.first.mime_type = "text/plain"
50
+ form.file_uploads.first.file_data = "Hello World\n\n"
51
+
52
+ @page = @agent.submit(form)
53
+
54
+ assert_match(
55
+ "Content-Disposition: form-data; name=\"green[eggs]\"; filename=\"helper.rb\"",
56
+ @page.body
57
+ )
58
+ end
59
+
60
+ def test_form_read_file
61
+ assert_equal('multipart/form-data', @page.forms[1].enctype)
62
+
63
+ form = @page.forms[1]
64
+ form.file_uploads.first.file_name = "#{BASE_DIR}/helper.rb"
65
+
66
+ @page = @agent.submit(form)
67
+
68
+ contents = File.open("#{BASE_DIR}/helper.rb", 'rb') { |f| f.read }
69
+ assert_match(
70
+ "Content-Disposition: form-data; name=\"green[eggs]\"; filename=\"helper.rb\"",
71
+ @page.body
72
+ )
73
+ assert_match(contents, @page.body)
74
+ end
75
+
76
+ def test_form_io_obj
77
+ assert_equal('multipart/form-data', @page.forms[1].enctype)
78
+
79
+ form = @page.forms[1]
80
+ form.file_uploads.first.file_name = "#{BASE_DIR}/helper.rb"
81
+ form.file_uploads.first.file_data = File.open("#{BASE_DIR}/helper.rb", 'rb')
82
+
83
+ @page = @agent.submit(form)
84
+
85
+ contents = File.open("#{BASE_DIR}/helper.rb", 'rb') { |f| f.read }
86
+ assert_match(
87
+ "Content-Disposition: form-data; name=\"green[eggs]\"; filename=\"helper.rb\"",
88
+ @page.body
89
+ )
90
+ assert_match(contents, @page.body)
91
+ end
92
+
93
+ def test_submit_no_file
94
+ form = @page.forms.first
95
+ form.field_with(:name => 'name').value = 'Aaron'
96
+ @page = @agent.submit(form)
97
+ assert_match('Aaron', @page.body)
98
+ assert_match(
99
+ "Content-Disposition: form-data; name=\"userfile1\"; filename=\"\"",
100
+ @page.body
101
+ )
102
+ end
103
+
104
+ def test_no_value
105
+ form = @page.form('value_test')
106
+ assert_nil(form.file_uploads.first.value)
107
+ assert_nil(form.file_uploads.first.file_name)
108
+ end
109
+ end
@@ -0,0 +1,25 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), "helper"))
2
+
3
+ class VerbsTest < Test::Unit::TestCase
4
+ def setup
5
+ @agent = WWW::Mechanize.new
6
+ end
7
+
8
+ def test_put
9
+ page = @agent.put('http://localhost/verb', 'foo')
10
+ assert_equal 1, @agent.history.length
11
+ assert_equal('method: PUT', page.body)
12
+ end
13
+
14
+ def test_delete
15
+ page = @agent.delete('http://localhost/verb', { 'q' => 'foo' })
16
+ assert_equal 1, @agent.history.length
17
+ assert_equal('method: DELETE', page.body)
18
+ end
19
+
20
+ def test_head
21
+ page = @agent.head('http://localhost/verb', { 'q' => 'foo' })
22
+ assert_equal 0, @agent.history.length
23
+ assert_equal('method: HEAD', page.body)
24
+ end
25
+ end
metadata ADDED
@@ -0,0 +1,314 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: knu-mechanize
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.3.20090623142847
5
+ platform: ruby
6
+ authors:
7
+ - Aaron Patterson
8
+ - Mike Dalessio
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2009-06-23 00:00:00 -07:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: nokogiri
18
+ type: :runtime
19
+ version_requirement:
20
+ version_requirements: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: 1.2.1
25
+ version:
26
+ - !ruby/object:Gem::Dependency
27
+ name: hoe
28
+ type: :development
29
+ version_requirement:
30
+ version_requirements: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: 2.2.0
35
+ version:
36
+ description: The Mechanize library is used for automating interaction with websites. Mechanize automatically stores and sends cookies, follows redirects, can follow links, and submit forms. Form fields can be populated and submitted. Mechanize also keeps track of the sites that you have visited as a history.
37
+ email:
38
+ - aaronp@rubyforge.org
39
+ - mike.dalessio@gmail.com
40
+ executables: []
41
+
42
+ extensions: []
43
+
44
+ extra_rdoc_files:
45
+ - Manifest.txt
46
+ - CHANGELOG.rdoc
47
+ - EXAMPLES.rdoc
48
+ - FAQ.rdoc
49
+ - GUIDE.rdoc
50
+ - LICENSE.rdoc
51
+ - README.rdoc
52
+ files:
53
+ - CHANGELOG.rdoc
54
+ - EXAMPLES.rdoc
55
+ - FAQ.rdoc
56
+ - GUIDE.rdoc
57
+ - LICENSE.rdoc
58
+ - Manifest.txt
59
+ - README.rdoc
60
+ - Rakefile
61
+ - examples/flickr_upload.rb
62
+ - examples/mech-dump.rb
63
+ - examples/proxy_req.rb
64
+ - examples/rubyforge.rb
65
+ - examples/spider.rb
66
+ - lib/mechanize.rb
67
+ - lib/www/mechanize.rb
68
+ - lib/www/mechanize/chain.rb
69
+ - lib/www/mechanize/chain/auth_headers.rb
70
+ - lib/www/mechanize/chain/body_decoding_handler.rb
71
+ - lib/www/mechanize/chain/connection_resolver.rb
72
+ - lib/www/mechanize/chain/custom_headers.rb
73
+ - lib/www/mechanize/chain/handler.rb
74
+ - lib/www/mechanize/chain/header_resolver.rb
75
+ - lib/www/mechanize/chain/parameter_resolver.rb
76
+ - lib/www/mechanize/chain/post_connect_hook.rb
77
+ - lib/www/mechanize/chain/pre_connect_hook.rb
78
+ - lib/www/mechanize/chain/request_resolver.rb
79
+ - lib/www/mechanize/chain/response_body_parser.rb
80
+ - lib/www/mechanize/chain/response_header_handler.rb
81
+ - lib/www/mechanize/chain/response_reader.rb
82
+ - lib/www/mechanize/chain/ssl_resolver.rb
83
+ - lib/www/mechanize/chain/uri_resolver.rb
84
+ - lib/www/mechanize/content_type_error.rb
85
+ - lib/www/mechanize/cookie.rb
86
+ - lib/www/mechanize/cookie_jar.rb
87
+ - lib/www/mechanize/file.rb
88
+ - lib/www/mechanize/file_response.rb
89
+ - lib/www/mechanize/file_saver.rb
90
+ - lib/www/mechanize/form.rb
91
+ - lib/www/mechanize/form/button.rb
92
+ - lib/www/mechanize/form/check_box.rb
93
+ - lib/www/mechanize/form/field.rb
94
+ - lib/www/mechanize/form/file_upload.rb
95
+ - lib/www/mechanize/form/image_button.rb
96
+ - lib/www/mechanize/form/multi_select_list.rb
97
+ - lib/www/mechanize/form/option.rb
98
+ - lib/www/mechanize/form/radio_button.rb
99
+ - lib/www/mechanize/form/select_list.rb
100
+ - lib/www/mechanize/headers.rb
101
+ - lib/www/mechanize/history.rb
102
+ - lib/www/mechanize/inspect.rb
103
+ - lib/www/mechanize/monkey_patch.rb
104
+ - lib/www/mechanize/page.rb
105
+ - lib/www/mechanize/page/base.rb
106
+ - lib/www/mechanize/page/frame.rb
107
+ - lib/www/mechanize/page/link.rb
108
+ - lib/www/mechanize/page/meta.rb
109
+ - lib/www/mechanize/pluggable_parsers.rb
110
+ - lib/www/mechanize/redirect_limit_reached_error.rb
111
+ - lib/www/mechanize/redirect_not_get_or_head_error.rb
112
+ - lib/www/mechanize/response_code_error.rb
113
+ - lib/www/mechanize/unsupported_scheme_error.rb
114
+ - lib/www/mechanize/util.rb
115
+ - mechanize.gemspec
116
+ - test/chain/test_argument_validator.rb
117
+ - test/chain/test_custom_headers.rb
118
+ - test/chain/test_parameter_resolver.rb
119
+ - test/chain/test_request_resolver.rb
120
+ - test/chain/test_response_reader.rb
121
+ - test/data/htpasswd
122
+ - test/data/server.crt
123
+ - test/data/server.csr
124
+ - test/data/server.key
125
+ - test/data/server.pem
126
+ - test/helper.rb
127
+ - test/htdocs/alt_text.html
128
+ - test/htdocs/bad_form_test.html
129
+ - test/htdocs/button.jpg
130
+ - test/htdocs/empty_form.html
131
+ - test/htdocs/file_upload.html
132
+ - test/htdocs/find_link.html
133
+ - test/htdocs/form_multi_select.html
134
+ - test/htdocs/form_multival.html
135
+ - test/htdocs/form_no_action.html
136
+ - test/htdocs/form_no_input_name.html
137
+ - test/htdocs/form_select.html
138
+ - test/htdocs/form_select_all.html
139
+ - test/htdocs/form_select_none.html
140
+ - test/htdocs/form_select_noopts.html
141
+ - test/htdocs/form_set_fields.html
142
+ - test/htdocs/form_test.html
143
+ - test/htdocs/frame_test.html
144
+ - test/htdocs/google.html
145
+ - test/htdocs/iframe_test.html
146
+ - test/htdocs/index.html
147
+ - test/htdocs/link with space.html
148
+ - test/htdocs/meta_cookie.html
149
+ - test/htdocs/no_title_test.html
150
+ - test/htdocs/relative/tc_relative_links.html
151
+ - test/htdocs/tc_bad_links.html
152
+ - test/htdocs/tc_base_link.html
153
+ - test/htdocs/tc_blank_form.html
154
+ - test/htdocs/tc_checkboxes.html
155
+ - test/htdocs/tc_encoded_links.html
156
+ - test/htdocs/tc_follow_meta.html
157
+ - test/htdocs/tc_form_action.html
158
+ - test/htdocs/tc_links.html
159
+ - test/htdocs/tc_no_attributes.html
160
+ - test/htdocs/tc_pretty_print.html
161
+ - test/htdocs/tc_radiobuttons.html
162
+ - test/htdocs/tc_referer.html
163
+ - test/htdocs/tc_relative_links.html
164
+ - test/htdocs/tc_textarea.html
165
+ - test/htdocs/unusual______.html
166
+ - test/servlets.rb
167
+ - test/ssl_server.rb
168
+ - test/test_authenticate.rb
169
+ - test/test_bad_links.rb
170
+ - test/test_blank_form.rb
171
+ - test/test_checkboxes.rb
172
+ - test/test_content_type.rb
173
+ - test/test_cookie_class.rb
174
+ - test/test_cookie_jar.rb
175
+ - test/test_cookies.rb
176
+ - test/test_encoded_links.rb
177
+ - test/test_errors.rb
178
+ - test/test_follow_meta.rb
179
+ - test/test_form_action.rb
180
+ - test/test_form_as_hash.rb
181
+ - test/test_form_button.rb
182
+ - test/test_form_no_inputname.rb
183
+ - test/test_forms.rb
184
+ - test/test_frames.rb
185
+ - test/test_get_headers.rb
186
+ - test/test_gzipping.rb
187
+ - test/test_hash_api.rb
188
+ - test/test_history.rb
189
+ - test/test_history_added.rb
190
+ - test/test_html_unscape_forms.rb
191
+ - test/test_if_modified_since.rb
192
+ - test/test_keep_alive.rb
193
+ - test/test_links.rb
194
+ - test/test_mech.rb
195
+ - test/test_mechanize_file.rb
196
+ - test/test_multi_select.rb
197
+ - test/test_no_attributes.rb
198
+ - test/test_option.rb
199
+ - test/test_page.rb
200
+ - test/test_pluggable_parser.rb
201
+ - test/test_post_form.rb
202
+ - test/test_pretty_print.rb
203
+ - test/test_radiobutton.rb
204
+ - test/test_redirect_limit_reached.rb
205
+ - test/test_redirect_verb_handling.rb
206
+ - test/test_referer.rb
207
+ - test/test_relative_links.rb
208
+ - test/test_request.rb
209
+ - test/test_response_code.rb
210
+ - test/test_save_file.rb
211
+ - test/test_scheme.rb
212
+ - test/test_select.rb
213
+ - test/test_select_all.rb
214
+ - test/test_select_none.rb
215
+ - test/test_select_noopts.rb
216
+ - test/test_set_fields.rb
217
+ - test/test_ssl_server.rb
218
+ - test/test_subclass.rb
219
+ - test/test_textarea.rb
220
+ - test/test_upload.rb
221
+ - test/test_verbs.rb
222
+ - test/chain/test_auth_headers.rb
223
+ - test/chain/test_header_resolver.rb
224
+ - test/test_meta.rb
225
+ has_rdoc: false
226
+ homepage: http://mechanize.rubyforge.org/
227
+ post_install_message:
228
+ rdoc_options:
229
+ - --main
230
+ - README.rdoc
231
+ require_paths:
232
+ - lib
233
+ required_ruby_version: !ruby/object:Gem::Requirement
234
+ requirements:
235
+ - - ">="
236
+ - !ruby/object:Gem::Version
237
+ version: "0"
238
+ version:
239
+ required_rubygems_version: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: "0"
244
+ version:
245
+ requirements: []
246
+
247
+ rubyforge_project: mechanize
248
+ rubygems_version: 1.2.0
249
+ signing_key:
250
+ specification_version: 3
251
+ summary: Mechanize provides automated web-browsing
252
+ test_files:
253
+ - test/chain/test_argument_validator.rb
254
+ - test/chain/test_auth_headers.rb
255
+ - test/chain/test_custom_headers.rb
256
+ - test/chain/test_header_resolver.rb
257
+ - test/chain/test_parameter_resolver.rb
258
+ - test/chain/test_request_resolver.rb
259
+ - test/chain/test_response_reader.rb
260
+ - test/test_authenticate.rb
261
+ - test/test_bad_links.rb
262
+ - test/test_blank_form.rb
263
+ - test/test_checkboxes.rb
264
+ - test/test_content_type.rb
265
+ - test/test_cookie_class.rb
266
+ - test/test_cookie_jar.rb
267
+ - test/test_cookies.rb
268
+ - test/test_encoded_links.rb
269
+ - test/test_errors.rb
270
+ - test/test_follow_meta.rb
271
+ - test/test_form_action.rb
272
+ - test/test_form_as_hash.rb
273
+ - test/test_form_button.rb
274
+ - test/test_form_no_inputname.rb
275
+ - test/test_forms.rb
276
+ - test/test_frames.rb
277
+ - test/test_get_headers.rb
278
+ - test/test_gzipping.rb
279
+ - test/test_hash_api.rb
280
+ - test/test_history.rb
281
+ - test/test_history_added.rb
282
+ - test/test_html_unscape_forms.rb
283
+ - test/test_if_modified_since.rb
284
+ - test/test_keep_alive.rb
285
+ - test/test_links.rb
286
+ - test/test_mech.rb
287
+ - test/test_mechanize_file.rb
288
+ - test/test_meta.rb
289
+ - test/test_multi_select.rb
290
+ - test/test_no_attributes.rb
291
+ - test/test_option.rb
292
+ - test/test_page.rb
293
+ - test/test_pluggable_parser.rb
294
+ - test/test_post_form.rb
295
+ - test/test_pretty_print.rb
296
+ - test/test_radiobutton.rb
297
+ - test/test_redirect_limit_reached.rb
298
+ - test/test_redirect_verb_handling.rb
299
+ - test/test_referer.rb
300
+ - test/test_relative_links.rb
301
+ - test/test_request.rb
302
+ - test/test_response_code.rb
303
+ - test/test_save_file.rb
304
+ - test/test_scheme.rb
305
+ - test/test_select.rb
306
+ - test/test_select_all.rb
307
+ - test/test_select_none.rb
308
+ - test/test_select_noopts.rb
309
+ - test/test_set_fields.rb
310
+ - test/test_ssl_server.rb
311
+ - test/test_subclass.rb
312
+ - test/test_textarea.rb
313
+ - test/test_upload.rb
314
+ - test/test_verbs.rb