capybara 2.15.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (177) hide show
  1. checksums.yaml +5 -5
  2. data/History.md +137 -2
  3. data/README.md +36 -25
  4. data/lib/capybara/config.rb +11 -57
  5. data/lib/capybara/cucumber.rb +2 -3
  6. data/lib/capybara/driver/base.rb +19 -16
  7. data/lib/capybara/driver/node.rb +5 -4
  8. data/lib/capybara/dsl.rb +1 -0
  9. data/lib/capybara/helpers.rb +19 -29
  10. data/lib/capybara/minitest/spec.rb +16 -13
  11. data/lib/capybara/minitest.rb +140 -137
  12. data/lib/capybara/node/actions.rb +68 -89
  13. data/lib/capybara/node/base.rb +11 -18
  14. data/lib/capybara/node/document.rb +2 -2
  15. data/lib/capybara/node/document_matchers.rb +8 -8
  16. data/lib/capybara/node/element.rb +32 -42
  17. data/lib/capybara/node/finders.rb +64 -71
  18. data/lib/capybara/node/matchers.rb +50 -71
  19. data/lib/capybara/node/simple.rb +11 -17
  20. data/lib/capybara/queries/ancestor_query.rb +12 -8
  21. data/lib/capybara/queries/base_query.rb +22 -18
  22. data/lib/capybara/queries/current_path_query.rb +12 -25
  23. data/lib/capybara/queries/match_query.rb +3 -7
  24. data/lib/capybara/queries/selector_query.rb +100 -96
  25. data/lib/capybara/queries/sibling_query.rb +5 -5
  26. data/lib/capybara/queries/text_query.rb +35 -35
  27. data/lib/capybara/queries/title_query.rb +8 -11
  28. data/lib/capybara/rack_test/browser.rb +15 -18
  29. data/lib/capybara/rack_test/css_handlers.rb +6 -4
  30. data/lib/capybara/rack_test/driver.rb +6 -10
  31. data/lib/capybara/rack_test/form.rb +52 -39
  32. data/lib/capybara/rack_test/node.rb +93 -63
  33. data/lib/capybara/rails.rb +2 -6
  34. data/lib/capybara/result.rb +22 -22
  35. data/lib/capybara/rspec/compound.rb +5 -10
  36. data/lib/capybara/rspec/features.rb +17 -48
  37. data/lib/capybara/rspec/matcher_proxies.rb +31 -15
  38. data/lib/capybara/rspec/matchers.rb +116 -58
  39. data/lib/capybara/rspec.rb +5 -10
  40. data/lib/capybara/selector/css.rb +6 -11
  41. data/lib/capybara/selector/filter.rb +1 -17
  42. data/lib/capybara/selector/filter_set.rb +18 -15
  43. data/lib/capybara/selector/filters/base.rb +7 -6
  44. data/lib/capybara/selector/filters/expression_filter.rb +6 -23
  45. data/lib/capybara/selector/filters/node_filter.rb +2 -12
  46. data/lib/capybara/selector/selector.rb +28 -34
  47. data/lib/capybara/selector.rb +129 -117
  48. data/lib/capybara/selenium/driver.rb +172 -163
  49. data/lib/capybara/selenium/node.rb +218 -104
  50. data/lib/capybara/server.rb +3 -2
  51. data/lib/capybara/session/config.rb +47 -59
  52. data/lib/capybara/session/matchers.rb +23 -14
  53. data/lib/capybara/session.rb +175 -229
  54. data/lib/capybara/spec/fixtures/no_extension +1 -0
  55. data/lib/capybara/spec/public/test.js +38 -6
  56. data/lib/capybara/spec/session/accept_alert_spec.rb +1 -0
  57. data/lib/capybara/spec/session/accept_confirm_spec.rb +3 -2
  58. data/lib/capybara/spec/session/accept_prompt_spec.rb +30 -1
  59. data/lib/capybara/spec/session/all_spec.rb +31 -18
  60. data/lib/capybara/spec/session/ancestor_spec.rb +6 -8
  61. data/lib/capybara/spec/session/assert_all_of_selectors_spec.rb +6 -5
  62. data/lib/capybara/spec/session/assert_current_path.rb +12 -11
  63. data/lib/capybara/spec/session/assert_selector.rb +1 -0
  64. data/lib/capybara/spec/session/assert_text.rb +31 -23
  65. data/lib/capybara/spec/session/assert_title.rb +13 -3
  66. data/lib/capybara/spec/session/attach_file_spec.rb +57 -29
  67. data/lib/capybara/spec/session/body_spec.rb +1 -0
  68. data/lib/capybara/spec/session/check_spec.rb +7 -6
  69. data/lib/capybara/spec/session/choose_spec.rb +5 -4
  70. data/lib/capybara/spec/session/click_button_spec.rb +24 -32
  71. data/lib/capybara/spec/session/click_link_or_button_spec.rb +8 -7
  72. data/lib/capybara/spec/session/click_link_spec.rb +8 -7
  73. data/lib/capybara/spec/session/current_scope_spec.rb +4 -3
  74. data/lib/capybara/spec/session/current_url_spec.rb +19 -8
  75. data/lib/capybara/spec/session/dismiss_confirm_spec.rb +1 -1
  76. data/lib/capybara/spec/session/dismiss_prompt_spec.rb +1 -0
  77. data/lib/capybara/spec/session/element/assert_match_selector.rb +1 -1
  78. data/lib/capybara/spec/session/element/match_xpath_spec.rb +1 -1
  79. data/lib/capybara/spec/session/element/matches_selector_spec.rb +5 -5
  80. data/lib/capybara/spec/session/evaluate_async_script_spec.rb +23 -0
  81. data/lib/capybara/spec/session/evaluate_script_spec.rb +5 -4
  82. data/lib/capybara/spec/session/execute_script_spec.rb +4 -3
  83. data/lib/capybara/spec/session/fill_in_spec.rb +30 -5
  84. data/lib/capybara/spec/session/find_button_spec.rb +4 -3
  85. data/lib/capybara/spec/session/find_by_id_spec.rb +2 -1
  86. data/lib/capybara/spec/session/find_field_spec.rb +9 -15
  87. data/lib/capybara/spec/session/find_link_spec.rb +6 -5
  88. data/lib/capybara/spec/session/find_spec.rb +37 -31
  89. data/lib/capybara/spec/session/first_spec.rb +60 -33
  90. data/lib/capybara/spec/session/frame/frame_title_spec.rb +23 -0
  91. data/lib/capybara/spec/session/frame/frame_url_spec.rb +23 -0
  92. data/lib/capybara/spec/session/frame/switch_to_frame_spec.rb +2 -1
  93. data/lib/capybara/spec/session/frame/within_frame_spec.rb +9 -16
  94. data/lib/capybara/spec/session/go_back_spec.rb +1 -0
  95. data/lib/capybara/spec/session/go_forward_spec.rb +1 -0
  96. data/lib/capybara/spec/session/has_all_selectors_spec.rb +69 -0
  97. data/lib/capybara/spec/session/has_button_spec.rb +2 -1
  98. data/lib/capybara/spec/session/has_css_spec.rb +3 -2
  99. data/lib/capybara/spec/session/has_current_path_spec.rb +49 -22
  100. data/lib/capybara/spec/session/has_field_spec.rb +4 -3
  101. data/lib/capybara/spec/session/has_link_spec.rb +5 -4
  102. data/lib/capybara/spec/session/has_none_selectors_spec.rb +76 -0
  103. data/lib/capybara/spec/session/has_select_spec.rb +32 -31
  104. data/lib/capybara/spec/session/has_selector_spec.rb +5 -4
  105. data/lib/capybara/spec/session/has_table_spec.rb +2 -1
  106. data/lib/capybara/spec/session/has_text_spec.rb +9 -13
  107. data/lib/capybara/spec/session/has_title_spec.rb +1 -0
  108. data/lib/capybara/spec/session/has_xpath_spec.rb +1 -0
  109. data/lib/capybara/spec/session/headers.rb +2 -1
  110. data/lib/capybara/spec/session/html_spec.rb +1 -0
  111. data/lib/capybara/spec/session/node_spec.rb +107 -58
  112. data/lib/capybara/spec/session/node_wrapper_spec.rb +36 -0
  113. data/lib/capybara/spec/session/refresh_spec.rb +6 -2
  114. data/lib/capybara/spec/session/reset_session_spec.rb +19 -0
  115. data/lib/capybara/spec/session/response_code.rb +1 -0
  116. data/lib/capybara/spec/session/save_and_open_page_spec.rb +1 -0
  117. data/lib/capybara/spec/session/save_and_open_screenshot_spec.rb +6 -11
  118. data/lib/capybara/spec/session/save_page_spec.rb +1 -17
  119. data/lib/capybara/spec/session/save_screenshot_spec.rb +3 -3
  120. data/lib/capybara/spec/session/select_spec.rb +21 -20
  121. data/lib/capybara/spec/session/selectors_spec.rb +2 -2
  122. data/lib/capybara/spec/session/sibling_spec.rb +1 -1
  123. data/lib/capybara/spec/session/text_spec.rb +17 -3
  124. data/lib/capybara/spec/session/title_spec.rb +11 -1
  125. data/lib/capybara/spec/session/uncheck_spec.rb +4 -3
  126. data/lib/capybara/spec/session/unselect_spec.rb +7 -6
  127. data/lib/capybara/spec/session/visit_spec.rb +64 -3
  128. data/lib/capybara/spec/session/window/become_closed_spec.rb +2 -1
  129. data/lib/capybara/spec/session/window/current_window_spec.rb +1 -0
  130. data/lib/capybara/spec/session/window/open_new_window_spec.rb +1 -0
  131. data/lib/capybara/spec/session/window/switch_to_window_spec.rb +2 -1
  132. data/lib/capybara/spec/session/window/window_opened_by_spec.rb +2 -1
  133. data/lib/capybara/spec/session/window/window_spec.rb +12 -12
  134. data/lib/capybara/spec/session/window/windows_spec.rb +2 -3
  135. data/lib/capybara/spec/session/window/within_window_spec.rb +15 -71
  136. data/lib/capybara/spec/session/within_spec.rb +1 -0
  137. data/lib/capybara/spec/spec_helper.rb +36 -18
  138. data/lib/capybara/spec/test_app.rb +17 -9
  139. data/lib/capybara/spec/views/form.erb +7 -0
  140. data/lib/capybara/spec/views/initial_alert.erb +10 -0
  141. data/lib/capybara/spec/views/with_fixed_header_footer.erb +17 -0
  142. data/lib/capybara/spec/views/with_hover.erb +5 -0
  143. data/lib/capybara/spec/views/with_html.erb +27 -1
  144. data/lib/capybara/spec/views/with_js.erb +11 -0
  145. data/lib/capybara/spec/views/within_frames.erb +4 -1
  146. data/lib/capybara/version.rb +2 -1
  147. data/lib/capybara/window.rb +6 -10
  148. data/lib/capybara.rb +29 -26
  149. data/spec/basic_node_spec.rb +1 -0
  150. data/spec/capybara_spec.rb +16 -69
  151. data/spec/dsl_spec.rb +5 -13
  152. data/spec/filter_set_spec.rb +5 -4
  153. data/spec/fixtures/selenium_driver_rspec_failure.rb +2 -1
  154. data/spec/fixtures/selenium_driver_rspec_success.rb +3 -2
  155. data/spec/minitest_spec.rb +13 -4
  156. data/spec/minitest_spec_spec.rb +12 -3
  157. data/spec/per_session_config_spec.rb +9 -8
  158. data/spec/rack_test_spec.rb +21 -20
  159. data/spec/result_spec.rb +17 -16
  160. data/spec/rspec/features_spec.rb +17 -14
  161. data/spec/rspec/scenarios_spec.rb +5 -7
  162. data/spec/rspec/shared_spec_matchers.rb +96 -99
  163. data/spec/rspec/views_spec.rb +2 -1
  164. data/spec/rspec_matchers_spec.rb +18 -2
  165. data/spec/rspec_spec.rb +11 -15
  166. data/spec/selector_spec.rb +5 -6
  167. data/spec/selenium_spec_chrome.rb +20 -11
  168. data/spec/selenium_spec_edge.rb +27 -0
  169. data/spec/selenium_spec_ie.rb +31 -0
  170. data/spec/selenium_spec_marionette.rb +38 -12
  171. data/spec/server_spec.rb +33 -33
  172. data/spec/session_spec.rb +2 -1
  173. data/spec/shared_selenium_session.rb +82 -22
  174. data/spec/spec_helper.rb +3 -6
  175. metadata +76 -81
  176. data/lib/capybara/query.rb +0 -7
  177. data/spec/selenium_spec_firefox.rb +0 -68
@@ -1,9 +1,10 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'spec_helper'
3
4
  require "selenium-webdriver"
4
5
 
5
6
  RSpec.shared_examples "Capybara::Session" do |session, mode|
6
- let(:session) {session}
7
+ let(:session) { session }
7
8
 
8
9
  context 'with selenium driver' do
9
10
  before do
@@ -35,7 +36,6 @@ RSpec.shared_examples "Capybara::Session" do |session, mode|
35
36
  @current_dir = Dir.getwd
36
37
  Dir.chdir(File.join(File.dirname(__FILE__), '..'))
37
38
  @env = { 'SELENIUM_BROWSER' => @session.driver.options[:browser].to_s }
38
- @env['LEGACY_FIREFOX'] = 'TRUE' if mode == :selenium_firefox
39
39
  end
40
40
 
41
41
  after do
@@ -45,38 +45,56 @@ RSpec.shared_examples "Capybara::Session" do |session, mode|
45
45
  it "should have return code 1 when running selenium_driver_rspec_failure.rb" do
46
46
  skip if ENV['HEADLESS']
47
47
  system(@env, 'rspec spec/fixtures/selenium_driver_rspec_failure.rb', out: File::NULL, err: File::NULL)
48
- expect($?.exitstatus).to eq(1)
48
+ expect($CHILD_STATUS.exitstatus).to eq(1)
49
49
  end
50
50
 
51
51
  it "should have return code 0 when running selenium_driver_rspec_success.rb" do
52
52
  skip if ENV['HEADLESS']
53
53
  system(@env, 'rspec spec/fixtures/selenium_driver_rspec_success.rb', out: File::NULL, err: File::NULL)
54
- expect($?.exitstatus).to eq(0)
54
+ expect($CHILD_STATUS.exitstatus).to eq(0)
55
55
  end
56
56
  end
57
57
 
58
- describe "#accept_alert" do
58
+ describe "#accept_alert", requires: [:modals] do
59
59
  it "supports a blockless mode" do
60
- skip "Headless Chrome doesn't support blockless modal methods" if @session.driver.send(:headless_chrome?)
61
60
  @session.visit('/with_js')
62
61
  @session.click_link('Open alert')
63
62
  @session.accept_alert
64
- expect{@session.driver.browser.switch_to.alert}.to raise_error(Selenium::WebDriver::Error::NoAlertPresentError)
63
+ expect { @session.driver.browser.switch_to.alert }.to raise_error(@session.driver.send(:modal_error))
64
+ end
65
+
66
+ it "can be called before visiting" do
67
+ @session.accept_alert "Initial alert" do
68
+ @session.visit('/initial_alert')
69
+ end
70
+ expect(@session).to have_text('Initial alert page')
71
+ end
72
+ end
73
+
74
+ context '#fill_in_with empty string and no options' do
75
+ it 'should trigger change when clearing a field' do
76
+ @session.visit('/with_js')
77
+ @session.fill_in('with_change_event', with: '')
78
+ # click outside the field to trigger the change event
79
+ @session.find(:css, 'body').click
80
+ expect(@session).to have_selector(:css, '.change_event_triggered', match: :one)
65
81
  end
66
82
  end
67
83
 
68
84
  context "#fill_in with { :clear => :backspace } fill_option", requires: [:js] do
69
85
  it 'should fill in a field, replacing an existing value' do
70
86
  @session.visit('/form')
71
- @session.fill_in('form_first_name', with: 'Harry',
72
- fill_options: { clear: :backspace} )
87
+ @session.fill_in('form_first_name',
88
+ with: 'Harry',
89
+ fill_options: { clear: :backspace })
73
90
  expect(@session.find(:fillable_field, 'form_first_name').value).to eq('Harry')
74
91
  end
75
92
 
76
93
  it 'should only trigger onchange once' do
77
94
  @session.visit('/with_js')
78
- @session.fill_in('with_change_event', with: 'some value',
79
- fill_options: { :clear => :backspace })
95
+ @session.fill_in('with_change_event',
96
+ with: 'some value',
97
+ fill_options: { clear: :backspace })
80
98
  # click outside the field to trigger the change event
81
99
  @session.find(:css, 'body').click
82
100
  expect(@session.find(:css, '.change_event_triggered', match: :one)).to have_text 'some value'
@@ -84,19 +102,31 @@ RSpec.shared_examples "Capybara::Session" do |session, mode|
84
102
 
85
103
  it 'should trigger change when clearing field' do
86
104
  @session.visit('/with_js')
87
- @session.fill_in('with_change_event', with: '',
88
- fill_options: { :clear => :backspace })
105
+ @session.fill_in('with_change_event',
106
+ with: '',
107
+ fill_options: { clear: :backspace })
89
108
  # click outside the field to trigger the change event
90
109
  @session.find(:css, 'body').click
91
110
  expect(@session).to have_selector(:css, '.change_event_triggered', match: :one)
92
111
  end
112
+
113
+ it 'should trigger input event field_value.length times' do
114
+ @session.visit('/with_js')
115
+ @session.fill_in('with_change_event',
116
+ with: '',
117
+ fill_options: { clear: :backspace })
118
+ # click outside the field to trigger the change event
119
+ @session.find(:css, 'body').click
120
+ expect(@session).to have_xpath('//p[@class="input_event_triggered"]', count: 13)
121
+ end
93
122
  end
94
123
 
95
124
  context "#fill_in with { clear: :none } fill_options" do
96
125
  it 'should append to content in a field' do
97
126
  @session.visit('/form')
98
- @session.fill_in('form_first_name', with: 'Harry',
99
- fill_options: { clear: :none} )
127
+ @session.fill_in('form_first_name',
128
+ with: 'Harry',
129
+ fill_options: { clear: :none })
100
130
  expect(@session.find(:fillable_field, 'form_first_name').value).to eq('JohnHarry')
101
131
  end
102
132
  end
@@ -104,10 +134,11 @@ RSpec.shared_examples "Capybara::Session" do |session, mode|
104
134
  context "#fill_in with { clear: Array } fill_options" do
105
135
  it 'should pass the array through to the element' do
106
136
  pending "selenium-webdriver/geckodriver doesn't support complex sets of characters" if marionette?(@session)
107
- #this is mainly for use with [[:control, 'a'], :backspace] - however since that is platform dependant I'm testing with something less useful
137
+ # this is mainly for use with [[:control, 'a'], :backspace] - however since that is platform dependant I'm testing with something less useful
108
138
  @session.visit('/form')
109
- @session.fill_in('form_first_name', with: 'Harry',
110
- fill_options: { clear: [[:shift, 'abc'], :backspace] } )
139
+ @session.fill_in('form_first_name',
140
+ with: 'Harry',
141
+ fill_options: { clear: [[:shift, 'abc'], :backspace] })
111
142
  expect(@session.find(:fillable_field, 'form_first_name').value).to eq('JohnABHarry')
112
143
  end
113
144
  end
@@ -124,7 +155,7 @@ RSpec.shared_examples "Capybara::Session" do |session, mode|
124
155
  describe "all with disappearing elements" do
125
156
  it "ignores stale elements in results" do
126
157
  @session.visit('/path')
127
- elements = @session.all(:link) { |node| raise Selenium::WebDriver::Error::StaleElementReferenceError }
158
+ elements = @session.all(:link) { |_node| raise Selenium::WebDriver::Error::StaleElementReferenceError }
128
159
  expect(elements.size).to eq 0
129
160
  end
130
161
  end
@@ -148,12 +179,23 @@ RSpec.shared_examples "Capybara::Session" do |session, mode|
148
179
  it "can return hashes with elements" do
149
180
  @session.visit('/form')
150
181
  result = @session.evaluate_script("{ a: document.getElementById('form_title'), b: {c: document.querySelectorAll('#form_city option')}}")
151
- expect(result).to eq({
182
+ expect(result).to eq(
152
183
  'a' => @session.find(:id, 'form_title'),
153
184
  'b' => {
154
185
  'c' => @session.find(:css, '#form_city').all(:css, 'option').to_a
155
186
  }
156
- })
187
+ )
188
+ end
189
+
190
+ describe "#evaluate_async_script" do
191
+ it "will timeout if the script takes too long" do
192
+ @session.visit('/with_js')
193
+ expect do
194
+ @session.using_wait_time(1) do
195
+ @session.evaluate_async_script("var cb = arguments[0]; setTimeout(function(){ cb(null) }, 3000)")
196
+ end
197
+ end.to raise_error Selenium::WebDriver::Error::ScriptTimeoutError
198
+ end
157
199
  end
158
200
  end
159
201
 
@@ -161,9 +203,27 @@ RSpec.shared_examples "Capybara::Session" do |session, mode|
161
203
  it "outputs obsolete elements" do
162
204
  @session.visit('/form')
163
205
  el = @session.find(:button, 'Click me!').click
164
- sleep 2
206
+ expect(@session).to have_no_button('Click me!')
207
+ expect(el).not_to receive(:synchronize)
165
208
  expect(el.inspect).to eq "Obsolete #<Capybara::Node::Element>"
166
209
  end
167
210
  end
211
+
212
+ describe "Element#click" do
213
+ it "should handle fixed headers/footers" do
214
+ @session.visit('/with_fixed_header_footer')
215
+ # @session.click_link('Go to root')
216
+ @session.find(:link, 'Go to root').click
217
+ expect(@session).to have_current_path('/')
218
+ end
219
+ end
220
+
221
+ context "Windows" do
222
+ it "can't close the primary window" do
223
+ expect do
224
+ @session.current_window.close
225
+ end.to raise_error(ArgumentError, 'Not allowed to close the primary window')
226
+ end
227
+ end
168
228
  end
169
229
  end
data/spec/spec_helper.rb CHANGED
@@ -1,14 +1,11 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'rspec/expectations'
3
4
  require "capybara/spec/spec_helper"
4
- require "pry"
5
+ require 'webdrivers' if ENV['CI']
5
6
 
6
7
  RSpec.configure do |config|
7
8
  Capybara::SpecHelper.configure(config)
8
- config.filter_run_including focus_: true unless ENV['TRAVIS']
9
+ config.filter_run_including focus_: true unless ENV['CI']
9
10
  config.run_all_when_everything_filtered = true
10
11
  end
11
-
12
- def rspec2?
13
- !defined?(::RSpec::Expectations::Version) || (Gem::Version.new(RSpec::Expectations::Version::STRING) < Gem::Version.new('3.0'))
14
- end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capybara
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.15.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Walpole
@@ -10,22 +10,22 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain:
12
12
  - gem-public_cert.pem
13
- date: 2017-08-04 00:00:00.000000000 Z
13
+ date: 2018-04-05 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: nokogiri
16
+ name: addressable
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: 1.3.3
21
+ version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - ">="
27
27
  - !ruby/object:Gem::Version
28
- version: 1.3.3
28
+ version: '0'
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: mini_mime
31
31
  requirement: !ruby/object:Gem::Requirement
@@ -41,115 +41,103 @@ dependencies:
41
41
  - !ruby/object:Gem::Version
42
42
  version: 0.1.3
43
43
  - !ruby/object:Gem::Dependency
44
- name: rack
44
+ name: nokogiri
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - ">="
47
+ - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: 1.0.0
49
+ version: '1.8'
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
- - - ">="
54
+ - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: 1.0.0
56
+ version: '1.8'
57
57
  - !ruby/object:Gem::Dependency
58
- name: rack-test
58
+ name: rack
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - ">="
62
62
  - !ruby/object:Gem::Version
63
- version: 0.5.4
63
+ version: 1.6.0
64
64
  type: :runtime
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - ">="
69
69
  - !ruby/object:Gem::Version
70
- version: 0.5.4
70
+ version: 1.6.0
71
71
  - !ruby/object:Gem::Dependency
72
- name: xpath
72
+ name: rack-test
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
- - - "~>"
75
+ - - ">="
76
76
  - !ruby/object:Gem::Version
77
- version: '2.0'
77
+ version: 0.6.3
78
78
  type: :runtime
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
- - - "~>"
82
+ - - ">="
83
83
  - !ruby/object:Gem::Version
84
- version: '2.0'
84
+ version: 0.6.3
85
85
  - !ruby/object:Gem::Dependency
86
- name: addressable
86
+ name: xpath
87
87
  requirement: !ruby/object:Gem::Requirement
88
88
  requirements:
89
- - - ">="
89
+ - - "~>"
90
90
  - !ruby/object:Gem::Version
91
- version: '0'
91
+ version: '3.0'
92
92
  type: :runtime
93
93
  prerelease: false
94
94
  version_requirements: !ruby/object:Gem::Requirement
95
95
  requirements:
96
- - - ">="
96
+ - - "~>"
97
97
  - !ruby/object:Gem::Version
98
- version: '0'
98
+ version: '3.0'
99
99
  - !ruby/object:Gem::Dependency
100
- name: selenium-webdriver
100
+ name: cucumber
101
101
  requirement: !ruby/object:Gem::Requirement
102
102
  requirements:
103
103
  - - ">="
104
104
  - !ruby/object:Gem::Version
105
- version: '2.0'
106
- - - "<"
107
- - !ruby/object:Gem::Version
108
- version: '4.0'
109
- - - "!="
110
- - !ruby/object:Gem::Version
111
- version: 3.4.1
105
+ version: 2.3.0
112
106
  type: :development
113
107
  prerelease: false
114
108
  version_requirements: !ruby/object:Gem::Requirement
115
109
  requirements:
116
110
  - - ">="
117
111
  - !ruby/object:Gem::Version
118
- version: '2.0'
119
- - - "<"
120
- - !ruby/object:Gem::Version
121
- version: '4.0'
122
- - - "!="
123
- - !ruby/object:Gem::Version
124
- version: 3.4.1
112
+ version: 2.3.0
125
113
  - !ruby/object:Gem::Dependency
126
- name: sinatra
114
+ name: erubi
127
115
  requirement: !ruby/object:Gem::Requirement
128
116
  requirements:
129
117
  - - ">="
130
118
  - !ruby/object:Gem::Version
131
- version: 0.9.4
119
+ version: '0'
132
120
  type: :development
133
121
  prerelease: false
134
122
  version_requirements: !ruby/object:Gem::Requirement
135
123
  requirements:
136
124
  - - ">="
137
125
  - !ruby/object:Gem::Version
138
- version: 0.9.4
126
+ version: '0'
139
127
  - !ruby/object:Gem::Dependency
140
- name: rspec
128
+ name: fuubar
141
129
  requirement: !ruby/object:Gem::Requirement
142
130
  requirements:
143
131
  - - ">="
144
132
  - !ruby/object:Gem::Version
145
- version: 2.2.0
133
+ version: 1.0.0
146
134
  type: :development
147
135
  prerelease: false
148
136
  version_requirements: !ruby/object:Gem::Requirement
149
137
  requirements:
150
138
  - - ">="
151
139
  - !ruby/object:Gem::Version
152
- version: 2.2.0
140
+ version: 1.0.0
153
141
  - !ruby/object:Gem::Dependency
154
142
  name: launchy
155
143
  requirement: !ruby/object:Gem::Requirement
@@ -165,49 +153,35 @@ dependencies:
165
153
  - !ruby/object:Gem::Version
166
154
  version: 2.0.4
167
155
  - !ruby/object:Gem::Dependency
168
- name: yard
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- version: 0.5.8
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- version: 0.5.8
181
- - !ruby/object:Gem::Dependency
182
- name: fuubar
156
+ name: minitest
183
157
  requirement: !ruby/object:Gem::Requirement
184
158
  requirements:
185
159
  - - ">="
186
160
  - !ruby/object:Gem::Version
187
- version: 0.0.1
161
+ version: '0'
188
162
  type: :development
189
163
  prerelease: false
190
164
  version_requirements: !ruby/object:Gem::Requirement
191
165
  requirements:
192
166
  - - ">="
193
167
  - !ruby/object:Gem::Version
194
- version: 0.0.1
168
+ version: '0'
195
169
  - !ruby/object:Gem::Dependency
196
- name: cucumber
170
+ name: puma
197
171
  requirement: !ruby/object:Gem::Requirement
198
172
  requirements:
199
173
  - - ">="
200
174
  - !ruby/object:Gem::Version
201
- version: 0.10.5
175
+ version: '0'
202
176
  type: :development
203
177
  prerelease: false
204
178
  version_requirements: !ruby/object:Gem::Requirement
205
179
  requirements:
206
180
  - - ">="
207
181
  - !ruby/object:Gem::Version
208
- version: 0.10.5
182
+ version: '0'
209
183
  - !ruby/object:Gem::Dependency
210
- name: minitest
184
+ name: rake
211
185
  requirement: !ruby/object:Gem::Requirement
212
186
  requirements:
213
187
  - - ">="
@@ -221,61 +195,73 @@ dependencies:
221
195
  - !ruby/object:Gem::Version
222
196
  version: '0'
223
197
  - !ruby/object:Gem::Dependency
224
- name: rake
198
+ name: rspec
225
199
  requirement: !ruby/object:Gem::Requirement
226
200
  requirements:
227
201
  - - ">="
228
202
  - !ruby/object:Gem::Version
229
- version: '0'
203
+ version: 3.4.0
230
204
  type: :development
231
205
  prerelease: false
232
206
  version_requirements: !ruby/object:Gem::Requirement
233
207
  requirements:
234
208
  - - ">="
235
209
  - !ruby/object:Gem::Version
236
- version: '0'
210
+ version: 3.4.0
237
211
  - !ruby/object:Gem::Dependency
238
- name: puma
212
+ name: selenium-webdriver
239
213
  requirement: !ruby/object:Gem::Requirement
240
214
  requirements:
241
215
  - - ">="
242
216
  - !ruby/object:Gem::Version
243
- version: '0'
217
+ version: '3.0'
218
+ - - "<"
219
+ - !ruby/object:Gem::Version
220
+ version: '4.0'
221
+ - - "!="
222
+ - !ruby/object:Gem::Version
223
+ version: 3.4.1
244
224
  type: :development
245
225
  prerelease: false
246
226
  version_requirements: !ruby/object:Gem::Requirement
247
227
  requirements:
248
228
  - - ">="
249
229
  - !ruby/object:Gem::Version
250
- version: '0'
230
+ version: '3.0'
231
+ - - "<"
232
+ - !ruby/object:Gem::Version
233
+ version: '4.0'
234
+ - - "!="
235
+ - !ruby/object:Gem::Version
236
+ version: 3.4.1
251
237
  - !ruby/object:Gem::Dependency
252
- name: pry
238
+ name: sinatra
253
239
  requirement: !ruby/object:Gem::Requirement
254
240
  requirements:
255
241
  - - ">="
256
242
  - !ruby/object:Gem::Version
257
- version: '0'
243
+ version: 1.4.0
258
244
  type: :development
259
245
  prerelease: false
260
246
  version_requirements: !ruby/object:Gem::Requirement
261
247
  requirements:
262
248
  - - ">="
263
249
  - !ruby/object:Gem::Version
264
- version: '0'
250
+ version: 1.4.0
265
251
  - !ruby/object:Gem::Dependency
266
- name: erubi
252
+ name: yard
267
253
  requirement: !ruby/object:Gem::Requirement
268
254
  requirements:
269
255
  - - ">="
270
256
  - !ruby/object:Gem::Version
271
- version: '0'
257
+ version: 0.9.0
272
258
  type: :development
273
259
  prerelease: false
274
260
  version_requirements: !ruby/object:Gem::Requirement
275
261
  requirements:
276
262
  - - ">="
277
263
  - !ruby/object:Gem::Version
278
- version: '0'
264
+ version: 0.9.0
279
265
  description: Capybara is an integration testing tool for rack based web applications.
280
266
  It simulates how a user would interact with a website
281
267
  email:
@@ -317,7 +303,6 @@ files:
317
303
  - lib/capybara/queries/sibling_query.rb
318
304
  - lib/capybara/queries/text_query.rb
319
305
  - lib/capybara/queries/title_query.rb
320
- - lib/capybara/query.rb
321
306
  - lib/capybara/rack_test/browser.rb
322
307
  - lib/capybara/rack_test/css_handlers.rb
323
308
  - lib/capybara/rack_test/driver.rb
@@ -346,6 +331,7 @@ files:
346
331
  - lib/capybara/session/matchers.rb
347
332
  - lib/capybara/spec/fixtures/another_test_file.txt
348
333
  - lib/capybara/spec/fixtures/capybara.jpg
334
+ - lib/capybara/spec/fixtures/no_extension
349
335
  - lib/capybara/spec/fixtures/test_file.txt
350
336
  - lib/capybara/spec/public/jquery-ui.js
351
337
  - lib/capybara/spec/public/jquery.js
@@ -375,6 +361,7 @@ files:
375
361
  - lib/capybara/spec/session/element/match_css_spec.rb
376
362
  - lib/capybara/spec/session/element/match_xpath_spec.rb
377
363
  - lib/capybara/spec/session/element/matches_selector_spec.rb
364
+ - lib/capybara/spec/session/evaluate_async_script_spec.rb
378
365
  - lib/capybara/spec/session/evaluate_script_spec.rb
379
366
  - lib/capybara/spec/session/execute_script_spec.rb
380
367
  - lib/capybara/spec/session/fill_in_spec.rb
@@ -384,15 +371,19 @@ files:
384
371
  - lib/capybara/spec/session/find_link_spec.rb
385
372
  - lib/capybara/spec/session/find_spec.rb
386
373
  - lib/capybara/spec/session/first_spec.rb
374
+ - lib/capybara/spec/session/frame/frame_title_spec.rb
375
+ - lib/capybara/spec/session/frame/frame_url_spec.rb
387
376
  - lib/capybara/spec/session/frame/switch_to_frame_spec.rb
388
377
  - lib/capybara/spec/session/frame/within_frame_spec.rb
389
378
  - lib/capybara/spec/session/go_back_spec.rb
390
379
  - lib/capybara/spec/session/go_forward_spec.rb
380
+ - lib/capybara/spec/session/has_all_selectors_spec.rb
391
381
  - lib/capybara/spec/session/has_button_spec.rb
392
382
  - lib/capybara/spec/session/has_css_spec.rb
393
383
  - lib/capybara/spec/session/has_current_path_spec.rb
394
384
  - lib/capybara/spec/session/has_field_spec.rb
395
385
  - lib/capybara/spec/session/has_link_spec.rb
386
+ - lib/capybara/spec/session/has_none_selectors_spec.rb
396
387
  - lib/capybara/spec/session/has_select_spec.rb
397
388
  - lib/capybara/spec/session/has_selector_spec.rb
398
389
  - lib/capybara/spec/session/has_table_spec.rb
@@ -402,6 +393,7 @@ files:
402
393
  - lib/capybara/spec/session/headers.rb
403
394
  - lib/capybara/spec/session/html_spec.rb
404
395
  - lib/capybara/spec/session/node_spec.rb
396
+ - lib/capybara/spec/session/node_wrapper_spec.rb
405
397
  - lib/capybara/spec/session/refresh_spec.rb
406
398
  - lib/capybara/spec/session/reset_session_spec.rb
407
399
  - lib/capybara/spec/session/response_code.rb
@@ -439,6 +431,7 @@ files:
439
431
  - lib/capybara/spec/views/frame_two.erb
440
432
  - lib/capybara/spec/views/header_links.erb
441
433
  - lib/capybara/spec/views/host_links.erb
434
+ - lib/capybara/spec/views/initial_alert.erb
442
435
  - lib/capybara/spec/views/path.erb
443
436
  - lib/capybara/spec/views/popup_one.erb
444
437
  - lib/capybara/spec/views/popup_two.erb
@@ -446,6 +439,7 @@ files:
446
439
  - lib/capybara/spec/views/tables.erb
447
440
  - lib/capybara/spec/views/with_base_tag.erb
448
441
  - lib/capybara/spec/views/with_count.erb
442
+ - lib/capybara/spec/views/with_fixed_header_footer.erb
449
443
  - lib/capybara/spec/views/with_hover.erb
450
444
  - lib/capybara/spec/views/with_html.erb
451
445
  - lib/capybara/spec/views/with_html_entities.erb
@@ -479,7 +473,8 @@ files:
479
473
  - spec/rspec_spec.rb
480
474
  - spec/selector_spec.rb
481
475
  - spec/selenium_spec_chrome.rb
482
- - spec/selenium_spec_firefox.rb
476
+ - spec/selenium_spec_edge.rb
477
+ - spec/selenium_spec_ie.rb
483
478
  - spec/selenium_spec_marionette.rb
484
479
  - spec/server_spec.rb
485
480
  - spec/session_spec.rb
@@ -497,7 +492,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
497
492
  requirements:
498
493
  - - ">="
499
494
  - !ruby/object:Gem::Version
500
- version: 1.9.3
495
+ version: 2.2.2
501
496
  required_rubygems_version: !ruby/object:Gem::Requirement
502
497
  requirements:
503
498
  - - ">="
@@ -505,7 +500,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
505
500
  version: '0'
506
501
  requirements: []
507
502
  rubyforge_project:
508
- rubygems_version: 2.6.11
503
+ rubygems_version: 2.7.6
509
504
  signing_key:
510
505
  specification_version: 4
511
506
  summary: Capybara aims to simplify the process of integration testing Rack applications,
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'capybara/queries/selector_query'
3
- module Capybara
4
- # @deprecated This class and its methods are not supposed to be used by users of Capybara's public API.
5
- # It may be removed in future versions of Capybara.
6
- Query = Queries::SelectorQuery
7
- end