aai10-mechanize 2.0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.autotest +6 -0
- data/.gitignore +9 -0
- data/CHANGELOG.rdoc +652 -0
- data/EXAMPLES.rdoc +187 -0
- data/FAQ.rdoc +11 -0
- data/GUIDE.rdoc +163 -0
- data/LICENSE.rdoc +20 -0
- data/Manifest.txt +172 -0
- data/README.rdoc +63 -0
- data/Rakefile +36 -0
- data/aai10-mechanize.gemspec +20 -0
- data/examples/flickr_upload.rb +22 -0
- data/examples/mech-dump.rb +5 -0
- data/examples/proxy_req.rb +7 -0
- data/examples/rubyforge.rb +20 -0
- data/examples/spider.rb +21 -0
- data/lib/mechanize.rb +664 -0
- data/lib/mechanize/content_type_error.rb +14 -0
- data/lib/mechanize/cookie.rb +116 -0
- data/lib/mechanize/cookie_jar.rb +202 -0
- data/lib/mechanize/element_matcher.rb +35 -0
- data/lib/mechanize/file.rb +80 -0
- data/lib/mechanize/file_connection.rb +17 -0
- data/lib/mechanize/file_request.rb +26 -0
- data/lib/mechanize/file_response.rb +74 -0
- data/lib/mechanize/file_saver.rb +37 -0
- data/lib/mechanize/form.rb +478 -0
- data/lib/mechanize/form/button.rb +9 -0
- data/lib/mechanize/form/check_box.rb +11 -0
- data/lib/mechanize/form/field.rb +44 -0
- data/lib/mechanize/form/file_upload.rb +23 -0
- data/lib/mechanize/form/image_button.rb +20 -0
- data/lib/mechanize/form/multi_select_list.rb +83 -0
- data/lib/mechanize/form/option.rb +49 -0
- data/lib/mechanize/form/radio_button.rb +48 -0
- data/lib/mechanize/form/select_list.rb +40 -0
- data/lib/mechanize/headers.rb +25 -0
- data/lib/mechanize/history.rb +83 -0
- data/lib/mechanize/http.rb +3 -0
- data/lib/mechanize/http/agent.rb +738 -0
- data/lib/mechanize/inspect.rb +88 -0
- data/lib/mechanize/monkey_patch.rb +37 -0
- data/lib/mechanize/page.rb +408 -0
- data/lib/mechanize/page/base.rb +8 -0
- data/lib/mechanize/page/frame.rb +27 -0
- data/lib/mechanize/page/image.rb +30 -0
- data/lib/mechanize/page/label.rb +20 -0
- data/lib/mechanize/page/link.rb +82 -0
- data/lib/mechanize/page/meta_refresh.rb +56 -0
- data/lib/mechanize/pluggable_parsers.rb +101 -0
- data/lib/mechanize/redirect_limit_reached_error.rb +16 -0
- data/lib/mechanize/redirect_not_get_or_head_error.rb +19 -0
- data/lib/mechanize/response_code_error.rb +22 -0
- data/lib/mechanize/response_read_error.rb +27 -0
- data/lib/mechanize/robots_disallowed_error.rb +29 -0
- data/lib/mechanize/unsupported_scheme_error.rb +8 -0
- data/lib/mechanize/util.rb +113 -0
- data/test/data/htpasswd +1 -0
- data/test/data/server.crt +16 -0
- data/test/data/server.csr +12 -0
- data/test/data/server.key +15 -0
- data/test/data/server.pem +15 -0
- data/test/helper.rb +175 -0
- data/test/htdocs/alt_text.html +10 -0
- data/test/htdocs/bad_form_test.html +9 -0
- data/test/htdocs/button.jpg +0 -0
- data/test/htdocs/canonical_uri.html +9 -0
- data/test/htdocs/dir with spaces/foo.html +1 -0
- data/test/htdocs/empty_form.html +6 -0
- data/test/htdocs/file_upload.html +26 -0
- data/test/htdocs/find_link.html +41 -0
- data/test/htdocs/form_multi_select.html +16 -0
- data/test/htdocs/form_multival.html +37 -0
- data/test/htdocs/form_no_action.html +18 -0
- data/test/htdocs/form_no_input_name.html +16 -0
- data/test/htdocs/form_select.html +16 -0
- data/test/htdocs/form_select_all.html +16 -0
- data/test/htdocs/form_select_none.html +17 -0
- data/test/htdocs/form_select_noopts.html +10 -0
- data/test/htdocs/form_set_fields.html +14 -0
- data/test/htdocs/form_test.html +188 -0
- data/test/htdocs/frame_referer_test.html +10 -0
- data/test/htdocs/frame_test.html +30 -0
- data/test/htdocs/google.html +13 -0
- data/test/htdocs/iframe_test.html +16 -0
- data/test/htdocs/index.html +6 -0
- data/test/htdocs/link with space.html +5 -0
- data/test/htdocs/meta_cookie.html +11 -0
- data/test/htdocs/no_title_test.html +6 -0
- data/test/htdocs/nofollow.html +9 -0
- data/test/htdocs/noindex.html +9 -0
- data/test/htdocs/norobots.html +8 -0
- data/test/htdocs/rails_3_encoding_hack_form_test.html +27 -0
- data/test/htdocs/rel_nofollow.html +8 -0
- data/test/htdocs/relative/tc_relative_links.html +21 -0
- data/test/htdocs/robots.html +8 -0
- data/test/htdocs/robots.txt +2 -0
- data/test/htdocs/tc_bad_charset.html +9 -0
- data/test/htdocs/tc_bad_links.html +5 -0
- data/test/htdocs/tc_base_images.html +10 -0
- data/test/htdocs/tc_base_link.html +8 -0
- data/test/htdocs/tc_blank_form.html +11 -0
- data/test/htdocs/tc_charset.html +6 -0
- data/test/htdocs/tc_checkboxes.html +19 -0
- data/test/htdocs/tc_encoded_links.html +5 -0
- data/test/htdocs/tc_field_precedence.html +11 -0
- data/test/htdocs/tc_follow_meta.html +8 -0
- data/test/htdocs/tc_form_action.html +48 -0
- data/test/htdocs/tc_images.html +8 -0
- data/test/htdocs/tc_links.html +18 -0
- data/test/htdocs/tc_meta_in_body.html +9 -0
- data/test/htdocs/tc_no_attributes.html +16 -0
- data/test/htdocs/tc_pretty_print.html +17 -0
- data/test/htdocs/tc_radiobuttons.html +17 -0
- data/test/htdocs/tc_referer.html +16 -0
- data/test/htdocs/tc_relative_links.html +19 -0
- data/test/htdocs/tc_textarea.html +23 -0
- data/test/htdocs/test_bad_encoding.html +52 -0
- data/test/htdocs/test_click.html +11 -0
- data/test/htdocs/unusual______.html +5 -0
- data/test/servlets.rb +402 -0
- data/test/ssl_server.rb +48 -0
- data/test/test_cookies.rb +129 -0
- data/test/test_form_action.rb +52 -0
- data/test/test_form_as_hash.rb +59 -0
- data/test/test_form_button.rb +46 -0
- data/test/test_frames.rb +34 -0
- data/test/test_headers.rb +33 -0
- data/test/test_history.rb +118 -0
- data/test/test_history_added.rb +16 -0
- data/test/test_html_unscape_forms.rb +46 -0
- data/test/test_if_modified_since.rb +20 -0
- data/test/test_images.rb +19 -0
- data/test/test_mechanize.rb +852 -0
- data/test/test_mechanize_cookie.rb +345 -0
- data/test/test_mechanize_cookie_jar.rb +433 -0
- data/test/test_mechanize_file.rb +53 -0
- data/test/test_mechanize_file_request.rb +19 -0
- data/test/test_mechanize_file_response.rb +21 -0
- data/test/test_mechanize_form.rb +576 -0
- data/test/test_mechanize_form_check_box.rb +37 -0
- data/test/test_mechanize_form_encoding.rb +120 -0
- data/test/test_mechanize_form_field.rb +21 -0
- data/test/test_mechanize_form_image_button.rb +12 -0
- data/test/test_mechanize_form_textarea.rb +51 -0
- data/test/test_mechanize_http_agent.rb +697 -0
- data/test/test_mechanize_link.rb +84 -0
- data/test/test_mechanize_page_encoding.rb +147 -0
- data/test/test_mechanize_page_link.rb +382 -0
- data/test/test_mechanize_page_meta_refresh.rb +115 -0
- data/test/test_mechanize_redirect_not_get_or_head_error.rb +18 -0
- data/test/test_mechanize_subclass.rb +22 -0
- data/test/test_mechanize_util.rb +92 -0
- data/test/test_multi_select.rb +118 -0
- data/test/test_no_attributes.rb +13 -0
- data/test/test_option.rb +18 -0
- data/test/test_pluggable_parser.rb +136 -0
- data/test/test_post_form.rb +37 -0
- data/test/test_pretty_print.rb +22 -0
- data/test/test_radiobutton.rb +75 -0
- data/test/test_redirect_limit_reached.rb +39 -0
- data/test/test_redirect_ok.rb +25 -0
- data/test/test_referer.rb +81 -0
- data/test/test_relative_links.rb +40 -0
- data/test/test_request.rb +13 -0
- data/test/test_response_code.rb +53 -0
- data/test/test_robots.rb +72 -0
- data/test/test_save_file.rb +48 -0
- data/test/test_scheme.rb +48 -0
- data/test/test_select.rb +119 -0
- data/test/test_select_all.rb +15 -0
- data/test/test_select_none.rb +15 -0
- data/test/test_select_noopts.rb +18 -0
- data/test/test_set_fields.rb +44 -0
- data/test/test_ssl_server.rb +20 -0
- metadata +360 -0
@@ -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,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="✓" />
|
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,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,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,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,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&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&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,18 @@
|
|
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">Ruby <b>Rocks!</b></a>
|
8
|
+
<!-- Testing a bug with escaped stuff in links:
|
9
|
+
http://rubyforge.org/pipermail/mechanize-users/2006-September/000002.html
|
10
|
+
-->
|
11
|
+
<a href="link%20with%20space.html">encoded space</a>
|
12
|
+
<a href="link with space.html">not encoded space</a>
|
13
|
+
<!-- End escaped bug -->
|
14
|
+
<a href="unusual&&%3F%3F%23%23.html">unusual characters</a>
|
15
|
+
|
16
|
+
<a href="javascript:new_page('1')">javascript link</a>
|
17
|
+
</body>
|
18
|
+
</html>
|
@@ -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,17 @@
|
|
1
|
+
<html>
|
2
|
+
<head><title>tc_radiobuttons.html</title></head>
|
3
|
+
<body>
|
4
|
+
<form name="form1" method="post" action="/form_post">
|
5
|
+
Gender:<br />
|
6
|
+
M: <input type="radio" name="gender" value="male" /><br />
|
7
|
+
F: <input type="radio" name="gender" value="female" /><br />
|
8
|
+
Your one favorite color:<br />
|
9
|
+
Green: <input type="radio" name="color" value="green" /><br />
|
10
|
+
Red: <input type="radio" name="color" value="red" /><br />
|
11
|
+
Blue: <input type="radio" name="color" value="blue" /><br />
|
12
|
+
Yellow: <input type="radio" name="color" value="yellow" /><br />
|
13
|
+
Brown: <input type="radio" name="color" value="brown" /><br />
|
14
|
+
<input type="submit" value="Submit" />
|
15
|
+
</form>
|
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>
|