diamond-mechanize 2.1

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 (154) hide show
  1. data/CHANGELOG.rdoc +718 -0
  2. data/EXAMPLES.rdoc +187 -0
  3. data/FAQ.rdoc +11 -0
  4. data/GUIDE.rdoc +163 -0
  5. data/LICENSE.rdoc +20 -0
  6. data/Manifest.txt +159 -0
  7. data/README.rdoc +64 -0
  8. data/Rakefile +49 -0
  9. data/lib/mechanize.rb +1079 -0
  10. data/lib/mechanize/content_type_error.rb +13 -0
  11. data/lib/mechanize/cookie.rb +232 -0
  12. data/lib/mechanize/cookie_jar.rb +194 -0
  13. data/lib/mechanize/download.rb +59 -0
  14. data/lib/mechanize/element_matcher.rb +36 -0
  15. data/lib/mechanize/file.rb +65 -0
  16. data/lib/mechanize/file_connection.rb +17 -0
  17. data/lib/mechanize/file_request.rb +26 -0
  18. data/lib/mechanize/file_response.rb +74 -0
  19. data/lib/mechanize/file_saver.rb +39 -0
  20. data/lib/mechanize/form.rb +543 -0
  21. data/lib/mechanize/form/button.rb +6 -0
  22. data/lib/mechanize/form/check_box.rb +12 -0
  23. data/lib/mechanize/form/field.rb +54 -0
  24. data/lib/mechanize/form/file_upload.rb +21 -0
  25. data/lib/mechanize/form/hidden.rb +3 -0
  26. data/lib/mechanize/form/image_button.rb +19 -0
  27. data/lib/mechanize/form/keygen.rb +34 -0
  28. data/lib/mechanize/form/multi_select_list.rb +94 -0
  29. data/lib/mechanize/form/option.rb +50 -0
  30. data/lib/mechanize/form/radio_button.rb +55 -0
  31. data/lib/mechanize/form/reset.rb +3 -0
  32. data/lib/mechanize/form/select_list.rb +44 -0
  33. data/lib/mechanize/form/submit.rb +3 -0
  34. data/lib/mechanize/form/text.rb +3 -0
  35. data/lib/mechanize/form/textarea.rb +3 -0
  36. data/lib/mechanize/headers.rb +23 -0
  37. data/lib/mechanize/history.rb +82 -0
  38. data/lib/mechanize/http.rb +8 -0
  39. data/lib/mechanize/http/agent.rb +1004 -0
  40. data/lib/mechanize/http/auth_challenge.rb +59 -0
  41. data/lib/mechanize/http/auth_realm.rb +31 -0
  42. data/lib/mechanize/http/content_disposition_parser.rb +188 -0
  43. data/lib/mechanize/http/www_authenticate_parser.rb +155 -0
  44. data/lib/mechanize/monkey_patch.rb +16 -0
  45. data/lib/mechanize/page.rb +440 -0
  46. data/lib/mechanize/page/base.rb +7 -0
  47. data/lib/mechanize/page/frame.rb +27 -0
  48. data/lib/mechanize/page/image.rb +30 -0
  49. data/lib/mechanize/page/label.rb +20 -0
  50. data/lib/mechanize/page/link.rb +98 -0
  51. data/lib/mechanize/page/meta_refresh.rb +68 -0
  52. data/lib/mechanize/parser.rb +173 -0
  53. data/lib/mechanize/pluggable_parsers.rb +144 -0
  54. data/lib/mechanize/redirect_limit_reached_error.rb +19 -0
  55. data/lib/mechanize/redirect_not_get_or_head_error.rb +21 -0
  56. data/lib/mechanize/response_code_error.rb +21 -0
  57. data/lib/mechanize/response_read_error.rb +27 -0
  58. data/lib/mechanize/robots_disallowed_error.rb +28 -0
  59. data/lib/mechanize/test_case.rb +663 -0
  60. data/lib/mechanize/unauthorized_error.rb +3 -0
  61. data/lib/mechanize/unsupported_scheme_error.rb +6 -0
  62. data/lib/mechanize/util.rb +101 -0
  63. data/test/data/htpasswd +1 -0
  64. data/test/data/server.crt +16 -0
  65. data/test/data/server.csr +12 -0
  66. data/test/data/server.key +15 -0
  67. data/test/data/server.pem +15 -0
  68. data/test/htdocs/alt_text.html +10 -0
  69. data/test/htdocs/bad_form_test.html +9 -0
  70. data/test/htdocs/button.jpg +0 -0
  71. data/test/htdocs/canonical_uri.html +9 -0
  72. data/test/htdocs/dir with spaces/foo.html +1 -0
  73. data/test/htdocs/empty_form.html +6 -0
  74. data/test/htdocs/file_upload.html +26 -0
  75. data/test/htdocs/find_link.html +41 -0
  76. data/test/htdocs/form_multi_select.html +16 -0
  77. data/test/htdocs/form_multival.html +37 -0
  78. data/test/htdocs/form_no_action.html +18 -0
  79. data/test/htdocs/form_no_input_name.html +16 -0
  80. data/test/htdocs/form_order_test.html +11 -0
  81. data/test/htdocs/form_select.html +16 -0
  82. data/test/htdocs/form_set_fields.html +14 -0
  83. data/test/htdocs/form_test.html +188 -0
  84. data/test/htdocs/frame_referer_test.html +10 -0
  85. data/test/htdocs/frame_test.html +30 -0
  86. data/test/htdocs/google.html +13 -0
  87. data/test/htdocs/index.html +6 -0
  88. data/test/htdocs/link with space.html +5 -0
  89. data/test/htdocs/meta_cookie.html +11 -0
  90. data/test/htdocs/no_title_test.html +6 -0
  91. data/test/htdocs/noindex.html +9 -0
  92. data/test/htdocs/rails_3_encoding_hack_form_test.html +27 -0
  93. data/test/htdocs/relative/tc_relative_links.html +21 -0
  94. data/test/htdocs/robots.html +8 -0
  95. data/test/htdocs/robots.txt +2 -0
  96. data/test/htdocs/tc_bad_charset.html +9 -0
  97. data/test/htdocs/tc_bad_links.html +5 -0
  98. data/test/htdocs/tc_base_link.html +8 -0
  99. data/test/htdocs/tc_blank_form.html +11 -0
  100. data/test/htdocs/tc_charset.html +6 -0
  101. data/test/htdocs/tc_checkboxes.html +19 -0
  102. data/test/htdocs/tc_encoded_links.html +5 -0
  103. data/test/htdocs/tc_field_precedence.html +11 -0
  104. data/test/htdocs/tc_follow_meta.html +8 -0
  105. data/test/htdocs/tc_form_action.html +48 -0
  106. data/test/htdocs/tc_links.html +19 -0
  107. data/test/htdocs/tc_meta_in_body.html +9 -0
  108. data/test/htdocs/tc_pretty_print.html +17 -0
  109. data/test/htdocs/tc_referer.html +16 -0
  110. data/test/htdocs/tc_relative_links.html +19 -0
  111. data/test/htdocs/tc_textarea.html +23 -0
  112. data/test/htdocs/test_click.html +11 -0
  113. data/test/htdocs/unusual______.html +5 -0
  114. data/test/test_mechanize.rb +1164 -0
  115. data/test/test_mechanize_cookie.rb +451 -0
  116. data/test/test_mechanize_cookie_jar.rb +483 -0
  117. data/test/test_mechanize_download.rb +43 -0
  118. data/test/test_mechanize_file.rb +61 -0
  119. data/test/test_mechanize_file_connection.rb +21 -0
  120. data/test/test_mechanize_file_request.rb +19 -0
  121. data/test/test_mechanize_file_saver.rb +21 -0
  122. data/test/test_mechanize_form.rb +875 -0
  123. data/test/test_mechanize_form_check_box.rb +38 -0
  124. data/test/test_mechanize_form_encoding.rb +114 -0
  125. data/test/test_mechanize_form_field.rb +63 -0
  126. data/test/test_mechanize_form_file_upload.rb +20 -0
  127. data/test/test_mechanize_form_image_button.rb +12 -0
  128. data/test/test_mechanize_form_keygen.rb +32 -0
  129. data/test/test_mechanize_form_multi_select_list.rb +84 -0
  130. data/test/test_mechanize_form_option.rb +55 -0
  131. data/test/test_mechanize_form_radio_button.rb +78 -0
  132. data/test/test_mechanize_form_select_list.rb +76 -0
  133. data/test/test_mechanize_form_textarea.rb +52 -0
  134. data/test/test_mechanize_headers.rb +35 -0
  135. data/test/test_mechanize_history.rb +103 -0
  136. data/test/test_mechanize_http_agent.rb +1225 -0
  137. data/test/test_mechanize_http_auth_challenge.rb +39 -0
  138. data/test/test_mechanize_http_auth_realm.rb +49 -0
  139. data/test/test_mechanize_http_content_disposition_parser.rb +118 -0
  140. data/test/test_mechanize_http_www_authenticate_parser.rb +146 -0
  141. data/test/test_mechanize_link.rb +80 -0
  142. data/test/test_mechanize_page.rb +118 -0
  143. data/test/test_mechanize_page_encoding.rb +182 -0
  144. data/test/test_mechanize_page_frame.rb +16 -0
  145. data/test/test_mechanize_page_link.rb +390 -0
  146. data/test/test_mechanize_page_meta_refresh.rb +127 -0
  147. data/test/test_mechanize_parser.rb +289 -0
  148. data/test/test_mechanize_pluggable_parser.rb +52 -0
  149. data/test/test_mechanize_redirect_limit_reached_error.rb +24 -0
  150. data/test/test_mechanize_redirect_not_get_or_head_error.rb +14 -0
  151. data/test/test_mechanize_subclass.rb +22 -0
  152. data/test/test_mechanize_util.rb +103 -0
  153. data/test/test_multi_select.rb +119 -0
  154. metadata +216 -0
@@ -0,0 +1,10 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
2
+ "http://www.w3.org/TR/html4/frameset.dtd">
3
+ <HTML>
4
+ <HEAD>
5
+ <TITLE>A simple frameset document</TITLE>
6
+ </HEAD>
7
+ <FRAMESET>
8
+ <FRAME name="frame1" src="http://localhost/referer">
9
+ </FRAMESET>
10
+ </HTML>
@@ -0,0 +1,30 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
2
+ "http://www.w3.org/TR/html4/frameset.dtd">
3
+ <HTML>
4
+ <HEAD>
5
+ <TITLE>A simple frameset document</TITLE>
6
+ </HEAD>
7
+ <FRAMESET cols="20%, 80%">
8
+ <FRAMESET rows="100, 200">
9
+ <FRAME name="frame1" src="/google.html">
10
+ <FRAME name="frame2" src="/form_test.html">
11
+ </FRAMESET>
12
+ <FRAMESET rows="100, 200">
13
+ <FRAME name="frame3" src="/file_upload.html">
14
+ <IFRAME src="http://google.com/" name="frame4">
15
+ [Your user agent does not support frames or is currently configured
16
+ not to display frames. However, you may visit
17
+ <A href="foo.html">the related document.</A>]
18
+ </IFRAME>
19
+ </FRAMESET>
20
+ <NOFRAMES>
21
+ <P>This frameset document contains:
22
+ <UL>
23
+ <LI><A href="/google.html">Some neat contents</A>
24
+ <LI><A href="/form_test.html" class="bar">Form Test</A>
25
+ <LI><A href="/file_upload.html">Some other neat contents</A>
26
+ </UL>
27
+ </NOFRAMES>
28
+ </FRAMESET>
29
+ </HTML>
30
+
@@ -0,0 +1,13 @@
1
+ <html><head><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><title>Google</title><style><!--
2
+ body,td,a,p,.h{font-family:arial,sans-serif;}
3
+ .h{font-size: 20px;}
4
+ .q{color:#0000cc;}
5
+ //-->
6
+ </style>
7
+ <script>
8
+ <!--
9
+ function sf(){document.f.q.focus();}
10
+ // -->
11
+ </script>
12
+ </head><body bgcolor=#ffffff text=#000000 link=#0000cc vlink=#551a8b alink=#ff0000 onLoad=sf() topmargin=3 marginheight=3><center><table border=0 cellspacing=0 cellpadding=0 width=100%><tr><td align=right nowrap><font size=-1><a href="/url?sa=p&pref=ig&pval=2&q=http://www.google.com/ig%3Fhl%3Den">Personalized Home</a>&nbsp;|&nbsp;<a href="https://www.google.com/accounts/Login?continue=http://www.google.com/&hl=en">Sign in</a></font></td></tr><tr height=4><td><img alt="" width=1 height=1></td></tr></table><img src="/intl/en/images/logo.gif" width=276 height=110 alt="Google"><br><br>
13
+ <form action=/search name=f><table border=0 cellspacing=0 cellpadding=4><tr><td nowrap><font size=-1><b>Web</b>&nbsp;&nbsp;&nbsp;&nbsp;<a id=1a class=q href="/imghp?hl=en&tab=wi&ie=UTF-8">Images</a>&nbsp;&nbsp;&nbsp;&nbsp;<a id=2a class=q href="http://groups.google.com/grphp?hl=en&tab=wg&ie=UTF-8">Groups</a>&nbsp;&nbsp;&nbsp;&nbsp;<a id=4a class=q href="http://news.google.com/nwshp?hl=en&tab=wn&ie=UTF-8">News</a>&nbsp;&nbsp;&nbsp;&nbsp;<a id=5a class=q href="http://froogle.google.com/frghp?hl=en&tab=wf&ie=UTF-8">Froogle</a>&nbsp;&nbsp;&nbsp;&nbsp;<a id=7a class=q href="/lochp?hl=en&tab=wl&ie=UTF-8">Local</a>&nbsp;&nbsp;&nbsp;&nbsp;<b><a href="/intl/en/options/" class=q>more&nbsp;&raquo;</a></b></font></td></tr></table><table cellspacing=0 cellpadding=0><tr><td width=25%>&nbsp;</td><td align=center><input type=hidden name=hl value=en><input type=hidden name=ie value="ISO-8859-1"><input maxlength=2048 size=55 name=q value="" title="Google Search"><br><input type=submit value="Google Search" name=btnG><input type=submit value="I'm Feeling Lucky" name=btnI></td><td valign=top nowrap width=25%><font size=-2>&nbsp;&nbsp;<a href=/advanced_search?hl=en>Advanced Search</a><br>&nbsp;&nbsp;<a href=/preferences?hl=en>Preferences</a><br>&nbsp;&nbsp;<a href=/language_tools?hl=en>Language Tools</a></font></td></tr></table></form><br><br><font size=-1><a href="/ads/">Advertising&nbsp;Programs</a> - <a href=/services/>Business Solutions</a> - <a href=/intl/en/about.html>About Google</a></font><p><font size=-2>&copy;2006 Google</font></p></center></body></html>
@@ -0,0 +1,6 @@
1
+ <html>
2
+ <head><title>Page Title</title></head>
3
+ <body>
4
+ <h1>Hello World!</h1>
5
+ </body>
6
+ </html>
@@ -0,0 +1,5 @@
1
+ <html>
2
+ <body>
3
+ This is a webpage that has a space in the filename.
4
+ </body>
5
+ </html>
@@ -0,0 +1,11 @@
1
+ <html>
2
+ <meta http-equiv="Set-Cookie" content="tender=live;expires=Sun, 27-Sep-2037 00:00:00 GMT; path=/">
3
+ <body>
4
+ <a href="alt_text.html"><img alt="alt text" src="hello"></a>
5
+ <a href="no_alt_text.html"><img src="hello"></a>
6
+ <a href="nil_alt_text.html"><img alt src="hello"></a>
7
+ <a href="no_image.html">no image</a>
8
+ <a href="no_text.html"></a>
9
+ </body>
10
+ </html>
11
+
@@ -0,0 +1,6 @@
1
+ <html>
2
+ <title></title>
3
+ <body>
4
+ No title in the title tag
5
+ </body>
6
+ </html>
@@ -0,0 +1,9 @@
1
+ <html>
2
+ <head>
3
+ <title>noindex test</title>
4
+ <meta name="ROBOTS" content="noarchive,noindex">
5
+ </head>
6
+ <body>
7
+ <p>Do not index nor archive this page!</p>
8
+ </body>
9
+ </html>
@@ -0,0 +1,27 @@
1
+ <html>
2
+ <head>
3
+ <meta name="csrf-param" content="authenticity_token"/>
4
+ <meta name="csrf-token" content="+6MKmkYpUcOC7ClPngk3FMTDL1Yc0cU1sS9800eeAPA="/>
5
+ </head>
6
+ <body>
7
+
8
+ <form accept-charset="UTF-8" action="/form_post" class="new_user_session" id="new_user_session" method="post">
9
+ <div style="margin:0;padding:0;display:inline">
10
+ <input name="utf8" type="hidden" value="&#x2713;" />
11
+ <input name="authenticity_token" type="hidden" value="+6MKmkYpUcOC7ClPngk3FMTDL1Yc0cU1sS9800eeAPA=" />
12
+ </div>
13
+ <div class='field'>
14
+ <label for="user_session_email">Email</label>
15
+ <input id="user_session_email" name="user_session[email]" size="30" type="text" />
16
+ </div>
17
+ <div class='field'>
18
+ <label for="user_session_password">Password</label>
19
+ <input id="user_session_password" name="user_session[password]" size="30" type="password" />
20
+ </div>
21
+ <div class='buttons'>
22
+ <input id="user_session_submit" name="commit" type="submit" value="Login" />
23
+ </div>
24
+ </form>
25
+
26
+ </body>
27
+ </html>
@@ -0,0 +1,21 @@
1
+ <html>
2
+ <body>
3
+ <a href="../tc_relative_links.html">dot dot slash</a>
4
+ <a href="../../../../../tc_relative_links.html">too many dots</a>
5
+ <FRAMESET cols="20%, 80%">
6
+ <FRAMESET rows="100, 200, 200">
7
+ <FRAME name="frame1" src="../tc_relative_links.html">
8
+ <FRAME name="frame2" src="../tc_relative_links.html">
9
+ </FRAMESET>
10
+ <FRAMESET rows="100, 200">
11
+ <FRAME name="frame3" src="/file_upload.html">
12
+ <IFRAME src="http://google.com/" name="frame4">
13
+ [Your user agent does not support frames or is currently configured
14
+ not to display frames. However, you may visit
15
+ <A href="foo.html">the related document.</A>]
16
+ <a href="?a=b">just the query string</A>
17
+ </IFRAME>
18
+ </FRAMESET>
19
+ </FRAMESET>
20
+ </body>
21
+ </html>
@@ -0,0 +1,8 @@
1
+ <html>
2
+ <head>
3
+ <title>Welcome!</title>
4
+ </head>
5
+ <body>
6
+ <p>Welcome, robot!</p>
7
+ </body>
8
+ </html>
@@ -0,0 +1,2 @@
1
+ User-Agent: *
2
+ Disallow: /norobots
@@ -0,0 +1,9 @@
1
+ <!-- correct encoding: ISO-8859-2 -->
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=windows-1255"/>
5
+ </head>
6
+ <body>
7
+ <p>Bia�ystok</p>
8
+ </body>
9
+ </html>
@@ -0,0 +1,5 @@
1
+ <html>
2
+ <body>
3
+ <a href="/alt_text.html ">Alt Text</a>
4
+ </body>
5
+ </html>
@@ -0,0 +1,8 @@
1
+ <html>
2
+ <head>
3
+ <base href="http://localhost/">
4
+ </head>
5
+ <body>
6
+ <a href="index.html">test</a>
7
+ </body>
8
+ </html>
@@ -0,0 +1,11 @@
1
+ <html>
2
+ <body>
3
+ <form name="test" method="post">
4
+ <input type="hidden" name="hidden_blank" value=''/>
5
+ <input type="hidden" name="hidden_noval"/>
6
+ <input type="text" name="visible_blank" value=''/>
7
+ <input type="text" name="visible_noval"/>
8
+ <input type="submit"/>
9
+ </form>
10
+ </body>
11
+ </html>
@@ -0,0 +1,6 @@
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="Content-Type" content="text/html; charset=windows-1255"/>
4
+ </head>
5
+ <body></body>
6
+ </html>
@@ -0,0 +1,19 @@
1
+ <html>
2
+ <head><title>tc_checkboxbuttons.html</title></head>
3
+ <body>
4
+ <form name="form1" method="post" action="/form_post">
5
+ Gender:<br />
6
+ M: <input type="checkbox" name="male" /><br />
7
+ F: <input type="checkbox" name="female" /><br />
8
+ Your one favorite color:<br />
9
+ Green: <input type="checkbox" name="green" /><br />
10
+ Green: <input type="checkbox" name="green" /><br />
11
+ Red: <input type="checkbox" name="red" /><br />
12
+ Blue: <input type="checkbox" name="blue" /><br />
13
+ Yellow: <input type="checkbox" name="yellow" /><br />
14
+ Brown: <input type="checkbox" name="brown" /><br />
15
+ Purple: <input type="checkbox" name="purple" /><br />
16
+ <input type="submit" value="Submit" />
17
+ </form>
18
+ </body>
19
+ </html>
@@ -0,0 +1,5 @@
1
+ <html>
2
+ <body>
3
+ <a href="/form_post?a=b&amp;b=c">test link</a>
4
+ </body>
5
+ </html>
@@ -0,0 +1,11 @@
1
+ <html>
2
+ <head><title>tc_field_precedence.html</title></head>
3
+ <body>
4
+ <form name="form1" method="post" action="/form_post">
5
+ Ticky?
6
+ <input type="checkbox" id="ticky" name="ticky" value="1" checked="checked"/>
7
+ <input type="hidden" name="ticky" value="0" />
8
+ <input type="submit" value="Submit" />
9
+ </form>
10
+ </body>
11
+ </html>
@@ -0,0 +1,8 @@
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="refresh" content="0; url=http://localhost/index.html">
4
+ </head>
5
+ <body>
6
+ This page has a meta refresh.
7
+ </body>
8
+ </html>
@@ -0,0 +1,48 @@
1
+ <html>
2
+ <head><title>Page Title</title></head>
3
+ <body>
4
+ <h1>Post Form 1</h1>
5
+ <form name="post_form1" method="post" action="/form_post?a=b&amp;b=c">
6
+ <table>
7
+ <tr>
8
+ <td>First Name</td>
9
+ <td><input type="text" name="first_name" /></td>
10
+ </tr>
11
+ </table><br />
12
+ <input type="submit" value="Submit" />
13
+ </form>
14
+
15
+ <h1>Post Form 2</h1>
16
+ <form name="post_form2" method="get" action="/form_post?a=b&amp;b=c">
17
+ <table>
18
+ <tr>
19
+ <td>First Name</td>
20
+ <td><input type="text" name="first_name" /></td>
21
+ </tr>
22
+ </table><br />
23
+ <input type="submit" value="Submit" />
24
+ </form>
25
+
26
+ <h1>Post Form 3</h1>
27
+ <form name="post_form3" method="post" action="/form_post?a=b&b=c">
28
+ <table>
29
+ <tr>
30
+ <td>First Name</td>
31
+ <td><input type="text" name="first_name" /></td>
32
+ </tr>
33
+ </table><br />
34
+ <input type="submit" value="Submit" />
35
+ </form>
36
+
37
+ <h1>Post Form 4</h1>
38
+ <form name="post_form4" method="post" action="/form_post#1">
39
+ <table>
40
+ <tr>
41
+ <td>First Name</td>
42
+ <td><input type="text" name="first_name" /></td>
43
+ </tr>
44
+ </table><br />
45
+ <input type="submit" value="Submit" />
46
+ </form>
47
+ </body>
48
+ </html>
@@ -0,0 +1,19 @@
1
+ <html>
2
+ <body>
3
+ <a href="thing.html"><b>Bold Dude</b></a>
4
+ <a href="thing.html" rel="nofollow">Dude</a>
5
+ <a href="thing.html" rel="me">Aaron <b>James</b> Patterson</a>
6
+ <a href="thing.html" id="bold_aaron_link" rel="me nofollow"><b>Aaron</b> Patterson</a>
7
+ <a href="thing.html" class="thing_link">Thing!</a>
8
+ <a href="thing.html">Ruby <b>Rocks!</b></a>
9
+ <!-- Testing a bug with escaped stuff in links:
10
+ http://rubyforge.org/pipermail/mechanize-users/2006-September/000002.html
11
+ -->
12
+ <a href="link%20with%20space.html">encoded space</a>
13
+ <a href="link with space.html">not encoded space</a>
14
+ <!-- End escaped bug -->
15
+ <a href="unusual&&%3F%3F%23%23.html">unusual characters</a>
16
+
17
+ <a href="javascript:new_page('1')">javascript link</a>
18
+ </body>
19
+ </html>
@@ -0,0 +1,9 @@
1
+ <html>
2
+ <head>
3
+ </head>
4
+ <body>
5
+ This page has a meta refresh.
6
+ <meta http-equiv="refresh" content="0; url=http://localhost/index.html">
7
+ </body>
8
+ </html>
9
+
@@ -0,0 +1,17 @@
1
+ <html>
2
+ <head><title>tc_pretty_print.html</title></head>
3
+ <body>
4
+ <a href="http://google.com/">Google</a><br />
5
+ <form method="post" action="/form_post" name="form1">
6
+ <input type="text" name="first_name"/><br />
7
+ <input type="password" name="password" /><br />
8
+ <input type="hidden" name="secret" value="hey" />
9
+ <input type="checkbox" name="checkme" />
10
+ <input type="radio" name="r" value="one" /><br />
11
+ <input type="radio" name="r" value="two" /><br />
12
+ <input type="submit" value="Submit" />
13
+ </form>
14
+ <frame src="http://memepool.com/" />
15
+ <iframe src="http://memepool.com/" />
16
+ </body>
17
+ </html>
@@ -0,0 +1,16 @@
1
+ <html>
2
+ <body>
3
+ <a href="/referer">Referer Servlet</a>
4
+ <a href="http://localhost/referer">Referer Servlet forced to http</a>
5
+ <a href="https://localhost/referer">Referer Servlet forced to https</a>
6
+ <br />
7
+ <a href="/referer" rel="noreferrer">Referer Servlet (noreferrer)</a>
8
+ <a href="http://localhost/referer" rel="noreferrer">Referer Servlet forced to http (noreferrer)</a>
9
+ <a href="https://localhost/referer" rel="noreferrer">Referer Servlet forced to https (noreferrer)</a>
10
+ <br />
11
+ <form method="post" action="/referer">
12
+ <input type="text" name="first" /></br>
13
+ <input type="submit" value="Submit" />
14
+ </form>
15
+ </body>
16
+ </html>
@@ -0,0 +1,19 @@
1
+ <html>
2
+ <body>
3
+ <a href="relative/tc_relative_links.html">forward</a>
4
+ <FRAMESET cols="20%, 80%">
5
+ <FRAMESET rows="100, 200, 200">
6
+ <FRAME name="frame1" src="relative/tc_relative_links.html">
7
+ <FRAME name="frame2" src="relative/tc_relative_links.html">
8
+ </FRAMESET>
9
+ <FRAMESET rows="100, 200">
10
+ <FRAME name="frame3" src="/file_upload.html">
11
+ <IFRAME src="http://google.com/" name="frame4">
12
+ [Your user agent does not support frames or is currently configured
13
+ not to display frames. However, you may visit
14
+ <A href="foo.html">the related document.</A>]
15
+ </IFRAME>
16
+ </FRAMESET>
17
+ </FRAMESET>
18
+ </body>
19
+ </html>
@@ -0,0 +1,23 @@
1
+ <html>
2
+ <head><title>tc_textarea.html</title></head>
3
+ <body>
4
+ <form name="form1" method="post" action="/form_post">
5
+ <textarea name="text1"></textarea>
6
+ <br />
7
+ <input type="submit" value="Submit" />
8
+ </form>
9
+ <br />
10
+ <form name="form2" method="post" action="/form_post">
11
+ <textarea name="text1">sample text</textarea>
12
+ <br />
13
+ <input type="submit" value="Submit" />
14
+ </form>
15
+ <br />
16
+ <form name="form3" method="post" action="/form_post">
17
+ <textarea name="text1"></textarea>
18
+ <textarea name="text1">sample text</textarea>
19
+ <br />
20
+ <input type="submit" value="Submit" />
21
+ </form>
22
+ </body>
23
+ </html>
@@ -0,0 +1,11 @@
1
+ <html>
2
+ <head><title>Page Title</title></head>
3
+ <body>
4
+ <a href="/frame_test.html">This link is not called "A Link"</a>
5
+ <form method="get" action="/frame_test.html">
6
+ <input type="text" name="words" value="nil">
7
+ <input type="submit" value="A Button">
8
+ </form>
9
+ <a href="/index.html">A Link</a>
10
+ </body>
11
+ </html>
@@ -0,0 +1,5 @@
1
+ <html>
2
+ <body>
3
+ This is a webpage that has a very unusual name.
4
+ </body>
5
+ </html>