mechanize 2.14.0 → 2.14.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 (83) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +27 -1
  3. data/README.md +7 -0
  4. data/SECURITY.md +11 -0
  5. data/lib/mechanize/directory_saver.rb +2 -1
  6. data/lib/mechanize/file_saver.rb +2 -0
  7. data/lib/mechanize/http/agent.rb +83 -29
  8. data/lib/mechanize/parser.rb +33 -3
  9. data/lib/mechanize/test_case.rb +2 -9
  10. data/lib/mechanize/version.rb +1 -1
  11. data/lib/mechanize.rb +12 -2
  12. data/test/htdocs/frame_test.html +8 -6
  13. data/test/htdocs/relative/tc_relative_links.html +1 -1
  14. metadata +7 -174
  15. data/.autotest +0 -6
  16. data/.github/dependabot.yml +0 -11
  17. data/.github/workflows/ci.yml +0 -43
  18. data/.github/workflows/upstream.yml +0 -51
  19. data/.gitignore +0 -15
  20. data/.yardopts +0 -8
  21. data/Gemfile +0 -12
  22. data/Rakefile +0 -56
  23. data/examples/flickr_upload.rb +0 -22
  24. data/examples/latest_user_agents.rb +0 -100
  25. data/examples/mech-dump.rb +0 -5
  26. data/examples/proxy_req.rb +0 -7
  27. data/examples/rubygems.rb +0 -23
  28. data/examples/spider.rb +0 -22
  29. data/examples/wikipedia_links_to_philosophy.rb +0 -158
  30. data/mechanize.gemspec +0 -74
  31. data/test/data/htpasswd +0 -1
  32. data/test/data/server.crt +0 -16
  33. data/test/data/server.csr +0 -12
  34. data/test/data/server.key +0 -15
  35. data/test/data/server.pem +0 -15
  36. data/test/test_mechanize.rb +0 -1382
  37. data/test/test_mechanize_cookie.rb +0 -559
  38. data/test/test_mechanize_cookie_jar.rb +0 -615
  39. data/test/test_mechanize_directory_saver.rb +0 -60
  40. data/test/test_mechanize_download.rb +0 -102
  41. data/test/test_mechanize_element_not_found_error.rb +0 -16
  42. data/test/test_mechanize_file.rb +0 -118
  43. data/test/test_mechanize_file_connection.rb +0 -40
  44. data/test/test_mechanize_file_request.rb +0 -26
  45. data/test/test_mechanize_file_response.rb +0 -48
  46. data/test/test_mechanize_file_saver.rb +0 -22
  47. data/test/test_mechanize_form.rb +0 -1025
  48. data/test/test_mechanize_form_check_box.rb +0 -49
  49. data/test/test_mechanize_form_encoding.rb +0 -110
  50. data/test/test_mechanize_form_field.rb +0 -78
  51. data/test/test_mechanize_form_file_upload.rb +0 -21
  52. data/test/test_mechanize_form_image_button.rb +0 -13
  53. data/test/test_mechanize_form_keygen.rb +0 -34
  54. data/test/test_mechanize_form_multi_select_list.rb +0 -98
  55. data/test/test_mechanize_form_option.rb +0 -60
  56. data/test/test_mechanize_form_radio_button.rb +0 -96
  57. data/test/test_mechanize_form_select_list.rb +0 -81
  58. data/test/test_mechanize_form_textarea.rb +0 -53
  59. data/test/test_mechanize_headers.rb +0 -36
  60. data/test/test_mechanize_history.rb +0 -104
  61. data/test/test_mechanize_http_agent.rb +0 -1915
  62. data/test/test_mechanize_http_auth_challenge.rb +0 -64
  63. data/test/test_mechanize_http_auth_realm.rb +0 -56
  64. data/test/test_mechanize_http_auth_store.rb +0 -233
  65. data/test/test_mechanize_http_content_disposition_parser.rb +0 -167
  66. data/test/test_mechanize_http_www_authenticate_parser.rb +0 -204
  67. data/test/test_mechanize_image.rb +0 -9
  68. data/test/test_mechanize_link.rb +0 -171
  69. data/test/test_mechanize_page.rb +0 -295
  70. data/test/test_mechanize_page_encoding.rb +0 -215
  71. data/test/test_mechanize_page_frame.rb +0 -17
  72. data/test/test_mechanize_page_image.rb +0 -191
  73. data/test/test_mechanize_page_link.rb +0 -377
  74. data/test/test_mechanize_page_meta_refresh.rb +0 -151
  75. data/test/test_mechanize_parser.rb +0 -316
  76. data/test/test_mechanize_pluggable_parser.rb +0 -68
  77. data/test/test_mechanize_redirect_limit_reached_error.rb +0 -25
  78. data/test/test_mechanize_redirect_not_get_or_head_error.rb +0 -15
  79. data/test/test_mechanize_response_read_error.rb +0 -29
  80. data/test/test_mechanize_subclass.rb +0 -23
  81. data/test/test_mechanize_util.rb +0 -144
  82. data/test/test_mechanize_xml_file.rb +0 -30
  83. data/test/test_multi_select.rb +0 -120
@@ -1,120 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'mechanize/test_case'
3
-
4
- class MultiSelectTest < Mechanize::TestCase
5
- def setup
6
- super
7
-
8
- @page = @mech.get("http://localhost/form_multi_select.html")
9
- @form = @page.forms.first
10
- end
11
-
12
- def test_option_with
13
- o = @form.field_with(:name => 'list').option_with(:value => '1')
14
- assert_equal '1', o.value
15
- end
16
-
17
- def test_options_with
18
- os = @form.field_with(:name => 'list').options_with(:value => /1|2/)
19
- assert_equal ['1', '2'].sort, os.map { |x| x.value }.sort
20
- end
21
-
22
- def test_select_none
23
- page = @mech.get("http://localhost/form_multi_select.html")
24
- form = page.forms.first
25
- form.field_with(:name => 'list').select_none
26
- page = @mech.submit(form)
27
- assert_equal(0, page.links.length)
28
- end
29
-
30
- def test_select_all
31
- page = @mech.get("http://localhost/form_multi_select.html")
32
- form = page.forms.first
33
- form.field_with(:name => 'list').select_all
34
- page = @mech.submit(form)
35
- assert_equal(6, page.links.length)
36
- assert_equal(1, page.links_with(:text => 'list:1').length)
37
- assert_equal(1, page.links_with(:text => 'list:2').length)
38
- assert_equal(1, page.links_with(:text => 'list:3').length)
39
- assert_equal(1, page.links_with(:text => 'list:4').length)
40
- assert_equal(1, page.links_with(:text => 'list:5').length)
41
- assert_equal(1, page.links_with(:text => 'list:6').length)
42
- end
43
-
44
- def test_click_all
45
- page = @mech.get("http://localhost/form_multi_select.html")
46
- form = page.forms.first
47
- form.field_with(:name => 'list').options.each { |o| o.click }
48
- page = @mech.submit(form)
49
- assert_equal(5, page.links.length)
50
- assert_equal(1, page.links_with(:text => 'list:1').length)
51
- assert_equal(1, page.links_with(:text => 'list:3').length)
52
- assert_equal(1, page.links_with(:text => 'list:4').length)
53
- assert_equal(1, page.links_with(:text => 'list:5').length)
54
- assert_equal(1, page.links_with(:text => 'list:6').length)
55
- end
56
-
57
- def test_select_default
58
- page = @mech.get("http://localhost/form_multi_select.html")
59
- form = page.forms.first
60
- page = @mech.submit(form)
61
- assert_equal(1, page.links.length)
62
- assert_equal(1, page.links_with(:text => 'list:2').length)
63
- end
64
-
65
- def test_select_one
66
- page = @mech.get("http://localhost/form_multi_select.html")
67
- form = page.forms.first
68
- form.list = 'Aaron'
69
- assert_equal(['Aaron'], form.list)
70
- page = @mech.submit(form)
71
- assert_equal(1, page.links.length)
72
- assert_equal('list:Aaron', page.links.first.text)
73
- end
74
-
75
- def test_select_two
76
- page = @mech.get("http://localhost/form_multi_select.html")
77
- form = page.forms.first
78
- form.list = ['1', 'Aaron']
79
- page = @mech.submit(form)
80
- assert_equal(2, page.links.length)
81
- assert_equal(1, page.links_with(:text => 'list:1').length)
82
- assert_equal(1, page.links_with(:text => 'list:Aaron').length)
83
- end
84
-
85
- def test_select_three
86
- page = @mech.get("http://localhost/form_multi_select.html")
87
- form = page.forms.first
88
- form.list = ['1', '2', '3']
89
- page = @mech.submit(form)
90
- assert_equal(3, page.links.length)
91
- assert_equal(1, page.links_with(:text => 'list:1').length)
92
- assert_equal(1, page.links_with(:text => 'list:2').length)
93
- assert_equal(1, page.links_with(:text => 'list:3').length)
94
- end
95
-
96
- def test_select_three_twice
97
- page = @mech.get("http://localhost/form_multi_select.html")
98
- form = page.forms.first
99
- form.list = ['1', '2', '3']
100
- form.list = ['1', '2', '3']
101
- page = @mech.submit(form)
102
- assert_equal(3, page.links.length)
103
- assert_equal(1, page.links_with(:text => 'list:1').length)
104
- assert_equal(1, page.links_with(:text => 'list:2').length)
105
- assert_equal(1, page.links_with(:text => 'list:3').length)
106
- end
107
-
108
- def test_select_with_click
109
- page = @mech.get("http://localhost/form_multi_select.html")
110
- form = page.forms.first
111
- form.list = ['1', 'Aaron']
112
- form.field_with(:name => 'list').options[3].tick
113
- assert_equal(['1', 'Aaron', '4'].sort, form.list.sort)
114
- page = @mech.submit(form)
115
- assert_equal(3, page.links.length)
116
- assert_equal(1, page.links_with(:text => 'list:1').length)
117
- assert_equal(1, page.links_with(:text => 'list:Aaron').length)
118
- assert_equal(1, page.links_with(:text => 'list:4').length)
119
- end
120
- end