mechanize 2.0.1 → 2.1.pre.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of mechanize might be problematic. Click here for more details.

Files changed (148) hide show
  1. data.tar.gz.sig +0 -0
  2. data/CHANGELOG.rdoc +82 -0
  3. data/EXAMPLES.rdoc +1 -1
  4. data/FAQ.rdoc +9 -9
  5. data/Manifest.txt +35 -48
  6. data/README.rdoc +2 -1
  7. data/Rakefile +16 -3
  8. data/lib/mechanize.rb +809 -392
  9. data/lib/mechanize/content_type_error.rb +10 -11
  10. data/lib/mechanize/cookie.rb +193 -60
  11. data/lib/mechanize/cookie_jar.rb +39 -86
  12. data/lib/mechanize/download.rb +59 -0
  13. data/lib/mechanize/element_matcher.rb +1 -0
  14. data/lib/mechanize/file.rb +61 -76
  15. data/lib/mechanize/file_saver.rb +37 -35
  16. data/lib/mechanize/form.rb +475 -410
  17. data/lib/mechanize/form/button.rb +4 -7
  18. data/lib/mechanize/form/check_box.rb +10 -9
  19. data/lib/mechanize/form/field.rb +52 -42
  20. data/lib/mechanize/form/file_upload.rb +17 -19
  21. data/lib/mechanize/form/hidden.rb +3 -0
  22. data/lib/mechanize/form/image_button.rb +15 -16
  23. data/lib/mechanize/form/keygen.rb +34 -0
  24. data/lib/mechanize/form/multi_select_list.rb +20 -9
  25. data/lib/mechanize/form/option.rb +48 -47
  26. data/lib/mechanize/form/radio_button.rb +52 -45
  27. data/lib/mechanize/form/reset.rb +3 -0
  28. data/lib/mechanize/form/select_list.rb +10 -6
  29. data/lib/mechanize/form/submit.rb +3 -0
  30. data/lib/mechanize/form/text.rb +3 -0
  31. data/lib/mechanize/form/textarea.rb +3 -0
  32. data/lib/mechanize/headers.rb +17 -19
  33. data/lib/mechanize/history.rb +60 -61
  34. data/lib/mechanize/http.rb +5 -0
  35. data/lib/mechanize/http/agent.rb +485 -218
  36. data/lib/mechanize/http/auth_challenge.rb +59 -0
  37. data/lib/mechanize/http/auth_realm.rb +31 -0
  38. data/lib/mechanize/http/content_disposition_parser.rb +188 -0
  39. data/lib/mechanize/http/www_authenticate_parser.rb +155 -0
  40. data/lib/mechanize/monkey_patch.rb +14 -35
  41. data/lib/mechanize/page.rb +34 -2
  42. data/lib/mechanize/page/base.rb +6 -7
  43. data/lib/mechanize/page/frame.rb +5 -5
  44. data/lib/mechanize/page/image.rb +23 -23
  45. data/lib/mechanize/page/label.rb +16 -16
  46. data/lib/mechanize/page/link.rb +16 -0
  47. data/lib/mechanize/page/meta_refresh.rb +19 -7
  48. data/lib/mechanize/parser.rb +173 -0
  49. data/lib/mechanize/pluggable_parsers.rb +126 -83
  50. data/lib/mechanize/redirect_limit_reached_error.rb +16 -13
  51. data/lib/mechanize/redirect_not_get_or_head_error.rb +18 -16
  52. data/lib/mechanize/response_code_error.rb +16 -17
  53. data/lib/mechanize/robots_disallowed_error.rb +22 -23
  54. data/lib/mechanize/test_case.rb +659 -0
  55. data/lib/mechanize/unauthorized_error.rb +3 -0
  56. data/lib/mechanize/unsupported_scheme_error.rb +4 -6
  57. data/lib/mechanize/util.rb +0 -12
  58. data/test/htdocs/form_order_test.html +11 -0
  59. data/test/htdocs/form_test.html +2 -2
  60. data/test/htdocs/tc_links.html +1 -0
  61. data/test/test_mechanize.rb +367 -59
  62. data/test/test_mechanize_cookie.rb +69 -4
  63. data/test/test_mechanize_cookie_jar.rb +200 -124
  64. data/test/test_mechanize_download.rb +43 -0
  65. data/test/test_mechanize_file.rb +53 -45
  66. data/test/{test_mechanize_file_response.rb → test_mechanize_file_connection.rb} +2 -2
  67. data/test/test_mechanize_file_request.rb +2 -2
  68. data/test/test_mechanize_file_saver.rb +21 -0
  69. data/test/test_mechanize_form.rb +345 -46
  70. data/test/test_mechanize_form_check_box.rb +5 -4
  71. data/test/test_mechanize_form_encoding.rb +10 -16
  72. data/test/test_mechanize_form_field.rb +45 -3
  73. data/test/test_mechanize_form_file_upload.rb +20 -0
  74. data/test/test_mechanize_form_image_button.rb +2 -2
  75. data/test/test_mechanize_form_keygen.rb +32 -0
  76. data/test/test_mechanize_form_multi_select_list.rb +84 -0
  77. data/test/test_mechanize_form_option.rb +55 -0
  78. data/test/test_mechanize_form_radio_button.rb +78 -0
  79. data/test/test_mechanize_form_select_list.rb +76 -0
  80. data/test/test_mechanize_form_textarea.rb +8 -7
  81. data/test/{test_headers.rb → test_mechanize_headers.rb} +4 -2
  82. data/test/test_mechanize_history.rb +103 -0
  83. data/test/test_mechanize_http_agent.rb +525 -17
  84. data/test/test_mechanize_http_auth_challenge.rb +39 -0
  85. data/test/test_mechanize_http_auth_realm.rb +49 -0
  86. data/test/test_mechanize_http_content_disposition_parser.rb +118 -0
  87. data/test/test_mechanize_http_www_authenticate_parser.rb +146 -0
  88. data/test/test_mechanize_link.rb +10 -14
  89. data/test/test_mechanize_page.rb +118 -0
  90. data/test/test_mechanize_page_encoding.rb +48 -13
  91. data/test/test_mechanize_page_frame.rb +16 -0
  92. data/test/test_mechanize_page_link.rb +27 -19
  93. data/test/test_mechanize_page_meta_refresh.rb +26 -14
  94. data/test/test_mechanize_parser.rb +289 -0
  95. data/test/test_mechanize_pluggable_parser.rb +52 -0
  96. data/test/test_mechanize_redirect_limit_reached_error.rb +24 -0
  97. data/test/test_mechanize_redirect_not_get_or_head_error.rb +3 -7
  98. data/test/test_mechanize_subclass.rb +2 -2
  99. data/test/test_mechanize_util.rb +24 -13
  100. data/test/test_multi_select.rb +23 -22
  101. metadata +145 -114
  102. metadata.gz.sig +0 -0
  103. data/lib/mechanize/inspect.rb +0 -88
  104. data/test/helper.rb +0 -175
  105. data/test/htdocs/form_select_all.html +0 -16
  106. data/test/htdocs/form_select_none.html +0 -17
  107. data/test/htdocs/form_select_noopts.html +0 -10
  108. data/test/htdocs/iframe_test.html +0 -16
  109. data/test/htdocs/nofollow.html +0 -9
  110. data/test/htdocs/norobots.html +0 -8
  111. data/test/htdocs/rel_nofollow.html +0 -8
  112. data/test/htdocs/tc_base_images.html +0 -10
  113. data/test/htdocs/tc_images.html +0 -8
  114. data/test/htdocs/tc_no_attributes.html +0 -16
  115. data/test/htdocs/tc_radiobuttons.html +0 -17
  116. data/test/htdocs/test_bad_encoding.html +0 -52
  117. data/test/servlets.rb +0 -402
  118. data/test/ssl_server.rb +0 -48
  119. data/test/test_cookies.rb +0 -129
  120. data/test/test_form_action.rb +0 -52
  121. data/test/test_form_as_hash.rb +0 -59
  122. data/test/test_form_button.rb +0 -46
  123. data/test/test_frames.rb +0 -34
  124. data/test/test_history.rb +0 -118
  125. data/test/test_history_added.rb +0 -16
  126. data/test/test_html_unscape_forms.rb +0 -46
  127. data/test/test_if_modified_since.rb +0 -20
  128. data/test/test_images.rb +0 -19
  129. data/test/test_no_attributes.rb +0 -13
  130. data/test/test_option.rb +0 -18
  131. data/test/test_pluggable_parser.rb +0 -136
  132. data/test/test_post_form.rb +0 -37
  133. data/test/test_pretty_print.rb +0 -22
  134. data/test/test_radiobutton.rb +0 -75
  135. data/test/test_redirect_limit_reached.rb +0 -39
  136. data/test/test_referer.rb +0 -81
  137. data/test/test_relative_links.rb +0 -40
  138. data/test/test_request.rb +0 -13
  139. data/test/test_response_code.rb +0 -53
  140. data/test/test_robots.rb +0 -72
  141. data/test/test_save_file.rb +0 -48
  142. data/test/test_scheme.rb +0 -48
  143. data/test/test_select.rb +0 -119
  144. data/test/test_select_all.rb +0 -15
  145. data/test/test_select_none.rb +0 -15
  146. data/test/test_select_noopts.rb +0 -18
  147. data/test/test_set_fields.rb +0 -44
  148. data/test/test_ssl_server.rb +0 -20
data/test/test_cookies.rb DELETED
@@ -1,129 +0,0 @@
1
- require "helper"
2
-
3
- class CookiesMechTest < MiniTest::Unit::TestCase
4
- def setup
5
- @agent = Mechanize.new
6
- end
7
-
8
- def test_quoted_value_cookie
9
- @agent.get("http://localhost/quoted_value_cookie")
10
- quoted_cookie = @agent.cookies.find { |k| k.name == 'quoted' }
11
- assert_equal("\"value\"", quoted_cookie.value)
12
- end
13
-
14
- def test_meta_tag_cookies
15
- cookies = @agent.cookies.length
16
- @agent.get("http://localhost/meta_cookie.html")
17
- assert_equal(cookies + 1, @agent.cookies.length)
18
- end
19
-
20
- def test_send_cookies
21
- page = @agent.get("http://localhost/many_cookies")
22
- page = @agent.get("http://localhost/send_cookies")
23
- assert_equal(3, page.links.length)
24
- assert(page.links.find { |l| l.text == "name:Aaron" })
25
- assert(page.links.find { |l| l.text == "no_expires:nope" })
26
- end
27
-
28
- def test_no_space_cookies
29
- @agent.get("http://localhost/one_cookie_no_space")
30
- assert_equal(1, @agent.cookies.length)
31
- foo_cookie = @agent.cookies.find { |k| k.name == 'foo' }
32
- assert(foo_cookie, 'Foo cookie was nil')
33
- assert_equal('bar', foo_cookie.value)
34
- assert_equal('/', foo_cookie.path)
35
- assert_equal(true, Time.now < foo_cookie.expires)
36
- end
37
-
38
- def test_many_cookies_as_string
39
- @agent.get("http://localhost/many_cookies_as_string")
40
- assert_equal(4, @agent.cookies.length)
41
-
42
- name_cookie = @agent.cookies.find { |k| k.name == "name" }
43
-
44
- assert_equal("Aaron", name_cookie.value)
45
- assert_equal("/", name_cookie.path)
46
- assert_equal(true, Time.now < name_cookie.expires)
47
-
48
- expired_cookie = @agent.cookies.find { |k| k.name == "expired" }
49
- assert_nil(expired_cookie, "Expired cookie was not nil")
50
-
51
- no_exp_cookie = @agent.cookies.find { |k| k.name == "no_expires" }
52
-
53
- assert_equal("nope", no_exp_cookie.value)
54
- assert_equal("/", no_exp_cookie.path)
55
- assert_nil(no_exp_cookie.expires)
56
-
57
- path_cookie = @agent.cookies.find { |k| k.name == "a_path" }
58
-
59
- assert_equal("some_path", path_cookie.value)
60
- assert_equal(true, Time.now < path_cookie.expires)
61
-
62
- no_path_cookie = @agent.cookies.find { |k| k.name == "no_path" }
63
-
64
- assert_equal("no_path", no_path_cookie.value)
65
- assert_equal("/", no_path_cookie.path)
66
- assert_equal(true, Time.now < no_path_cookie.expires)
67
- end
68
-
69
- def test_many_cookies
70
- @agent.get("http://localhost/many_cookies")
71
- assert_equal(4, @agent.cookies.length)
72
-
73
- name_cookie = @agent.cookies.find { |k| k.name == "name" }
74
- assert(name_cookie, "Name cookie was nil")
75
- assert_equal("Aaron", name_cookie.value)
76
- assert_equal("/", name_cookie.path)
77
- assert_equal(true, Time.now < name_cookie.expires)
78
-
79
- expired_cookie = @agent.cookies.find { |k| k.name == "expired" }
80
- assert_nil(expired_cookie, "Expired cookie was not nil")
81
-
82
- no_exp_cookie = @agent.cookies.find { |k| k.name == "no_expires" }
83
- assert(no_exp_cookie, "No expires cookie is nil")
84
- assert_equal("nope", no_exp_cookie.value)
85
- assert_equal("/", no_exp_cookie.path)
86
- assert_nil(no_exp_cookie.expires)
87
-
88
- path_cookie = @agent.cookies.find { |k| k.name == "a_path" }
89
- assert(path_cookie, "Path cookie is nil")
90
- assert_equal("some_path", path_cookie.value)
91
- assert_equal(true, Time.now < path_cookie.expires)
92
-
93
- no_path_cookie = @agent.cookies.find { |k| k.name == "no_path" }
94
- assert(no_path_cookie, "No path cookie is nil")
95
- assert_equal("no_path", no_path_cookie.value)
96
- assert_equal("/", no_path_cookie.path)
97
- assert_equal(true, Time.now < no_path_cookie.expires)
98
- end
99
-
100
- def test_get_cookie
101
- assert_equal(true,
102
- @agent.cookie_jar.empty?(
103
- URI::parse("http://localhost/one_cookie")))
104
-
105
- assert_equal(0, @agent.cookies.length)
106
-
107
- page = @agent.get("http://localhost/one_cookie")
108
- assert_equal(1, @agent.cookies.length)
109
-
110
- cookie = @agent.cookies.first
111
- assert_equal("foo", cookie.name)
112
- assert_equal("bar", cookie.value)
113
- assert_equal("/", cookie.path)
114
- assert_equal("localhost", cookie.domain)
115
-
116
- assert_equal(false,
117
- @agent.cookie_jar.empty?(
118
- URI::parse("http://localhost/one_cookie")))
119
- page = @agent.get("http://localhost/one_cookie")
120
-
121
- assert_equal(1, @agent.cookies.length)
122
-
123
- cookie = @agent.cookies.first
124
- assert_equal("foo", cookie.name)
125
- assert_equal("bar", cookie.value)
126
- assert_equal("/", cookie.path)
127
- assert_equal("localhost", cookie.domain)
128
- end
129
- end
@@ -1,52 +0,0 @@
1
- require "helper"
2
-
3
- class TestFormAction < MiniTest::Unit::TestCase
4
- def setup
5
- @agent = Mechanize.new
6
- @page = @agent.get("http://localhost/tc_form_action.html")
7
- end
8
-
9
- def test_post_with_bad_encoding_does_not_raise_exception
10
- @page = @agent.get("http://localhost/test_bad_encoding.html")
11
- form = @page.form(:name => 'post_form1') { |f|
12
- f.first_name = "Aaron"
13
- }
14
- form.submit
15
- end
16
-
17
- def test_post_encoded_action
18
- form = @page.form(:name => 'post_form1') { |f|
19
- f.first_name = "Aaron"
20
- }
21
- assert_equal('/form_post?a=b&b=c', form.action)
22
- page = form.submit
23
- assert_equal("http://localhost/form_post?a=b&b=c", page.uri.to_s)
24
- end
25
-
26
- def test_get_encoded_action
27
- form = @page.form('post_form2') { |f|
28
- f.first_name = "Aaron"
29
- }
30
- assert_equal('/form_post?a=b&b=c', form.action)
31
- page = form.submit
32
- assert_equal("http://localhost/form_post?first_name=Aaron", page.uri.to_s)
33
- end
34
-
35
- def test_post_nonencoded_action
36
- form = @page.form('post_form3') { |f|
37
- f.first_name = "Aaron"
38
- }
39
- assert_equal('/form_post?a=b&b=c', form.action)
40
- page = form.submit
41
- assert_equal("http://localhost/form_post?a=b&b=c", page.uri.to_s)
42
- end
43
-
44
- def test_post_pound_sign
45
- form = @page.form('post_form4') { |f|
46
- f.first_name = "Aaron"
47
- }
48
- assert_equal('/form_post#1', form.action)
49
- page = form.submit
50
- assert_equal("http://localhost/form_post#1", page.uri.to_s)
51
- end
52
- end
@@ -1,59 +0,0 @@
1
- require "helper"
2
-
3
- class TestFormHash < MiniTest::Unit::TestCase
4
- def setup
5
- @agent = Mechanize.new
6
- @page = @agent.get('http://localhost/form_multival.html')
7
- end
8
-
9
- def test_form_hash
10
- form = @page.form_with(:name => 'post_form')
11
-
12
- field_length = form.fields.length
13
- assert_nil(form['intarweb'])
14
- form['intarweb'] = 'Aaron'
15
-
16
- assert form['intarweb']
17
- assert_equal(field_length + 1, form.fields.length)
18
- end
19
-
20
- def test_add_field_via_hash
21
- form = @page.form_with(:name => 'post_form')
22
-
23
- field_length = form.fields.length
24
- assert_nil(form['intarweb'])
25
- form['intarweb'] = 'Aaron'
26
-
27
- assert form['intarweb']
28
- assert_equal(field_length + 1, form.fields.length)
29
- end
30
-
31
- def test_fields_as_hash
32
- form = @page.form_with(:name => 'post_form')
33
-
34
- assert_equal(2, form.fields_with(:name => 'first').length)
35
-
36
- form['first'] = 'Aaron'
37
- assert_equal('Aaron', form['first'])
38
- assert_equal('Aaron', form.field_with(:name => 'first').value)
39
- end
40
-
41
- def test_keys
42
- @page = @agent.get('http://localhost/empty_form.html')
43
- form = @page.forms.first
44
-
45
- assert(!form.has_field?('name'))
46
- assert(!form.has_value?('Aaron'))
47
- assert_equal(0, form.keys.length)
48
- assert_equal(0, form.values.length)
49
-
50
- form['name'] = 'Aaron'
51
-
52
- assert(form.has_field?('name'))
53
- assert(form.has_value?('Aaron'))
54
- assert_equal(1, form.keys.length)
55
- assert_equal(['name'], form.keys)
56
- assert_equal(1, form.values.length)
57
- assert_equal(['Aaron'], form.values)
58
- end
59
- end
@@ -1,46 +0,0 @@
1
- require "helper"
2
-
3
- class TestFormButtons < MiniTest::Unit::TestCase
4
- def setup
5
- @agent = Mechanize.new
6
- end
7
-
8
- def test_submit_input_tag
9
- assert_form_contains_button('<input type="submit" value="submit" />')
10
- end
11
-
12
- def test_button_input_tag
13
- assert_form_contains_button('<input type="button" value="submit" />')
14
- end
15
-
16
- def test_submit_button_tag
17
- assert_form_contains_button('<button type="submit" value="submit"/>')
18
- end
19
-
20
- def test_button_button_tag
21
- assert_form_contains_button('<button type="button" value="submit"/>')
22
- end
23
-
24
- def test_image_button_tag
25
- assert_form_contains_button('<input type="image" name="submit" src="http://foo.com/image.jpg"/>')
26
- end
27
-
28
- def test_no_name_image_button_tag
29
- assert_form_contains_button('<input type="image" src="http://foo.com/image.jpg"/>')
30
- end
31
-
32
- def assert_form_contains_button(button)
33
- page = Mechanize::Page.new(nil, html_response, html(button), 200, @agent)
34
- assert_equal(1, page.forms.length)
35
- assert_equal(1, page.forms.first.buttons.length)
36
- end
37
-
38
- def html(input)
39
- "<html><body><form>#{input}</form></body></html>"
40
- end
41
-
42
- def html_response
43
- { 'content-type' => 'text/html' }
44
- end
45
- end
46
-
data/test/test_frames.rb DELETED
@@ -1,34 +0,0 @@
1
- require "helper"
2
-
3
- class FramesMechTest < MiniTest::Unit::TestCase
4
- def setup
5
- @agent = Mechanize.new
6
- end
7
-
8
- def test_frames
9
- page = @agent.get("http://localhost/frame_test.html")
10
- assert_equal(3, page.frames.size)
11
- assert_equal("frame1", page.frames[0].name)
12
- assert_equal("frame2", page.frames[1].name)
13
- assert_equal("frame3", page.frames[2].name)
14
- assert_equal("/google.html", page.frames[0].src)
15
- assert_equal("/form_test.html", page.frames[1].src)
16
- assert_equal("/file_upload.html", page.frames[2].src)
17
- assert_equal("Google", page.frames[0].content.title)
18
- assert_equal("Page Title", page.frames[1].content.title)
19
- assert_equal("File Upload Form", page.frames[2].content.title)
20
- end
21
-
22
- def test_iframes
23
- page = @agent.get("http://localhost/iframe_test.html")
24
- assert_equal(1, page.iframes.size)
25
- assert_equal("frame4", page.iframes.first.name)
26
- assert_equal("/file_upload.html", page.iframes.first.src)
27
- assert_equal("File Upload Form", page.iframes.first.content.title)
28
- end
29
-
30
- def test_frame_referer
31
- page = @agent.get("http://localhost/frame_referer_test.html")
32
- assert_equal("http://localhost/frame_referer_test.html", page.frames.first.content.body)
33
- end
34
- end
data/test/test_history.rb DELETED
@@ -1,118 +0,0 @@
1
- require "helper"
2
-
3
- class TestHistory < MiniTest::Unit::TestCase
4
-
5
- Node = Struct.new :href, :inner_text
6
-
7
- def setup
8
- @mech = Mechanize.new
9
- @history = Mechanize::History.new
10
- @uri = URI 'http://example'
11
- end
12
-
13
- def test_initialize
14
- assert_equal 0, @history.length
15
- end
16
-
17
- def test_push
18
- response = { 'content-type' => 'text/html' }
19
- page = Mechanize::Page.new @uri, response, '', 200, @mech
20
-
21
- obj = @history.push page
22
-
23
- assert_same @history, obj
24
- assert_equal 1, @history.length
25
- assert @history.visited? @uri
26
-
27
- page = Mechanize::Page.new @uri + '/a', response, '', 200, @mech
28
-
29
- @history.push page
30
-
31
- assert_equal 2, @history.length
32
- end
33
-
34
- def test_push_uri
35
- obj = @history.push :page, @uri
36
-
37
- assert_same @history, obj
38
- assert_equal 1, @history.length
39
-
40
- assert @history.visited? @uri
41
-
42
- @history.push :page2, @uri
43
-
44
- assert_equal 2, @history.length
45
- end
46
-
47
- def test_shift
48
- assert_nil @history.shift
49
-
50
- @history.push(:page1, @uri)
51
- @history.push(:page2, @uri + '/a')
52
-
53
- page = @history.shift
54
-
55
- assert_equal :page1, page
56
- assert_equal 1, @history.length
57
- assert !@history.visited?(@uri)
58
-
59
- @history.shift
60
-
61
- assert_equal 0, @history.length
62
- end
63
-
64
- def test_pop
65
- @history.push(:page, @uri)
66
-
67
- assert_equal(:page, @history.pop)
68
- assert_equal 0, @history.length
69
- assert !@history.visited?(@uri)
70
-
71
- assert_nil @history.pop
72
- end
73
-
74
- def test_max_size
75
- @history = Mechanize::History.new 2
76
-
77
- 1.upto(3) do |i|
78
- @history.push :page, @uri
79
-
80
- if i >= 2
81
- assert_equal 2, @history.length
82
- else
83
- assert_equal i, @history.length
84
- end
85
- end
86
- end
87
-
88
- def test_visited_eh
89
- @mech.get('http://localhost/')
90
-
91
- node = Struct.new(:href, :inner_text).new('http://localhost/', 'blah')
92
- link = Mechanize::Page::Link.new(node, nil, nil)
93
- assert(@mech.visited?(link))
94
-
95
- node = Struct.new(:href, :inner_text).new('http://localhost', 'blah')
96
- link = Mechanize::Page::Link.new(node, nil, nil)
97
- assert(@mech.visited?(link))
98
- end
99
-
100
- def test_visited_eh_no_slash
101
- slash = URI 'http://example/'
102
- no_slash = URI 'http://example'
103
-
104
- @history.push :page, slash
105
-
106
- assert @history.visited?(slash), 'slash'
107
- assert @history.visited?(no_slash), 'no slash'
108
- end
109
-
110
- def test_clear
111
- @history.push :page, @uri
112
-
113
- @history.clear
114
-
115
- assert_equal 0, @history.length
116
- assert !@history.visited?(@uri)
117
- end
118
- end
@@ -1,16 +0,0 @@
1
- require "helper"
2
-
3
- class HistoryAddedTest < MiniTest::Unit::TestCase
4
- def setup
5
- @agent = Mechanize.new
6
- end
7
-
8
- def test_history_added_gets_called
9
- onload = 0
10
- @agent.history_added = lambda { |page|
11
- onload += 1
12
- }
13
- @agent.get('http://localhost/tc_blank_form.html')
14
- assert_equal(1, onload)
15
- end
16
- end