capybara 3.14.0 → 3.15.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 (46) hide show
  1. checksums.yaml +4 -4
  2. data/History.md +13 -0
  3. data/README.md +2 -1
  4. data/lib/capybara/node/actions.rb +37 -6
  5. data/lib/capybara/node/matchers.rb +10 -2
  6. data/lib/capybara/selector.rb +117 -1
  7. data/lib/capybara/selector/selector.rb +7 -0
  8. data/lib/capybara/selector/xpath_extensions.rb +9 -0
  9. data/lib/capybara/selenium/driver.rb +13 -2
  10. data/lib/capybara/selenium/driver_specializations/safari_driver.rb +15 -0
  11. data/lib/capybara/selenium/extensions/find.rb +2 -1
  12. data/lib/capybara/selenium/node.rb +1 -1
  13. data/lib/capybara/selenium/nodes/firefox_node.rb +1 -1
  14. data/lib/capybara/selenium/nodes/safari_node.rb +145 -0
  15. data/lib/capybara/spec/session/attach_file_spec.rb +46 -27
  16. data/lib/capybara/spec/session/click_button_spec.rb +65 -60
  17. data/lib/capybara/spec/session/element/matches_selector_spec.rb +40 -39
  18. data/lib/capybara/spec/session/fill_in_spec.rb +3 -3
  19. data/lib/capybara/spec/session/find_spec.rb +5 -0
  20. data/lib/capybara/spec/session/has_table_spec.rb +120 -0
  21. data/lib/capybara/spec/session/node_spec.rb +3 -3
  22. data/lib/capybara/spec/session/reset_session_spec.rb +8 -7
  23. data/lib/capybara/spec/session/window/become_closed_spec.rb +20 -17
  24. data/lib/capybara/spec/session/window/window_spec.rb +44 -48
  25. data/lib/capybara/spec/views/form.erb +5 -0
  26. data/lib/capybara/spec/views/tables.erb +67 -0
  27. data/lib/capybara/spec/views/with_html.erb +2 -2
  28. data/lib/capybara/spec/views/with_js.erb +1 -0
  29. data/lib/capybara/version.rb +1 -1
  30. data/spec/capybara_spec.rb +4 -4
  31. data/spec/css_builder_spec.rb +2 -0
  32. data/spec/dsl_spec.rb +13 -17
  33. data/spec/rack_test_spec.rb +77 -85
  34. data/spec/rspec/features_spec.rb +2 -0
  35. data/spec/rspec/shared_spec_matchers.rb +34 -35
  36. data/spec/rspec_spec.rb +11 -13
  37. data/spec/selector_spec.rb +31 -0
  38. data/spec/selenium_spec_chrome.rb +25 -25
  39. data/spec/selenium_spec_firefox.rb +62 -35
  40. data/spec/selenium_spec_firefox_remote.rb +2 -0
  41. data/spec/selenium_spec_safari.rb +148 -0
  42. data/spec/server_spec.rb +40 -44
  43. data/spec/shared_selenium_session.rb +27 -21
  44. data/spec/spec_helper.rb +4 -0
  45. data/spec/xpath_builder_spec.rb +2 -0
  46. metadata +7 -3
@@ -40,6 +40,10 @@ module Capybara
40
40
  %i[internet_explorer ie].include?(browser_name(session))
41
41
  end
42
42
 
43
+ def safari?(session)
44
+ %i[safari Safari Safari_Technology_Preview].include?(browser_name(session))
45
+ end
46
+
43
47
  def browser_name(session)
44
48
  session.driver.browser.browser if session.respond_to?(:driver)
45
49
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
+ # rubocop:disable RSpec/InstanceVariable
5
6
  RSpec.describe Capybara::Selector::XPathBuilder do
6
7
  let :builder do
7
8
  ::Capybara::Selector::XPathBuilder.new(@xpath)
@@ -89,3 +90,4 @@ RSpec.describe Capybara::Selector::XPathBuilder do
89
90
  end
90
91
  end
91
92
  end
93
+ # rubocop:enable RSpec/InstanceVariable
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: 3.14.0
4
+ version: 3.15.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: 2019-02-25 00:00:00.000000000 Z
13
+ date: 2019-03-19 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: addressable
@@ -405,16 +405,19 @@ files:
405
405
  - lib/capybara/selector/filters/node_filter.rb
406
406
  - lib/capybara/selector/regexp_disassembler.rb
407
407
  - lib/capybara/selector/selector.rb
408
+ - lib/capybara/selector/xpath_extensions.rb
408
409
  - lib/capybara/selenium/driver.rb
409
410
  - lib/capybara/selenium/driver_specializations/chrome_driver.rb
410
411
  - lib/capybara/selenium/driver_specializations/firefox_driver.rb
411
412
  - lib/capybara/selenium/driver_specializations/internet_explorer_driver.rb
413
+ - lib/capybara/selenium/driver_specializations/safari_driver.rb
412
414
  - lib/capybara/selenium/extensions/find.rb
413
415
  - lib/capybara/selenium/extensions/html5_drag.rb
414
416
  - lib/capybara/selenium/extensions/scroll.rb
415
417
  - lib/capybara/selenium/node.rb
416
418
  - lib/capybara/selenium/nodes/chrome_node.rb
417
419
  - lib/capybara/selenium/nodes/firefox_node.rb
420
+ - lib/capybara/selenium/nodes/safari_node.rb
418
421
  - lib/capybara/selenium/patches/pause_duration_fix.rb
419
422
  - lib/capybara/server.rb
420
423
  - lib/capybara/server/animation_disabler.rb
@@ -588,6 +591,7 @@ files:
588
591
  - spec/selenium_spec_firefox.rb
589
592
  - spec/selenium_spec_firefox_remote.rb
590
593
  - spec/selenium_spec_ie.rb
594
+ - spec/selenium_spec_safari.rb
591
595
  - spec/server_spec.rb
592
596
  - spec/session_spec.rb
593
597
  - spec/shared_selenium_session.rb
@@ -614,7 +618,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
614
618
  - !ruby/object:Gem::Version
615
619
  version: '0'
616
620
  requirements: []
617
- rubygems_version: 3.0.1
621
+ rubygems_version: 3.0.3
618
622
  signing_key:
619
623
  specification_version: 4
620
624
  summary: Capybara aims to simplify the process of integration testing Rack applications,