capybara 3.32.0 → 3.35.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 (125) hide show
  1. checksums.yaml +4 -4
  2. data/History.md +99 -15
  3. data/README.md +9 -4
  4. data/lib/capybara.rb +18 -8
  5. data/lib/capybara/config.rb +4 -6
  6. data/lib/capybara/cucumber.rb +1 -1
  7. data/lib/capybara/driver/base.rb +4 -0
  8. data/lib/capybara/helpers.rb +25 -1
  9. data/lib/capybara/minitest.rb +2 -3
  10. data/lib/capybara/minitest/spec.rb +14 -11
  11. data/lib/capybara/node/actions.rb +16 -21
  12. data/lib/capybara/node/base.rb +6 -6
  13. data/lib/capybara/node/element.rb +1 -5
  14. data/lib/capybara/node/finders.rb +7 -6
  15. data/lib/capybara/node/matchers.rb +12 -12
  16. data/lib/capybara/node/simple.rb +5 -1
  17. data/lib/capybara/queries/ancestor_query.rb +1 -1
  18. data/lib/capybara/queries/current_path_query.rb +14 -4
  19. data/lib/capybara/queries/selector_query.rb +40 -18
  20. data/lib/capybara/queries/sibling_query.rb +1 -1
  21. data/lib/capybara/queries/style_query.rb +1 -1
  22. data/lib/capybara/queries/text_query.rb +7 -1
  23. data/lib/capybara/rack_test/browser.rb +7 -3
  24. data/lib/capybara/rack_test/driver.rb +1 -0
  25. data/lib/capybara/rack_test/form.rb +1 -1
  26. data/lib/capybara/rack_test/node.rb +1 -1
  27. data/lib/capybara/registration_container.rb +44 -0
  28. data/lib/capybara/registrations/drivers.rb +18 -12
  29. data/lib/capybara/registrations/patches/puma_ssl.rb +3 -1
  30. data/lib/capybara/registrations/servers.rb +3 -2
  31. data/lib/capybara/result.rb +10 -11
  32. data/lib/capybara/rspec.rb +2 -0
  33. data/lib/capybara/rspec/matcher_proxies.rb +1 -1
  34. data/lib/capybara/rspec/matchers.rb +7 -6
  35. data/lib/capybara/rspec/matchers/have_current_path.rb +2 -2
  36. data/lib/capybara/rspec/matchers/have_text.rb +1 -1
  37. data/lib/capybara/rspec/matchers/match_style.rb +5 -0
  38. data/lib/capybara/selector.rb +12 -3
  39. data/lib/capybara/selector/builders/css_builder.rb +1 -1
  40. data/lib/capybara/selector/builders/xpath_builder.rb +3 -1
  41. data/lib/capybara/selector/definition.rb +11 -9
  42. data/lib/capybara/selector/definition/button.rb +26 -14
  43. data/lib/capybara/selector/definition/css.rb +1 -1
  44. data/lib/capybara/selector/definition/datalist_input.rb +1 -1
  45. data/lib/capybara/selector/definition/element.rb +2 -1
  46. data/lib/capybara/selector/definition/fillable_field.rb +1 -1
  47. data/lib/capybara/selector/definition/label.rb +1 -1
  48. data/lib/capybara/selector/definition/link.rb +8 -0
  49. data/lib/capybara/selector/definition/select.rb +1 -1
  50. data/lib/capybara/selector/definition/table.rb +1 -1
  51. data/lib/capybara/selector/definition/table_row.rb +2 -2
  52. data/lib/capybara/selector/filter_set.rb +2 -2
  53. data/lib/capybara/selector/selector.rb +9 -1
  54. data/lib/capybara/selenium/atoms/src/isDisplayed.js +1 -1
  55. data/lib/capybara/selenium/driver.rb +51 -7
  56. data/lib/capybara/selenium/driver_specializations/chrome_driver.rb +9 -11
  57. data/lib/capybara/selenium/driver_specializations/edge_driver.rb +9 -11
  58. data/lib/capybara/selenium/driver_specializations/firefox_driver.rb +3 -3
  59. data/lib/capybara/selenium/extensions/find.rb +4 -4
  60. data/lib/capybara/selenium/extensions/scroll.rb +8 -10
  61. data/lib/capybara/selenium/logger_suppressor.rb +1 -1
  62. data/lib/capybara/selenium/node.rb +23 -6
  63. data/lib/capybara/selenium/nodes/chrome_node.rb +23 -5
  64. data/lib/capybara/selenium/nodes/firefox_node.rb +7 -2
  65. data/lib/capybara/selenium/nodes/safari_node.rb +1 -1
  66. data/lib/capybara/selenium/patches/action_pauser.rb +4 -1
  67. data/lib/capybara/selenium/patches/atoms.rb +4 -4
  68. data/lib/capybara/selenium/patches/logs.rb +7 -9
  69. data/lib/capybara/server/animation_disabler.rb +8 -3
  70. data/lib/capybara/server/middleware.rb +4 -2
  71. data/lib/capybara/session.rb +23 -14
  72. data/lib/capybara/session/config.rb +3 -1
  73. data/lib/capybara/session/matchers.rb +11 -11
  74. data/lib/capybara/spec/public/test.js +13 -1
  75. data/lib/capybara/spec/session/accept_alert_spec.rb +1 -1
  76. data/lib/capybara/spec/session/check_spec.rb +6 -0
  77. data/lib/capybara/spec/session/click_button_spec.rb +11 -0
  78. data/lib/capybara/spec/session/current_url_spec.rb +11 -1
  79. data/lib/capybara/spec/session/has_button_spec.rb +51 -0
  80. data/lib/capybara/spec/session/has_css_spec.rb +2 -1
  81. data/lib/capybara/spec/session/has_current_path_spec.rb +15 -2
  82. data/lib/capybara/spec/session/has_field_spec.rb +16 -0
  83. data/lib/capybara/spec/session/has_select_spec.rb +4 -4
  84. data/lib/capybara/spec/session/has_selector_spec.rb +4 -4
  85. data/lib/capybara/spec/session/has_text_spec.rb +0 -11
  86. data/lib/capybara/spec/session/html_spec.rb +1 -1
  87. data/lib/capybara/spec/session/matches_style_spec.rb +2 -2
  88. data/lib/capybara/spec/session/node_spec.rb +29 -9
  89. data/lib/capybara/spec/session/refresh_spec.rb +2 -1
  90. data/lib/capybara/spec/session/save_page_spec.rb +4 -4
  91. data/lib/capybara/spec/session/window/switch_to_window_spec.rb +1 -1
  92. data/lib/capybara/spec/session/window/window_opened_by_spec.rb +1 -1
  93. data/lib/capybara/spec/session/window/window_spec.rb +1 -1
  94. data/lib/capybara/spec/session/window/windows_spec.rb +1 -1
  95. data/lib/capybara/spec/spec_helper.rb +12 -12
  96. data/lib/capybara/spec/test_app.rb +23 -21
  97. data/lib/capybara/spec/views/form.erb +28 -1
  98. data/lib/capybara/spec/views/with_animation.erb +8 -0
  99. data/lib/capybara/spec/views/with_dragula.erb +3 -1
  100. data/lib/capybara/spec/views/with_jquery_animation.erb +24 -0
  101. data/lib/capybara/spec/views/with_js.erb +3 -0
  102. data/lib/capybara/spec/views/with_sortable_js.erb +1 -1
  103. data/lib/capybara/version.rb +1 -1
  104. data/lib/capybara/window.rb +3 -7
  105. data/spec/basic_node_spec.rb +9 -8
  106. data/spec/capybara_spec.rb +1 -1
  107. data/spec/dsl_spec.rb +14 -1
  108. data/spec/fixtures/selenium_driver_rspec_success.rb +1 -1
  109. data/spec/minitest_spec.rb +3 -2
  110. data/spec/rack_test_spec.rb +16 -5
  111. data/spec/result_spec.rb +1 -17
  112. data/spec/rspec/features_spec.rb +3 -1
  113. data/spec/rspec/scenarios_spec.rb +4 -0
  114. data/spec/rspec/shared_spec_matchers.rb +63 -51
  115. data/spec/rspec_spec.rb +4 -0
  116. data/spec/selector_spec.rb +17 -2
  117. data/spec/selenium_spec_chrome.rb +39 -20
  118. data/spec/selenium_spec_chrome_remote.rb +5 -1
  119. data/spec/selenium_spec_firefox.rb +15 -13
  120. data/spec/server_spec.rb +60 -49
  121. data/spec/shared_selenium_node.rb +10 -0
  122. data/spec/shared_selenium_session.rb +98 -7
  123. data/spec/spec_helper.rb +1 -1
  124. metadata +50 -15
  125. data/lib/capybara/spec/session/source_spec.rb +0 -0
@@ -46,7 +46,7 @@ module Capybara
46
46
  end
47
47
 
48
48
  def edge?(session)
49
- browser_name(session).match?(/^edge/)
49
+ browser_name(session).to_s.start_with?('edge')
50
50
  end
51
51
 
52
52
  def legacy_edge?(session)
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.32.0
4
+ version: 3.35.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: 2020-03-30 00:00:00.000000000 Z
13
+ date: 2021-01-26 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: addressable
@@ -86,16 +86,22 @@ dependencies:
86
86
  name: regexp_parser
87
87
  requirement: !ruby/object:Gem::Requirement
88
88
  requirements:
89
- - - "~>"
89
+ - - ">="
90
90
  - !ruby/object:Gem::Version
91
91
  version: '1.5'
92
+ - - "<"
93
+ - !ruby/object:Gem::Version
94
+ version: '3.0'
92
95
  type: :runtime
93
96
  prerelease: false
94
97
  version_requirements: !ruby/object:Gem::Requirement
95
98
  requirements:
96
- - - "~>"
99
+ - - ">="
97
100
  - !ruby/object:Gem::Version
98
101
  version: '1.5'
102
+ - - "<"
103
+ - !ruby/object:Gem::Version
104
+ version: '3.0'
99
105
  - !ruby/object:Gem::Dependency
100
106
  name: xpath
101
107
  requirement: !ruby/object:Gem::Requirement
@@ -270,16 +276,16 @@ dependencies:
270
276
  requirements:
271
277
  - - "~>"
272
278
  - !ruby/object:Gem::Version
273
- version: '0.72'
279
+ version: '1.1'
274
280
  type: :development
275
281
  prerelease: false
276
282
  version_requirements: !ruby/object:Gem::Requirement
277
283
  requirements:
278
284
  - - "~>"
279
285
  - !ruby/object:Gem::Version
280
- version: '0.72'
286
+ version: '1.1'
281
287
  - !ruby/object:Gem::Dependency
282
- name: rubocop-performance
288
+ name: rubocop-minitest
283
289
  requirement: !ruby/object:Gem::Requirement
284
290
  requirements:
285
291
  - - ">="
@@ -293,7 +299,7 @@ dependencies:
293
299
  - !ruby/object:Gem::Version
294
300
  version: '0'
295
301
  - !ruby/object:Gem::Dependency
296
- name: rubocop-rspec
302
+ name: rubocop-performance
297
303
  requirement: !ruby/object:Gem::Requirement
298
304
  requirements:
299
305
  - - ">="
@@ -307,7 +313,7 @@ dependencies:
307
313
  - !ruby/object:Gem::Version
308
314
  version: '0'
309
315
  - !ruby/object:Gem::Dependency
310
- name: sauce_whisk
316
+ name: rubocop-rake
311
317
  requirement: !ruby/object:Gem::Requirement
312
318
  requirements:
313
319
  - - ">="
@@ -321,19 +327,33 @@ dependencies:
321
327
  - !ruby/object:Gem::Version
322
328
  version: '0'
323
329
  - !ruby/object:Gem::Dependency
324
- name: selenium-webdriver
330
+ name: rubocop-rspec
325
331
  requirement: !ruby/object:Gem::Requirement
326
332
  requirements:
327
333
  - - "~>"
328
334
  - !ruby/object:Gem::Version
329
- version: '3.5'
335
+ version: '2.0'
330
336
  type: :development
331
337
  prerelease: false
332
338
  version_requirements: !ruby/object:Gem::Requirement
333
339
  requirements:
334
340
  - - "~>"
335
341
  - !ruby/object:Gem::Version
336
- version: '3.5'
342
+ version: '2.0'
343
+ - !ruby/object:Gem::Dependency
344
+ name: sauce_whisk
345
+ requirement: !ruby/object:Gem::Requirement
346
+ requirements:
347
+ - - ">="
348
+ - !ruby/object:Gem::Version
349
+ version: '0'
350
+ type: :development
351
+ prerelease: false
352
+ version_requirements: !ruby/object:Gem::Requirement
353
+ requirements:
354
+ - - ">="
355
+ - !ruby/object:Gem::Version
356
+ version: '0'
337
357
  - !ruby/object:Gem::Dependency
338
358
  name: selenium_statistics
339
359
  requirement: !ruby/object:Gem::Requirement
@@ -348,6 +368,20 @@ dependencies:
348
368
  - - ">="
349
369
  - !ruby/object:Gem::Version
350
370
  version: '0'
371
+ - !ruby/object:Gem::Dependency
372
+ name: selenium-webdriver
373
+ requirement: !ruby/object:Gem::Requirement
374
+ requirements:
375
+ - - "~>"
376
+ - !ruby/object:Gem::Version
377
+ version: '3.5'
378
+ type: :development
379
+ prerelease: false
380
+ version_requirements: !ruby/object:Gem::Requirement
381
+ requirements:
382
+ - - "~>"
383
+ - !ruby/object:Gem::Version
384
+ version: '3.5'
351
385
  - !ruby/object:Gem::Dependency
352
386
  name: sinatra
353
387
  requirement: !ruby/object:Gem::Requirement
@@ -450,6 +484,7 @@ files:
450
484
  - lib/capybara/rack_test/form.rb
451
485
  - lib/capybara/rack_test/node.rb
452
486
  - lib/capybara/rails.rb
487
+ - lib/capybara/registration_container.rb
453
488
  - lib/capybara/registrations/drivers.rb
454
489
  - lib/capybara/registrations/patches/puma_ssl.rb
455
490
  - lib/capybara/registrations/servers.rb
@@ -624,7 +659,6 @@ files:
624
659
  - lib/capybara/spec/session/select_spec.rb
625
660
  - lib/capybara/spec/session/selectors_spec.rb
626
661
  - lib/capybara/spec/session/sibling_spec.rb
627
- - lib/capybara/spec/session/source_spec.rb
628
662
  - lib/capybara/spec/session/text_spec.rb
629
663
  - lib/capybara/spec/session/title_spec.rb
630
664
  - lib/capybara/spec/session/uncheck_spec.rb
@@ -672,6 +706,7 @@ files:
672
706
  - lib/capybara/spec/views/with_html.erb
673
707
  - lib/capybara/spec/views/with_html5_svg.erb
674
708
  - lib/capybara/spec/views/with_html_entities.erb
709
+ - lib/capybara/spec/views/with_jquery_animation.erb
675
710
  - lib/capybara/spec/views/with_js.erb
676
711
  - lib/capybara/spec/views/with_jstree.erb
677
712
  - lib/capybara/spec/views/with_namespace.erb
@@ -738,14 +773,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
738
773
  requirements:
739
774
  - - ">="
740
775
  - !ruby/object:Gem::Version
741
- version: 2.4.0
776
+ version: 2.5.0
742
777
  required_rubygems_version: !ruby/object:Gem::Requirement
743
778
  requirements:
744
779
  - - ">="
745
780
  - !ruby/object:Gem::Version
746
781
  version: '0'
747
782
  requirements: []
748
- rubygems_version: 3.1.2
783
+ rubygems_version: 3.1.4
749
784
  signing_key:
750
785
  specification_version: 4
751
786
  summary: Capybara aims to simplify the process of integration testing Rack applications,
File without changes