capybara 2.15.0 → 3.0.0

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 (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