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.
- checksums.yaml +5 -5
- data/History.md +137 -2
- data/README.md +36 -25
- data/lib/capybara/config.rb +11 -57
- data/lib/capybara/cucumber.rb +2 -3
- data/lib/capybara/driver/base.rb +19 -16
- data/lib/capybara/driver/node.rb +5 -4
- data/lib/capybara/dsl.rb +1 -0
- data/lib/capybara/helpers.rb +19 -29
- data/lib/capybara/minitest/spec.rb +16 -13
- data/lib/capybara/minitest.rb +140 -137
- data/lib/capybara/node/actions.rb +68 -89
- data/lib/capybara/node/base.rb +11 -18
- data/lib/capybara/node/document.rb +2 -2
- data/lib/capybara/node/document_matchers.rb +8 -8
- data/lib/capybara/node/element.rb +32 -42
- data/lib/capybara/node/finders.rb +64 -71
- data/lib/capybara/node/matchers.rb +50 -71
- data/lib/capybara/node/simple.rb +11 -17
- data/lib/capybara/queries/ancestor_query.rb +12 -8
- data/lib/capybara/queries/base_query.rb +22 -18
- data/lib/capybara/queries/current_path_query.rb +12 -25
- data/lib/capybara/queries/match_query.rb +3 -7
- data/lib/capybara/queries/selector_query.rb +100 -96
- data/lib/capybara/queries/sibling_query.rb +5 -5
- data/lib/capybara/queries/text_query.rb +35 -35
- data/lib/capybara/queries/title_query.rb +8 -11
- data/lib/capybara/rack_test/browser.rb +15 -18
- data/lib/capybara/rack_test/css_handlers.rb +6 -4
- data/lib/capybara/rack_test/driver.rb +6 -10
- data/lib/capybara/rack_test/form.rb +52 -39
- data/lib/capybara/rack_test/node.rb +93 -63
- data/lib/capybara/rails.rb +2 -6
- data/lib/capybara/result.rb +22 -22
- data/lib/capybara/rspec/compound.rb +5 -10
- data/lib/capybara/rspec/features.rb +17 -48
- data/lib/capybara/rspec/matcher_proxies.rb +31 -15
- data/lib/capybara/rspec/matchers.rb +116 -58
- data/lib/capybara/rspec.rb +5 -10
- data/lib/capybara/selector/css.rb +6 -11
- data/lib/capybara/selector/filter.rb +1 -17
- data/lib/capybara/selector/filter_set.rb +18 -15
- data/lib/capybara/selector/filters/base.rb +7 -6
- data/lib/capybara/selector/filters/expression_filter.rb +6 -23
- data/lib/capybara/selector/filters/node_filter.rb +2 -12
- data/lib/capybara/selector/selector.rb +28 -34
- data/lib/capybara/selector.rb +129 -117
- data/lib/capybara/selenium/driver.rb +172 -163
- data/lib/capybara/selenium/node.rb +218 -104
- data/lib/capybara/server.rb +3 -2
- data/lib/capybara/session/config.rb +47 -59
- data/lib/capybara/session/matchers.rb +23 -14
- data/lib/capybara/session.rb +175 -229
- data/lib/capybara/spec/fixtures/no_extension +1 -0
- data/lib/capybara/spec/public/test.js +38 -6
- data/lib/capybara/spec/session/accept_alert_spec.rb +1 -0
- data/lib/capybara/spec/session/accept_confirm_spec.rb +3 -2
- data/lib/capybara/spec/session/accept_prompt_spec.rb +30 -1
- data/lib/capybara/spec/session/all_spec.rb +31 -18
- data/lib/capybara/spec/session/ancestor_spec.rb +6 -8
- data/lib/capybara/spec/session/assert_all_of_selectors_spec.rb +6 -5
- data/lib/capybara/spec/session/assert_current_path.rb +12 -11
- data/lib/capybara/spec/session/assert_selector.rb +1 -0
- data/lib/capybara/spec/session/assert_text.rb +31 -23
- data/lib/capybara/spec/session/assert_title.rb +13 -3
- data/lib/capybara/spec/session/attach_file_spec.rb +57 -29
- data/lib/capybara/spec/session/body_spec.rb +1 -0
- data/lib/capybara/spec/session/check_spec.rb +7 -6
- data/lib/capybara/spec/session/choose_spec.rb +5 -4
- data/lib/capybara/spec/session/click_button_spec.rb +24 -32
- data/lib/capybara/spec/session/click_link_or_button_spec.rb +8 -7
- data/lib/capybara/spec/session/click_link_spec.rb +8 -7
- data/lib/capybara/spec/session/current_scope_spec.rb +4 -3
- data/lib/capybara/spec/session/current_url_spec.rb +19 -8
- data/lib/capybara/spec/session/dismiss_confirm_spec.rb +1 -1
- data/lib/capybara/spec/session/dismiss_prompt_spec.rb +1 -0
- data/lib/capybara/spec/session/element/assert_match_selector.rb +1 -1
- data/lib/capybara/spec/session/element/match_xpath_spec.rb +1 -1
- data/lib/capybara/spec/session/element/matches_selector_spec.rb +5 -5
- data/lib/capybara/spec/session/evaluate_async_script_spec.rb +23 -0
- data/lib/capybara/spec/session/evaluate_script_spec.rb +5 -4
- data/lib/capybara/spec/session/execute_script_spec.rb +4 -3
- data/lib/capybara/spec/session/fill_in_spec.rb +30 -5
- data/lib/capybara/spec/session/find_button_spec.rb +4 -3
- data/lib/capybara/spec/session/find_by_id_spec.rb +2 -1
- data/lib/capybara/spec/session/find_field_spec.rb +9 -15
- data/lib/capybara/spec/session/find_link_spec.rb +6 -5
- data/lib/capybara/spec/session/find_spec.rb +37 -31
- data/lib/capybara/spec/session/first_spec.rb +60 -33
- data/lib/capybara/spec/session/frame/frame_title_spec.rb +23 -0
- data/lib/capybara/spec/session/frame/frame_url_spec.rb +23 -0
- data/lib/capybara/spec/session/frame/switch_to_frame_spec.rb +2 -1
- data/lib/capybara/spec/session/frame/within_frame_spec.rb +9 -16
- data/lib/capybara/spec/session/go_back_spec.rb +1 -0
- data/lib/capybara/spec/session/go_forward_spec.rb +1 -0
- data/lib/capybara/spec/session/has_all_selectors_spec.rb +69 -0
- data/lib/capybara/spec/session/has_button_spec.rb +2 -1
- data/lib/capybara/spec/session/has_css_spec.rb +3 -2
- data/lib/capybara/spec/session/has_current_path_spec.rb +49 -22
- data/lib/capybara/spec/session/has_field_spec.rb +4 -3
- data/lib/capybara/spec/session/has_link_spec.rb +5 -4
- data/lib/capybara/spec/session/has_none_selectors_spec.rb +76 -0
- data/lib/capybara/spec/session/has_select_spec.rb +32 -31
- data/lib/capybara/spec/session/has_selector_spec.rb +5 -4
- data/lib/capybara/spec/session/has_table_spec.rb +2 -1
- data/lib/capybara/spec/session/has_text_spec.rb +9 -13
- data/lib/capybara/spec/session/has_title_spec.rb +1 -0
- data/lib/capybara/spec/session/has_xpath_spec.rb +1 -0
- data/lib/capybara/spec/session/headers.rb +2 -1
- data/lib/capybara/spec/session/html_spec.rb +1 -0
- data/lib/capybara/spec/session/node_spec.rb +107 -58
- data/lib/capybara/spec/session/node_wrapper_spec.rb +36 -0
- data/lib/capybara/spec/session/refresh_spec.rb +6 -2
- data/lib/capybara/spec/session/reset_session_spec.rb +19 -0
- data/lib/capybara/spec/session/response_code.rb +1 -0
- data/lib/capybara/spec/session/save_and_open_page_spec.rb +1 -0
- data/lib/capybara/spec/session/save_and_open_screenshot_spec.rb +6 -11
- data/lib/capybara/spec/session/save_page_spec.rb +1 -17
- data/lib/capybara/spec/session/save_screenshot_spec.rb +3 -3
- data/lib/capybara/spec/session/select_spec.rb +21 -20
- data/lib/capybara/spec/session/selectors_spec.rb +2 -2
- data/lib/capybara/spec/session/sibling_spec.rb +1 -1
- data/lib/capybara/spec/session/text_spec.rb +17 -3
- data/lib/capybara/spec/session/title_spec.rb +11 -1
- data/lib/capybara/spec/session/uncheck_spec.rb +4 -3
- data/lib/capybara/spec/session/unselect_spec.rb +7 -6
- data/lib/capybara/spec/session/visit_spec.rb +64 -3
- data/lib/capybara/spec/session/window/become_closed_spec.rb +2 -1
- data/lib/capybara/spec/session/window/current_window_spec.rb +1 -0
- data/lib/capybara/spec/session/window/open_new_window_spec.rb +1 -0
- data/lib/capybara/spec/session/window/switch_to_window_spec.rb +2 -1
- data/lib/capybara/spec/session/window/window_opened_by_spec.rb +2 -1
- data/lib/capybara/spec/session/window/window_spec.rb +12 -12
- data/lib/capybara/spec/session/window/windows_spec.rb +2 -3
- data/lib/capybara/spec/session/window/within_window_spec.rb +15 -71
- data/lib/capybara/spec/session/within_spec.rb +1 -0
- data/lib/capybara/spec/spec_helper.rb +36 -18
- data/lib/capybara/spec/test_app.rb +17 -9
- data/lib/capybara/spec/views/form.erb +7 -0
- data/lib/capybara/spec/views/initial_alert.erb +10 -0
- data/lib/capybara/spec/views/with_fixed_header_footer.erb +17 -0
- data/lib/capybara/spec/views/with_hover.erb +5 -0
- data/lib/capybara/spec/views/with_html.erb +27 -1
- data/lib/capybara/spec/views/with_js.erb +11 -0
- data/lib/capybara/spec/views/within_frames.erb +4 -1
- data/lib/capybara/version.rb +2 -1
- data/lib/capybara/window.rb +6 -10
- data/lib/capybara.rb +29 -26
- data/spec/basic_node_spec.rb +1 -0
- data/spec/capybara_spec.rb +16 -69
- data/spec/dsl_spec.rb +5 -13
- data/spec/filter_set_spec.rb +5 -4
- data/spec/fixtures/selenium_driver_rspec_failure.rb +2 -1
- data/spec/fixtures/selenium_driver_rspec_success.rb +3 -2
- data/spec/minitest_spec.rb +13 -4
- data/spec/minitest_spec_spec.rb +12 -3
- data/spec/per_session_config_spec.rb +9 -8
- data/spec/rack_test_spec.rb +21 -20
- data/spec/result_spec.rb +17 -16
- data/spec/rspec/features_spec.rb +17 -14
- data/spec/rspec/scenarios_spec.rb +5 -7
- data/spec/rspec/shared_spec_matchers.rb +96 -99
- data/spec/rspec/views_spec.rb +2 -1
- data/spec/rspec_matchers_spec.rb +18 -2
- data/spec/rspec_spec.rb +11 -15
- data/spec/selector_spec.rb +5 -6
- data/spec/selenium_spec_chrome.rb +20 -11
- data/spec/selenium_spec_edge.rb +27 -0
- data/spec/selenium_spec_ie.rb +31 -0
- data/spec/selenium_spec_marionette.rb +38 -12
- data/spec/server_spec.rb +33 -33
- data/spec/session_spec.rb +2 -1
- data/spec/shared_selenium_session.rb +82 -22
- data/spec/spec_helper.rb +3 -6
- metadata +76 -81
- data/lib/capybara/query.rb +0 -7
- 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(
|
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(
|
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(
|
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',
|
72
|
-
|
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',
|
79
|
-
|
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',
|
88
|
-
|
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',
|
99
|
-
|
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',
|
110
|
-
|
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) { |
|
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
|
-
|
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
|
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['
|
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:
|
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:
|
13
|
+
date: 2018-04-05 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
16
|
+
name: addressable
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
19
|
- - ">="
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
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:
|
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:
|
44
|
+
name: nokogiri
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- - "
|
47
|
+
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: 1.
|
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.
|
56
|
+
version: '1.8'
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
|
-
name: rack
|
58
|
+
name: rack
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
61
|
- - ">="
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version:
|
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:
|
70
|
+
version: 1.6.0
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
|
-
name:
|
72
|
+
name: rack-test
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
|
-
- - "
|
75
|
+
- - ">="
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
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:
|
84
|
+
version: 0.6.3
|
85
85
|
- !ruby/object:Gem::Dependency
|
86
|
-
name:
|
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:
|
100
|
+
name: cucumber
|
101
101
|
requirement: !ruby/object:Gem::Requirement
|
102
102
|
requirements:
|
103
103
|
- - ">="
|
104
104
|
- !ruby/object:Gem::Version
|
105
|
-
version:
|
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:
|
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:
|
114
|
+
name: erubi
|
127
115
|
requirement: !ruby/object:Gem::Requirement
|
128
116
|
requirements:
|
129
117
|
- - ">="
|
130
118
|
- !ruby/object:Gem::Version
|
131
|
-
version: 0
|
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
|
126
|
+
version: '0'
|
139
127
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
128
|
+
name: fuubar
|
141
129
|
requirement: !ruby/object:Gem::Requirement
|
142
130
|
requirements:
|
143
131
|
- - ">="
|
144
132
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
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:
|
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:
|
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
|
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
|
168
|
+
version: '0'
|
195
169
|
- !ruby/object:Gem::Dependency
|
196
|
-
name:
|
170
|
+
name: puma
|
197
171
|
requirement: !ruby/object:Gem::Requirement
|
198
172
|
requirements:
|
199
173
|
- - ">="
|
200
174
|
- !ruby/object:Gem::Version
|
201
|
-
version: 0
|
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
|
182
|
+
version: '0'
|
209
183
|
- !ruby/object:Gem::Dependency
|
210
|
-
name:
|
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:
|
198
|
+
name: rspec
|
225
199
|
requirement: !ruby/object:Gem::Requirement
|
226
200
|
requirements:
|
227
201
|
- - ">="
|
228
202
|
- !ruby/object:Gem::Version
|
229
|
-
version:
|
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:
|
210
|
+
version: 3.4.0
|
237
211
|
- !ruby/object:Gem::Dependency
|
238
|
-
name:
|
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:
|
238
|
+
name: sinatra
|
253
239
|
requirement: !ruby/object:Gem::Requirement
|
254
240
|
requirements:
|
255
241
|
- - ">="
|
256
242
|
- !ruby/object:Gem::Version
|
257
|
-
version:
|
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:
|
250
|
+
version: 1.4.0
|
265
251
|
- !ruby/object:Gem::Dependency
|
266
|
-
name:
|
252
|
+
name: yard
|
267
253
|
requirement: !ruby/object:Gem::Requirement
|
268
254
|
requirements:
|
269
255
|
- - ">="
|
270
256
|
- !ruby/object:Gem::Version
|
271
|
-
version:
|
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:
|
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/
|
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:
|
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
|
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,
|
data/lib/capybara/query.rb
DELETED
@@ -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
|