capybara 2.8.1 → 2.9.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 (35) hide show
  1. checksums.yaml +4 -4
  2. data/.yard/templates_custom/default/class/html/selectors.erb +38 -0
  3. data/.yard/templates_custom/default/class/html/setup.rb +17 -0
  4. data/.yard/yard_extensions.rb +78 -0
  5. data/.yardopts +1 -0
  6. data/History.md +13 -1
  7. data/README.md +1 -1
  8. data/lib/capybara/helpers.rb +0 -59
  9. data/lib/capybara/node/actions.rb +17 -11
  10. data/lib/capybara/node/finders.rb +9 -0
  11. data/lib/capybara/node/matchers.rb +54 -15
  12. data/lib/capybara/queries/base_query.rb +59 -3
  13. data/lib/capybara/queries/selector_query.rb +7 -16
  14. data/lib/capybara/queries/text_query.rb +11 -10
  15. data/lib/capybara/rack_test/form.rb +2 -1
  16. data/lib/capybara/result.rb +25 -10
  17. data/lib/capybara/rspec/features.rb +3 -2
  18. data/lib/capybara/rspec/matchers.rb +1 -1
  19. data/lib/capybara/selector.rb +277 -175
  20. data/lib/capybara/selector/filter_set.rb +3 -1
  21. data/lib/capybara/selector/selector.rb +227 -0
  22. data/lib/capybara/session.rb +2 -2
  23. data/lib/capybara/spec/session/element/matches_selector_spec.rb +29 -1
  24. data/lib/capybara/spec/session/selectors_spec.rb +12 -0
  25. data/lib/capybara/spec/views/form.erb +11 -0
  26. data/lib/capybara/version.rb +1 -1
  27. data/spec/fixtures/capybara.csv +1 -0
  28. data/spec/fixtures/selenium_driver_rspec_failure.rb +1 -1
  29. data/spec/fixtures/selenium_driver_rspec_success.rb +1 -1
  30. data/spec/rack_test_spec.rb +8 -0
  31. data/spec/result_spec.rb +3 -0
  32. data/spec/selenium_firefox_spec.rb +44 -0
  33. data/spec/selenium_spec_chrome.rb +5 -2
  34. data/spec/{selenium_spec.rb → shared_selenium_session.rb} +9 -43
  35. metadata +10 -3
@@ -2,32 +2,12 @@
2
2
  require 'spec_helper'
3
3
  require "selenium-webdriver"
4
4
 
5
- Selenium::WebDriver::Firefox.driver_path = '/home/travis/geckodriver' if ENV['TRAVIS'] && ENV['GECKODRIVER']
5
+ RSpec.shared_examples "Capybara::Session" do |session, mode|
6
+ let(:session) {session}
6
7
 
7
- Capybara.register_driver :selenium_focus do |app|
8
- # profile = Selenium::WebDriver::Firefox::Profile.new
9
- # profile["focusmanager.testmode"] = true
10
- # Capybara::Selenium::Driver.new(app, browser: :firefox, profile: profile)
11
- Capybara::Selenium::Driver.new(app, browser: :firefox)
12
- end
13
-
14
- module TestSessions
15
- Selenium = Capybara::Session.new(:selenium_focus, TestApp)
16
- end
17
-
18
- skipped_tests = [
19
- :response_headers,
20
- :status_code,
21
- :trigger
22
- ]
23
- skipped_tests << :windows if ENV['TRAVIS'] && !ENV['WINDOW_TEST']
24
-
25
- Capybara::SpecHelper.run_specs TestSessions::Selenium, "selenium", :capybara_skip => skipped_tests
26
-
27
- RSpec.describe Capybara::Session do
28
8
  context 'with selenium driver' do
29
9
  before do
30
- @session = TestSessions::Selenium
10
+ @session = session
31
11
  end
32
12
 
33
13
  describe '#driver' do
@@ -38,7 +18,7 @@ RSpec.describe Capybara::Session do
38
18
 
39
19
  describe '#mode' do
40
20
  it "should remember the mode" do
41
- expect(@session.mode).to eq(:selenium_focus)
21
+ expect(@session.mode).to eq(mode)
42
22
  end
43
23
  end
44
24
 
@@ -61,13 +41,15 @@ RSpec.describe Capybara::Session do
61
41
  end
62
42
 
63
43
  it "should have return code 1 when running selenium_driver_rspec_failure.rb" do
44
+ ENV['SELENIUM_BROWSER'] = @session.driver.options[:browser].to_s
64
45
  `rspec spec/fixtures/selenium_driver_rspec_failure.rb`
65
- expect($?.exitstatus).to be 1
46
+ expect($?.exitstatus).to eq(1)
66
47
  end
67
48
 
68
49
  it "should have return code 0 when running selenium_driver_rspec_success.rb" do
50
+ ENV['SELENIUM_BROWSER'] = @session.driver.options[:browser].to_s
69
51
  `rspec spec/fixtures/selenium_driver_rspec_success.rb`
70
- expect($?.exitstatus).to be 0
52
+ expect($?.exitstatus).to eq(0)
71
53
  end
72
54
  end
73
55
 
@@ -76,7 +58,7 @@ RSpec.describe Capybara::Session do
76
58
  @session.visit('/with_js')
77
59
  @session.click_link('Open alert')
78
60
  @session.accept_alert
79
- expect{@session.driver.browser.switch_to.alert}.to raise_error("No alert is present")
61
+ expect{@session.driver.browser.switch_to.alert}.to raise_error(Selenium::WebDriver::Error::NoAlertPresentError)
80
62
  end
81
63
  end
82
64
 
@@ -136,19 +118,3 @@ RSpec.describe Capybara::Session do
136
118
  end
137
119
  end
138
120
  end
139
-
140
- RSpec.describe Capybara::Selenium::Driver do
141
- before do
142
- @driver = Capybara::Selenium::Driver.new(TestApp, browser: :firefox)
143
- end
144
-
145
- describe '#quit' do
146
- it "should reset browser when quit" do
147
- expect(@driver.browser).to be
148
- @driver.quit
149
- #access instance variable directly so we don't create a new browser instance
150
- expect(@driver.instance_variable_get(:@browser)).to be_nil
151
- end
152
- end
153
- end
154
-
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.8.1
4
+ version: 2.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Walpole
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain:
12
12
  - gem-public_cert.pem
13
- date: 2016-08-25 00:00:00.000000000 Z
13
+ date: 2016-09-19 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri
@@ -245,6 +245,10 @@ executables: []
245
245
  extensions: []
246
246
  extra_rdoc_files: []
247
247
  files:
248
+ - ".yard/templates_custom/default/class/html/selectors.erb"
249
+ - ".yard/templates_custom/default/class/html/setup.rb"
250
+ - ".yard/yard_extensions.rb"
251
+ - ".yardopts"
248
252
  - History.md
249
253
  - License.txt
250
254
  - README.md
@@ -282,6 +286,7 @@ files:
282
286
  - lib/capybara/selector.rb
283
287
  - lib/capybara/selector/filter.rb
284
288
  - lib/capybara/selector/filter_set.rb
289
+ - lib/capybara/selector/selector.rb
285
290
  - lib/capybara/selenium/driver.rb
286
291
  - lib/capybara/selenium/node.rb
287
292
  - lib/capybara/server.rb
@@ -400,6 +405,7 @@ files:
400
405
  - spec/basic_node_spec.rb
401
406
  - spec/capybara_spec.rb
402
407
  - spec/dsl_spec.rb
408
+ - spec/fixtures/capybara.csv
403
409
  - spec/fixtures/selenium_driver_rspec_failure.rb
404
410
  - spec/fixtures/selenium_driver_rspec_success.rb
405
411
  - spec/rack_test_spec.rb
@@ -410,9 +416,10 @@ files:
410
416
  - spec/rspec/views_spec.rb
411
417
  - spec/rspec_spec.rb
412
418
  - spec/selector_spec.rb
413
- - spec/selenium_spec.rb
419
+ - spec/selenium_firefox_spec.rb
414
420
  - spec/selenium_spec_chrome.rb
415
421
  - spec/server_spec.rb
422
+ - spec/shared_selenium_session.rb
416
423
  - spec/spec_helper.rb
417
424
  homepage: https://github.com/jnicklas/capybara
418
425
  licenses: