neocoin-mechanize 2.0.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 (174) hide show
  1. data/.autotest +6 -0
  2. data/.gemtest +0 -0
  3. data/CHANGELOG.rdoc +638 -0
  4. data/EXAMPLES.rdoc +187 -0
  5. data/FAQ.rdoc +11 -0
  6. data/GUIDE.rdoc +163 -0
  7. data/LICENSE.rdoc +20 -0
  8. data/Manifest.txt +172 -0
  9. data/README.rdoc +63 -0
  10. data/Rakefile +36 -0
  11. data/examples/flickr_upload.rb +22 -0
  12. data/examples/mech-dump.rb +5 -0
  13. data/examples/proxy_req.rb +7 -0
  14. data/examples/rubyforge.rb +20 -0
  15. data/examples/spider.rb +21 -0
  16. data/lib/mechanize.rb +662 -0
  17. data/lib/mechanize/content_type_error.rb +14 -0
  18. data/lib/mechanize/cookie.rb +85 -0
  19. data/lib/mechanize/cookie_jar.rb +241 -0
  20. data/lib/mechanize/element_matcher.rb +35 -0
  21. data/lib/mechanize/file.rb +80 -0
  22. data/lib/mechanize/file_connection.rb +17 -0
  23. data/lib/mechanize/file_request.rb +26 -0
  24. data/lib/mechanize/file_response.rb +74 -0
  25. data/lib/mechanize/file_saver.rb +37 -0
  26. data/lib/mechanize/form.rb +478 -0
  27. data/lib/mechanize/form/button.rb +9 -0
  28. data/lib/mechanize/form/check_box.rb +11 -0
  29. data/lib/mechanize/form/field.rb +44 -0
  30. data/lib/mechanize/form/file_upload.rb +23 -0
  31. data/lib/mechanize/form/image_button.rb +20 -0
  32. data/lib/mechanize/form/multi_select_list.rb +83 -0
  33. data/lib/mechanize/form/option.rb +49 -0
  34. data/lib/mechanize/form/radio_button.rb +48 -0
  35. data/lib/mechanize/form/select_list.rb +40 -0
  36. data/lib/mechanize/headers.rb +25 -0
  37. data/lib/mechanize/history.rb +83 -0
  38. data/lib/mechanize/http.rb +3 -0
  39. data/lib/mechanize/http/agent.rb +738 -0
  40. data/lib/mechanize/inspect.rb +88 -0
  41. data/lib/mechanize/monkey_patch.rb +37 -0
  42. data/lib/mechanize/page.rb +408 -0
  43. data/lib/mechanize/page/base.rb +8 -0
  44. data/lib/mechanize/page/frame.rb +27 -0
  45. data/lib/mechanize/page/image.rb +30 -0
  46. data/lib/mechanize/page/label.rb +20 -0
  47. data/lib/mechanize/page/link.rb +82 -0
  48. data/lib/mechanize/page/meta_refresh.rb +56 -0
  49. data/lib/mechanize/pluggable_parsers.rb +101 -0
  50. data/lib/mechanize/redirect_limit_reached_error.rb +16 -0
  51. data/lib/mechanize/redirect_not_get_or_head_error.rb +19 -0
  52. data/lib/mechanize/response_code_error.rb +22 -0
  53. data/lib/mechanize/response_read_error.rb +27 -0
  54. data/lib/mechanize/robots_disallowed_error.rb +29 -0
  55. data/lib/mechanize/unsupported_scheme_error.rb +8 -0
  56. data/lib/mechanize/util.rb +113 -0
  57. data/test/data/htpasswd +1 -0
  58. data/test/data/server.crt +16 -0
  59. data/test/data/server.csr +12 -0
  60. data/test/data/server.key +15 -0
  61. data/test/data/server.pem +15 -0
  62. data/test/helper.rb +175 -0
  63. data/test/htdocs/alt_text.html +10 -0
  64. data/test/htdocs/bad_form_test.html +9 -0
  65. data/test/htdocs/button.jpg +0 -0
  66. data/test/htdocs/canonical_uri.html +9 -0
  67. data/test/htdocs/dir with spaces/foo.html +1 -0
  68. data/test/htdocs/empty_form.html +6 -0
  69. data/test/htdocs/file_upload.html +26 -0
  70. data/test/htdocs/find_link.html +41 -0
  71. data/test/htdocs/form_multi_select.html +16 -0
  72. data/test/htdocs/form_multival.html +37 -0
  73. data/test/htdocs/form_no_action.html +18 -0
  74. data/test/htdocs/form_no_input_name.html +16 -0
  75. data/test/htdocs/form_select.html +16 -0
  76. data/test/htdocs/form_select_all.html +16 -0
  77. data/test/htdocs/form_select_none.html +17 -0
  78. data/test/htdocs/form_select_noopts.html +10 -0
  79. data/test/htdocs/form_set_fields.html +14 -0
  80. data/test/htdocs/form_test.html +188 -0
  81. data/test/htdocs/frame_referer_test.html +10 -0
  82. data/test/htdocs/frame_test.html +30 -0
  83. data/test/htdocs/google.html +13 -0
  84. data/test/htdocs/iframe_test.html +16 -0
  85. data/test/htdocs/index.html +6 -0
  86. data/test/htdocs/link with space.html +5 -0
  87. data/test/htdocs/meta_cookie.html +11 -0
  88. data/test/htdocs/no_title_test.html +6 -0
  89. data/test/htdocs/nofollow.html +9 -0
  90. data/test/htdocs/noindex.html +9 -0
  91. data/test/htdocs/norobots.html +8 -0
  92. data/test/htdocs/rails_3_encoding_hack_form_test.html +27 -0
  93. data/test/htdocs/rel_nofollow.html +8 -0
  94. data/test/htdocs/relative/tc_relative_links.html +21 -0
  95. data/test/htdocs/robots.html +8 -0
  96. data/test/htdocs/robots.txt +2 -0
  97. data/test/htdocs/tc_bad_charset.html +9 -0
  98. data/test/htdocs/tc_bad_links.html +5 -0
  99. data/test/htdocs/tc_base_images.html +10 -0
  100. data/test/htdocs/tc_base_link.html +8 -0
  101. data/test/htdocs/tc_blank_form.html +11 -0
  102. data/test/htdocs/tc_charset.html +6 -0
  103. data/test/htdocs/tc_checkboxes.html +19 -0
  104. data/test/htdocs/tc_encoded_links.html +5 -0
  105. data/test/htdocs/tc_field_precedence.html +11 -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_images.html +8 -0
  109. data/test/htdocs/tc_links.html +18 -0
  110. data/test/htdocs/tc_meta_in_body.html +9 -0
  111. data/test/htdocs/tc_no_attributes.html +16 -0
  112. data/test/htdocs/tc_pretty_print.html +17 -0
  113. data/test/htdocs/tc_radiobuttons.html +17 -0
  114. data/test/htdocs/tc_referer.html +16 -0
  115. data/test/htdocs/tc_relative_links.html +19 -0
  116. data/test/htdocs/tc_textarea.html +23 -0
  117. data/test/htdocs/test_bad_encoding.html +52 -0
  118. data/test/htdocs/test_click.html +11 -0
  119. data/test/htdocs/unusual______.html +5 -0
  120. data/test/servlets.rb +402 -0
  121. data/test/ssl_server.rb +48 -0
  122. data/test/test_cookies.rb +129 -0
  123. data/test/test_form_action.rb +52 -0
  124. data/test/test_form_as_hash.rb +59 -0
  125. data/test/test_form_button.rb +46 -0
  126. data/test/test_frames.rb +34 -0
  127. data/test/test_headers.rb +33 -0
  128. data/test/test_history.rb +118 -0
  129. data/test/test_history_added.rb +16 -0
  130. data/test/test_html_unscape_forms.rb +46 -0
  131. data/test/test_if_modified_since.rb +20 -0
  132. data/test/test_images.rb +19 -0
  133. data/test/test_mechanize.rb +842 -0
  134. data/test/test_mechanize_cookie.rb +345 -0
  135. data/test/test_mechanize_cookie_jar.rb +401 -0
  136. data/test/test_mechanize_file.rb +53 -0
  137. data/test/test_mechanize_file_request.rb +19 -0
  138. data/test/test_mechanize_file_response.rb +21 -0
  139. data/test/test_mechanize_form.rb +576 -0
  140. data/test/test_mechanize_form_check_box.rb +37 -0
  141. data/test/test_mechanize_form_encoding.rb +120 -0
  142. data/test/test_mechanize_form_field.rb +21 -0
  143. data/test/test_mechanize_form_image_button.rb +12 -0
  144. data/test/test_mechanize_form_textarea.rb +51 -0
  145. data/test/test_mechanize_http_agent.rb +697 -0
  146. data/test/test_mechanize_link.rb +84 -0
  147. data/test/test_mechanize_page_encoding.rb +147 -0
  148. data/test/test_mechanize_page_link.rb +382 -0
  149. data/test/test_mechanize_page_meta_refresh.rb +115 -0
  150. data/test/test_mechanize_redirect_not_get_or_head_error.rb +18 -0
  151. data/test/test_mechanize_subclass.rb +22 -0
  152. data/test/test_mechanize_util.rb +92 -0
  153. data/test/test_multi_select.rb +118 -0
  154. data/test/test_no_attributes.rb +13 -0
  155. data/test/test_option.rb +18 -0
  156. data/test/test_pluggable_parser.rb +136 -0
  157. data/test/test_post_form.rb +37 -0
  158. data/test/test_pretty_print.rb +22 -0
  159. data/test/test_radiobutton.rb +75 -0
  160. data/test/test_redirect_limit_reached.rb +39 -0
  161. data/test/test_referer.rb +81 -0
  162. data/test/test_relative_links.rb +40 -0
  163. data/test/test_request.rb +13 -0
  164. data/test/test_response_code.rb +53 -0
  165. data/test/test_robots.rb +72 -0
  166. data/test/test_save_file.rb +48 -0
  167. data/test/test_scheme.rb +48 -0
  168. data/test/test_select.rb +119 -0
  169. data/test/test_select_all.rb +15 -0
  170. data/test/test_select_none.rb +15 -0
  171. data/test/test_select_noopts.rb +18 -0
  172. data/test/test_set_fields.rb +44 -0
  173. data/test/test_ssl_server.rb +20 -0
  174. metadata +354 -0
@@ -0,0 +1,48 @@
1
+ require "helper"
2
+
3
+ class SchemeTest < MiniTest::Unit::TestCase
4
+ def setup
5
+ @agent = Mechanize.new
6
+ @agent.log = Class.new(Object) do
7
+ def method_missing(*args)
8
+ end
9
+ end.new
10
+ end
11
+
12
+ def test_file_scheme
13
+ f = File.expand_path(__FILE__)
14
+ page = @agent.get("file://#{f}")
15
+ assert_equal(File.read(f), page.body)
16
+ end
17
+
18
+ def test_file_scheme_parses_html
19
+ f = File.expand_path(
20
+ File.join(File.dirname(__FILE__), "htdocs", 'google.html'))
21
+ page = @agent.get("file://#{f}")
22
+ assert_equal(File.read(f), page.body)
23
+ assert_kind_of(Mechanize::Page, page)
24
+ end
25
+
26
+ def test_file_scheme_supports_directories
27
+ f = File.expand_path(File.join(File.dirname(__FILE__), "htdocs"))
28
+ page = @agent.get("file://#{f}")
29
+ assert_equal(Dir[File.join(f, '*')].length, page.links.length)
30
+ assert_kind_of(Mechanize::Page, page)
31
+ end
32
+
33
+ def test_click_file_link
34
+ f = File.expand_path(File.join(File.dirname(__FILE__), "htdocs"))
35
+ page = @agent.get("file://#{f}")
36
+ link = page.links.find { |l| l.text =~ /tc_follow_meta/ }
37
+
38
+ path = URI.parse(link.href).path
39
+
40
+ page = link.click
41
+ assert_equal(File.read(path), page.body)
42
+
43
+ link = page.meta_refresh.first
44
+ page = @agent.click(link)
45
+
46
+ assert_equal("http://localhost/index.html", @agent.history.last.uri.to_s)
47
+ end
48
+ end
@@ -0,0 +1,119 @@
1
+ require "helper"
2
+
3
+ class SelectTest < MiniTest::Unit::TestCase
4
+ def setup
5
+ @agent = Mechanize.new
6
+ @page = @agent.get("http://localhost/form_select.html")
7
+ @form = @page.forms.first
8
+ end
9
+
10
+ def test_option_with
11
+ o = @form.field_with(:name => 'list').option_with(:value => '1')
12
+ assert_equal '1', o.value
13
+ end
14
+
15
+ def test_options_with
16
+ os = @form.field_with(:name => 'list').options_with(:value => /1|2/)
17
+ assert_equal ['1', '2'].sort, os.map { |x| x.value }.sort
18
+ end
19
+
20
+ def test_select_none
21
+ @form.fields_with(:name => 'list').first.select_none
22
+ assert_equal('1', @form.list)
23
+ end
24
+
25
+ def test_select_all
26
+ @form.fields_with(:name => 'list').first.select_all
27
+ assert_equal('6', @form.list)
28
+ end
29
+
30
+ def test_correct_class
31
+ assert_instance_of(Mechanize::Form::SelectList,
32
+ @form.field_with(:name => 'list'))
33
+ end
34
+
35
+ def test_click_all
36
+ @form.field_with(:name => 'list').options.each { |o| o.click }
37
+
38
+ option_list = @form.field_with(:name => 'list').options
39
+
40
+ assert_equal(6, option_list.length)
41
+ assert_equal(option_list.last.value, @form.list)
42
+
43
+ page = @agent.submit(@form)
44
+
45
+ assert_equal(1, page.links.length)
46
+ assert_equal(1, page.links_with(:text => "list:#{option_list.last}").length)
47
+ end
48
+
49
+ def test_select_default
50
+ assert_equal("2", @form.list)
51
+ page = @agent.submit(@form)
52
+ assert_equal(1, page.links.length)
53
+ assert_equal(1, page.links_with(:text => 'list:2').length)
54
+ end
55
+
56
+ def test_select_one
57
+ @form.list = 'Aaron'
58
+ assert_equal('Aaron', @form.list)
59
+ page = @agent.submit(@form)
60
+ assert_equal(1, page.links.length)
61
+ assert_equal('list:Aaron', page.links.first.text)
62
+ end
63
+
64
+ def test_select_two
65
+ @form.list = ['1', 'Aaron']
66
+ assert_equal('1', @form.list)
67
+ page = @agent.submit(@form)
68
+ assert_equal(1, page.links.length)
69
+ assert_equal(1, page.links_with(:text => 'list:1').length)
70
+ end
71
+
72
+ def test_select_three
73
+ @form.list = ['1', '2', '3']
74
+ assert_equal('1', @form.list)
75
+ page = @agent.submit(@form)
76
+ assert_equal(1, page.links.length)
77
+ assert_equal(1, page.links_with(:text => 'list:1').length)
78
+ end
79
+
80
+ def test_select_three_twice
81
+ @form.list = ['1', '2', '3']
82
+ @form.list = ['1', '2', '3']
83
+ assert_equal('1', @form.list)
84
+ page = @agent.submit(@form)
85
+ assert_equal(1, page.links.length)
86
+ assert_equal(1, page.links_with(:text => 'list:1').length)
87
+ end
88
+
89
+ def test_select_with_empty_value
90
+ list = @form.field_with(:name => 'list')
91
+ list.options.last.instance_variable_set(:@value, '')
92
+ list.options.last.tick
93
+ page = @agent.submit(@form)
94
+ assert_equal(1, page.links.length)
95
+ assert_equal(1, page.links_with(:text => 'list:').length)
96
+ end
97
+
98
+ def test_select_with_click
99
+ @form.list = ['1', 'Aaron']
100
+ @form.field_with(:name => 'list').options[3].tick
101
+ assert_equal('4', @form.list)
102
+ page = @agent.submit(@form)
103
+ assert_equal(1, page.links.length)
104
+ assert_equal(1, page.links_with(:text => 'list:4').length)
105
+ end
106
+
107
+ def test_click_twice
108
+ list = @form.field_with(:name => 'list')
109
+ list.options[0].click
110
+ assert_equal('1', @form.list)
111
+ list.options[1].click
112
+ assert_equal('2', @form.list)
113
+ list.options.last.click
114
+ assert_equal('6', @form.list)
115
+ assert_equal(1, list.selected_options.length)
116
+ list.select_all
117
+ assert_equal(1, list.selected_options.length)
118
+ end
119
+ end
@@ -0,0 +1,15 @@
1
+ require "helper"
2
+ class SelectAllTest < MiniTest::Unit::TestCase
3
+ def setup
4
+ @agent = Mechanize.new
5
+ @page = @agent.get("http://localhost/form_select_all.html")
6
+ @form = @page.forms.first
7
+ end
8
+
9
+ def test_select_default
10
+ assert_equal("6", @form.list)
11
+ page = @agent.submit(@form)
12
+ assert_equal(1, page.links.length)
13
+ assert_equal(1, page.links_with(:text => 'list:6').length)
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ require "helper"
2
+ class SelectNoneTest < MiniTest::Unit::TestCase
3
+ def setup
4
+ @agent = Mechanize.new
5
+ @page = @agent.get("http://localhost/form_select_none.html")
6
+ @form = @page.forms.first
7
+ end
8
+
9
+ def test_select_default
10
+ assert_equal("1", @form.list)
11
+ page = @agent.submit(@form)
12
+ assert_equal(1, page.links.length)
13
+ assert_equal(1, page.links_with(:text => 'list:1').length)
14
+ end
15
+ end
@@ -0,0 +1,18 @@
1
+ require "helper"
2
+
3
+ class SelectNoOptionsTest < MiniTest::Unit::TestCase
4
+ def setup
5
+ @agent = Mechanize.new
6
+ @page = @agent.get("http://localhost/form_select_noopts.html")
7
+ @form = @page.forms.first
8
+ end
9
+
10
+ def test_select_default
11
+ assert @form.field('list')
12
+ assert_nil @form.list
13
+
14
+ page = @agent.submit(@form)
15
+
16
+ assert_equal(0, page.links.length)
17
+ end
18
+ end
@@ -0,0 +1,44 @@
1
+ require "helper"
2
+
3
+ class TestSetFields < MiniTest::Unit::TestCase
4
+ def setup
5
+ @agent = 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 "helper"
2
+
3
+ class SSLServerTest < MiniTest::Unit::TestCase
4
+ def setup
5
+ @agent = 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
metadata ADDED
@@ -0,0 +1,354 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: neocoin-mechanize
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 2.0.2
6
+ platform: ruby
7
+ authors:
8
+ - Eric Hodel
9
+ - Aaron Patterson
10
+ - Mike Dalessio
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+
15
+ date: 2011-07-05 00:00:00 Z
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
18
+ name: nokogiri
19
+ prerelease: false
20
+ requirement: &id001 !ruby/object:Gem::Requirement
21
+ none: false
22
+ requirements:
23
+ - - ~>
24
+ - !ruby/object:Gem::Version
25
+ version: "1.4"
26
+ type: :runtime
27
+ version_requirements: *id001
28
+ - !ruby/object:Gem::Dependency
29
+ name: net-http-persistent
30
+ prerelease: false
31
+ requirement: &id002 !ruby/object:Gem::Requirement
32
+ none: false
33
+ requirements:
34
+ - - ~>
35
+ - !ruby/object:Gem::Version
36
+ version: "1.8"
37
+ type: :runtime
38
+ version_requirements: *id002
39
+ - !ruby/object:Gem::Dependency
40
+ name: net-http-digest_auth
41
+ prerelease: false
42
+ requirement: &id003 !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: "1.1"
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 1.1.1
51
+ type: :runtime
52
+ version_requirements: *id003
53
+ - !ruby/object:Gem::Dependency
54
+ name: webrobots
55
+ prerelease: false
56
+ requirement: &id004 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: "0.0"
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 0.0.9
65
+ type: :runtime
66
+ version_requirements: *id004
67
+ - !ruby/object:Gem::Dependency
68
+ name: hoe
69
+ prerelease: false
70
+ requirement: &id005 !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: "2.10"
76
+ type: :development
77
+ version_requirements: *id005
78
+ description: |-
79
+ The Mechanize library is used for automating interaction with websites.
80
+ Mechanize automatically stores and sends cookies, follows redirects,
81
+ can follow links, and submit forms. Form fields can be populated and
82
+ submitted. Mechanize also keeps track of the sites that you have visited as
83
+ a history.
84
+ email:
85
+ - drbrain@segment7.net
86
+ - aaronp@rubyforge.org
87
+ - mike.dalessio@gmail.com
88
+ executables: []
89
+
90
+ extensions: []
91
+
92
+ extra_rdoc_files:
93
+ - Manifest.txt
94
+ - CHANGELOG.rdoc
95
+ - EXAMPLES.rdoc
96
+ - FAQ.rdoc
97
+ - GUIDE.rdoc
98
+ - LICENSE.rdoc
99
+ - README.rdoc
100
+ files:
101
+ - .autotest
102
+ - CHANGELOG.rdoc
103
+ - EXAMPLES.rdoc
104
+ - FAQ.rdoc
105
+ - GUIDE.rdoc
106
+ - LICENSE.rdoc
107
+ - Manifest.txt
108
+ - README.rdoc
109
+ - Rakefile
110
+ - examples/flickr_upload.rb
111
+ - examples/mech-dump.rb
112
+ - examples/proxy_req.rb
113
+ - examples/rubyforge.rb
114
+ - examples/spider.rb
115
+ - lib/mechanize.rb
116
+ - lib/mechanize/content_type_error.rb
117
+ - lib/mechanize/cookie.rb
118
+ - lib/mechanize/cookie_jar.rb
119
+ - lib/mechanize/element_matcher.rb
120
+ - lib/mechanize/file.rb
121
+ - lib/mechanize/file_connection.rb
122
+ - lib/mechanize/file_request.rb
123
+ - lib/mechanize/file_response.rb
124
+ - lib/mechanize/file_saver.rb
125
+ - lib/mechanize/form.rb
126
+ - lib/mechanize/form/button.rb
127
+ - lib/mechanize/form/check_box.rb
128
+ - lib/mechanize/form/field.rb
129
+ - lib/mechanize/form/file_upload.rb
130
+ - lib/mechanize/form/image_button.rb
131
+ - lib/mechanize/form/multi_select_list.rb
132
+ - lib/mechanize/form/option.rb
133
+ - lib/mechanize/form/radio_button.rb
134
+ - lib/mechanize/form/select_list.rb
135
+ - lib/mechanize/headers.rb
136
+ - lib/mechanize/history.rb
137
+ - lib/mechanize/http.rb
138
+ - lib/mechanize/http/agent.rb
139
+ - lib/mechanize/inspect.rb
140
+ - lib/mechanize/monkey_patch.rb
141
+ - lib/mechanize/page.rb
142
+ - lib/mechanize/page/base.rb
143
+ - lib/mechanize/page/frame.rb
144
+ - lib/mechanize/page/image.rb
145
+ - lib/mechanize/page/label.rb
146
+ - lib/mechanize/page/link.rb
147
+ - lib/mechanize/page/meta_refresh.rb
148
+ - lib/mechanize/pluggable_parsers.rb
149
+ - lib/mechanize/redirect_limit_reached_error.rb
150
+ - lib/mechanize/redirect_not_get_or_head_error.rb
151
+ - lib/mechanize/response_code_error.rb
152
+ - lib/mechanize/response_read_error.rb
153
+ - lib/mechanize/robots_disallowed_error.rb
154
+ - lib/mechanize/unsupported_scheme_error.rb
155
+ - lib/mechanize/util.rb
156
+ - test/data/htpasswd
157
+ - test/data/server.crt
158
+ - test/data/server.csr
159
+ - test/data/server.key
160
+ - test/data/server.pem
161
+ - test/helper.rb
162
+ - test/htdocs/alt_text.html
163
+ - test/htdocs/bad_form_test.html
164
+ - test/htdocs/button.jpg
165
+ - test/htdocs/canonical_uri.html
166
+ - test/htdocs/dir with spaces/foo.html
167
+ - test/htdocs/empty_form.html
168
+ - test/htdocs/file_upload.html
169
+ - test/htdocs/find_link.html
170
+ - test/htdocs/form_multi_select.html
171
+ - test/htdocs/form_multival.html
172
+ - test/htdocs/form_no_action.html
173
+ - test/htdocs/form_no_input_name.html
174
+ - test/htdocs/form_select.html
175
+ - test/htdocs/form_select_all.html
176
+ - test/htdocs/form_select_none.html
177
+ - test/htdocs/form_select_noopts.html
178
+ - test/htdocs/form_set_fields.html
179
+ - test/htdocs/form_test.html
180
+ - test/htdocs/frame_referer_test.html
181
+ - test/htdocs/frame_test.html
182
+ - test/htdocs/google.html
183
+ - test/htdocs/iframe_test.html
184
+ - test/htdocs/index.html
185
+ - test/htdocs/link with space.html
186
+ - test/htdocs/meta_cookie.html
187
+ - test/htdocs/no_title_test.html
188
+ - test/htdocs/nofollow.html
189
+ - test/htdocs/noindex.html
190
+ - test/htdocs/norobots.html
191
+ - test/htdocs/rails_3_encoding_hack_form_test.html
192
+ - test/htdocs/rel_nofollow.html
193
+ - test/htdocs/relative/tc_relative_links.html
194
+ - test/htdocs/robots.html
195
+ - test/htdocs/robots.txt
196
+ - test/htdocs/tc_bad_charset.html
197
+ - test/htdocs/tc_bad_links.html
198
+ - test/htdocs/tc_base_images.html
199
+ - test/htdocs/tc_base_link.html
200
+ - test/htdocs/tc_blank_form.html
201
+ - test/htdocs/tc_charset.html
202
+ - test/htdocs/tc_checkboxes.html
203
+ - test/htdocs/tc_encoded_links.html
204
+ - test/htdocs/tc_field_precedence.html
205
+ - test/htdocs/tc_follow_meta.html
206
+ - test/htdocs/tc_form_action.html
207
+ - test/htdocs/tc_images.html
208
+ - test/htdocs/tc_links.html
209
+ - test/htdocs/tc_meta_in_body.html
210
+ - test/htdocs/tc_no_attributes.html
211
+ - test/htdocs/tc_pretty_print.html
212
+ - test/htdocs/tc_radiobuttons.html
213
+ - test/htdocs/tc_referer.html
214
+ - test/htdocs/tc_relative_links.html
215
+ - test/htdocs/tc_textarea.html
216
+ - test/htdocs/test_bad_encoding.html
217
+ - test/htdocs/test_click.html
218
+ - test/htdocs/unusual______.html
219
+ - test/servlets.rb
220
+ - test/ssl_server.rb
221
+ - test/test_cookies.rb
222
+ - test/test_form_action.rb
223
+ - test/test_form_as_hash.rb
224
+ - test/test_form_button.rb
225
+ - test/test_frames.rb
226
+ - test/test_headers.rb
227
+ - test/test_history.rb
228
+ - test/test_history_added.rb
229
+ - test/test_html_unscape_forms.rb
230
+ - test/test_if_modified_since.rb
231
+ - test/test_images.rb
232
+ - test/test_mechanize.rb
233
+ - test/test_mechanize_cookie.rb
234
+ - test/test_mechanize_cookie_jar.rb
235
+ - test/test_mechanize_file.rb
236
+ - test/test_mechanize_file_request.rb
237
+ - test/test_mechanize_file_response.rb
238
+ - test/test_mechanize_form.rb
239
+ - test/test_mechanize_form_check_box.rb
240
+ - test/test_mechanize_form_encoding.rb
241
+ - test/test_mechanize_form_field.rb
242
+ - test/test_mechanize_form_image_button.rb
243
+ - test/test_mechanize_form_textarea.rb
244
+ - test/test_mechanize_http_agent.rb
245
+ - test/test_mechanize_link.rb
246
+ - test/test_mechanize_page_encoding.rb
247
+ - test/test_mechanize_page_link.rb
248
+ - test/test_mechanize_page_meta_refresh.rb
249
+ - test/test_mechanize_redirect_not_get_or_head_error.rb
250
+ - test/test_mechanize_subclass.rb
251
+ - test/test_mechanize_util.rb
252
+ - test/test_multi_select.rb
253
+ - test/test_no_attributes.rb
254
+ - test/test_option.rb
255
+ - test/test_pluggable_parser.rb
256
+ - test/test_post_form.rb
257
+ - test/test_pretty_print.rb
258
+ - test/test_radiobutton.rb
259
+ - test/test_redirect_limit_reached.rb
260
+ - test/test_referer.rb
261
+ - test/test_relative_links.rb
262
+ - test/test_request.rb
263
+ - test/test_response_code.rb
264
+ - test/test_robots.rb
265
+ - test/test_save_file.rb
266
+ - test/test_scheme.rb
267
+ - test/test_select.rb
268
+ - test/test_select_all.rb
269
+ - test/test_select_none.rb
270
+ - test/test_select_noopts.rb
271
+ - test/test_set_fields.rb
272
+ - test/test_ssl_server.rb
273
+ - .gemtest
274
+ homepage: http://mechanize.rubyforge.org
275
+ licenses: []
276
+
277
+ post_install_message:
278
+ rdoc_options:
279
+ - --main
280
+ - README.rdoc
281
+ require_paths:
282
+ - lib
283
+ required_ruby_version: !ruby/object:Gem::Requirement
284
+ none: false
285
+ requirements:
286
+ - - ">="
287
+ - !ruby/object:Gem::Version
288
+ version: 1.8.7
289
+ required_rubygems_version: !ruby/object:Gem::Requirement
290
+ none: false
291
+ requirements:
292
+ - - ">="
293
+ - !ruby/object:Gem::Version
294
+ version: "0"
295
+ requirements: []
296
+
297
+ rubyforge_project: neocoin-mechanize
298
+ rubygems_version: 1.8.5
299
+ signing_key:
300
+ specification_version: 3
301
+ summary: The Mechanize library is used for automating interaction with websites
302
+ test_files:
303
+ - test/test_cookies.rb
304
+ - test/test_form_action.rb
305
+ - test/test_form_as_hash.rb
306
+ - test/test_form_button.rb
307
+ - test/test_frames.rb
308
+ - test/test_headers.rb
309
+ - test/test_history.rb
310
+ - test/test_history_added.rb
311
+ - test/test_html_unscape_forms.rb
312
+ - test/test_if_modified_since.rb
313
+ - test/test_images.rb
314
+ - test/test_mechanize.rb
315
+ - test/test_mechanize_cookie.rb
316
+ - test/test_mechanize_cookie_jar.rb
317
+ - test/test_mechanize_file.rb
318
+ - test/test_mechanize_file_request.rb
319
+ - test/test_mechanize_file_response.rb
320
+ - test/test_mechanize_form.rb
321
+ - test/test_mechanize_form_check_box.rb
322
+ - test/test_mechanize_form_encoding.rb
323
+ - test/test_mechanize_form_field.rb
324
+ - test/test_mechanize_form_image_button.rb
325
+ - test/test_mechanize_form_textarea.rb
326
+ - test/test_mechanize_http_agent.rb
327
+ - test/test_mechanize_link.rb
328
+ - test/test_mechanize_page_encoding.rb
329
+ - test/test_mechanize_page_link.rb
330
+ - test/test_mechanize_page_meta_refresh.rb
331
+ - test/test_mechanize_redirect_not_get_or_head_error.rb
332
+ - test/test_mechanize_subclass.rb
333
+ - test/test_mechanize_util.rb
334
+ - test/test_multi_select.rb
335
+ - test/test_no_attributes.rb
336
+ - test/test_option.rb
337
+ - test/test_pluggable_parser.rb
338
+ - test/test_post_form.rb
339
+ - test/test_pretty_print.rb
340
+ - test/test_radiobutton.rb
341
+ - test/test_redirect_limit_reached.rb
342
+ - test/test_referer.rb
343
+ - test/test_relative_links.rb
344
+ - test/test_request.rb
345
+ - test/test_response_code.rb
346
+ - test/test_robots.rb
347
+ - test/test_save_file.rb
348
+ - test/test_scheme.rb
349
+ - test/test_select.rb
350
+ - test/test_select_all.rb
351
+ - test/test_select_none.rb
352
+ - test/test_select_noopts.rb
353
+ - test/test_set_fields.rb
354
+ - test/test_ssl_server.rb