capybara 2.13.0 → 2.18.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 (122) hide show
  1. checksums.yaml +5 -5
  2. data/History.md +218 -18
  3. data/README.md +54 -23
  4. data/lib/capybara/config.rb +132 -0
  5. data/lib/capybara/cucumber.rb +1 -0
  6. data/lib/capybara/driver/base.rb +14 -0
  7. data/lib/capybara/dsl.rb +1 -3
  8. data/lib/capybara/helpers.rb +3 -3
  9. data/lib/capybara/minitest/spec.rb +14 -37
  10. data/lib/capybara/minitest.rb +95 -114
  11. data/lib/capybara/node/actions.rb +10 -10
  12. data/lib/capybara/node/base.rb +7 -2
  13. data/lib/capybara/node/element.rb +9 -3
  14. data/lib/capybara/node/finders.rb +92 -18
  15. data/lib/capybara/node/matchers.rb +21 -9
  16. data/lib/capybara/node/simple.rb +5 -0
  17. data/lib/capybara/queries/ancestor_query.rb +25 -0
  18. data/lib/capybara/queries/base_query.rb +12 -3
  19. data/lib/capybara/queries/current_path_query.rb +13 -9
  20. data/lib/capybara/queries/selector_query.rb +62 -23
  21. data/lib/capybara/queries/sibling_query.rb +25 -0
  22. data/lib/capybara/queries/text_query.rb +10 -5
  23. data/lib/capybara/queries/title_query.rb +1 -0
  24. data/lib/capybara/rack_test/browser.rb +13 -5
  25. data/lib/capybara/rack_test/driver.rb +6 -1
  26. data/lib/capybara/rack_test/form.rb +4 -3
  27. data/lib/capybara/rack_test/node.rb +1 -1
  28. data/lib/capybara/rspec/compound.rb +95 -0
  29. data/lib/capybara/rspec/matcher_proxies.rb +45 -0
  30. data/lib/capybara/rspec/matchers.rb +108 -7
  31. data/lib/capybara/rspec.rb +3 -1
  32. data/lib/capybara/selector/filter.rb +13 -41
  33. data/lib/capybara/selector/filter_set.rb +30 -4
  34. data/lib/capybara/selector/filters/base.rb +33 -0
  35. data/lib/capybara/selector/filters/expression_filter.rb +40 -0
  36. data/lib/capybara/selector/filters/node_filter.rb +27 -0
  37. data/lib/capybara/selector/selector.rb +36 -15
  38. data/lib/capybara/selector.rb +63 -42
  39. data/lib/capybara/selenium/driver.rb +177 -33
  40. data/lib/capybara/selenium/node.rb +106 -55
  41. data/lib/capybara/server.rb +6 -5
  42. data/lib/capybara/session/config.rb +114 -0
  43. data/lib/capybara/session/matchers.rb +15 -4
  44. data/lib/capybara/session.rb +178 -65
  45. data/lib/capybara/spec/fixtures/no_extension +1 -0
  46. data/lib/capybara/spec/public/test.js +18 -3
  47. data/lib/capybara/spec/session/accept_alert_spec.rb +9 -1
  48. data/lib/capybara/spec/session/accept_prompt_spec.rb +29 -1
  49. data/lib/capybara/spec/session/all_spec.rb +13 -1
  50. data/lib/capybara/spec/session/ancestor_spec.rb +85 -0
  51. data/lib/capybara/spec/session/assert_all_of_selectors_spec.rb +24 -8
  52. data/lib/capybara/spec/session/assert_selector.rb +1 -1
  53. data/lib/capybara/spec/session/assert_text.rb +8 -0
  54. data/lib/capybara/spec/session/assert_title.rb +22 -9
  55. data/lib/capybara/spec/session/attach_file_spec.rb +8 -1
  56. data/lib/capybara/spec/session/check_spec.rb +4 -4
  57. data/lib/capybara/spec/session/choose_spec.rb +2 -2
  58. data/lib/capybara/spec/session/click_button_spec.rb +1 -1
  59. data/lib/capybara/spec/session/click_link_or_button_spec.rb +3 -3
  60. data/lib/capybara/spec/session/click_link_spec.rb +1 -1
  61. data/lib/capybara/spec/session/current_url_spec.rb +3 -3
  62. data/lib/capybara/spec/session/dismiss_confirm_spec.rb +3 -3
  63. data/lib/capybara/spec/session/dismiss_prompt_spec.rb +1 -1
  64. data/lib/capybara/spec/session/evaluate_async_script_spec.rb +22 -0
  65. data/lib/capybara/spec/session/evaluate_script_spec.rb +1 -1
  66. data/lib/capybara/spec/session/fill_in_spec.rb +8 -2
  67. data/lib/capybara/spec/session/find_field_spec.rb +1 -0
  68. data/lib/capybara/spec/session/find_spec.rb +8 -6
  69. data/lib/capybara/spec/session/first_spec.rb +10 -5
  70. data/lib/capybara/spec/session/has_all_selectors_spec.rb +69 -0
  71. data/lib/capybara/spec/session/has_css_spec.rb +11 -0
  72. data/lib/capybara/spec/session/has_current_path_spec.rb +52 -7
  73. data/lib/capybara/spec/session/has_link_spec.rb +4 -4
  74. data/lib/capybara/spec/session/has_none_selectors_spec.rb +76 -0
  75. data/lib/capybara/spec/session/has_select_spec.rb +64 -6
  76. data/lib/capybara/spec/session/has_selector_spec.rb +1 -3
  77. data/lib/capybara/spec/session/has_text_spec.rb +5 -3
  78. data/lib/capybara/spec/session/has_title_spec.rb +4 -2
  79. data/lib/capybara/spec/session/has_xpath_spec.rb +5 -3
  80. data/lib/capybara/spec/session/node_spec.rb +50 -26
  81. data/lib/capybara/spec/session/refresh_spec.rb +28 -0
  82. data/lib/capybara/spec/session/reset_session_spec.rb +3 -3
  83. data/lib/capybara/spec/session/select_spec.rb +3 -2
  84. data/lib/capybara/spec/session/sibling_spec.rb +52 -0
  85. data/lib/capybara/spec/session/uncheck_spec.rb +2 -2
  86. data/lib/capybara/spec/session/unselect_spec.rb +2 -2
  87. data/lib/capybara/spec/session/visit_spec.rb +56 -1
  88. data/lib/capybara/spec/session/window/become_closed_spec.rb +11 -11
  89. data/lib/capybara/spec/session/window/switch_to_window_spec.rb +11 -9
  90. data/lib/capybara/spec/session/window/window_opened_by_spec.rb +4 -4
  91. data/lib/capybara/spec/session/window/within_window_spec.rb +27 -2
  92. data/lib/capybara/spec/spec_helper.rb +28 -4
  93. data/lib/capybara/spec/test_app.rb +3 -1
  94. data/lib/capybara/spec/views/form.erb +27 -1
  95. data/lib/capybara/spec/views/initial_alert.erb +10 -0
  96. data/lib/capybara/spec/views/with_fixed_header_footer.erb +17 -0
  97. data/lib/capybara/spec/views/with_hover.erb +5 -0
  98. data/lib/capybara/spec/views/with_html.erb +33 -2
  99. data/lib/capybara/spec/views/with_js.erb +12 -0
  100. data/lib/capybara/spec/views/with_windows.erb +4 -0
  101. data/lib/capybara/version.rb +1 -1
  102. data/lib/capybara/window.rb +1 -1
  103. data/lib/capybara.rb +102 -124
  104. data/spec/capybara_spec.rb +43 -21
  105. data/spec/dsl_spec.rb +1 -0
  106. data/spec/filter_set_spec.rb +28 -0
  107. data/spec/minitest_spec.rb +9 -1
  108. data/spec/minitest_spec_spec.rb +19 -5
  109. data/spec/per_session_config_spec.rb +67 -0
  110. data/spec/result_spec.rb +20 -0
  111. data/spec/rspec/shared_spec_matchers.rb +148 -44
  112. data/spec/rspec/views_spec.rb +4 -0
  113. data/spec/rspec_matchers_spec.rb +46 -0
  114. data/spec/rspec_spec.rb +77 -0
  115. data/spec/selector_spec.rb +2 -1
  116. data/spec/selenium_spec_chrome.rb +25 -17
  117. data/spec/selenium_spec_firefox.rb +2 -1
  118. data/spec/selenium_spec_marionette.rb +18 -5
  119. data/spec/session_spec.rb +44 -0
  120. data/spec/shared_selenium_session.rb +72 -8
  121. data/spec/spec_helper.rb +4 -0
  122. metadata +55 -8
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.13.0
4
+ version: 2.18.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: 2017-03-16 00:00:00.000000000 Z
13
+ date: 2018-02-13 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri
@@ -27,19 +27,19 @@ dependencies:
27
27
  - !ruby/object:Gem::Version
28
28
  version: 1.3.3
29
29
  - !ruby/object:Gem::Dependency
30
- name: mime-types
30
+ name: mini_mime
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - ">="
34
34
  - !ruby/object:Gem::Version
35
- version: '1.16'
35
+ version: 0.1.3
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: '1.16'
42
+ version: 0.1.3
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: rack
45
45
  requirement: !ruby/object:Gem::Requirement
@@ -72,16 +72,22 @@ dependencies:
72
72
  name: xpath
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
- - - "~>"
75
+ - - ">="
76
76
  - !ruby/object:Gem::Version
77
77
  version: '2.0'
78
+ - - "<"
79
+ - !ruby/object:Gem::Version
80
+ version: '4.0'
78
81
  type: :runtime
79
82
  prerelease: false
80
83
  version_requirements: !ruby/object:Gem::Requirement
81
84
  requirements:
82
- - - "~>"
85
+ - - ">="
83
86
  - !ruby/object:Gem::Version
84
87
  version: '2.0'
88
+ - - "<"
89
+ - !ruby/object:Gem::Version
90
+ version: '4.0'
85
91
  - !ruby/object:Gem::Dependency
86
92
  name: addressable
87
93
  requirement: !ruby/object:Gem::Requirement
@@ -106,6 +112,9 @@ dependencies:
106
112
  - - "<"
107
113
  - !ruby/object:Gem::Version
108
114
  version: '4.0'
115
+ - - "!="
116
+ - !ruby/object:Gem::Version
117
+ version: 3.4.1
109
118
  type: :development
110
119
  prerelease: false
111
120
  version_requirements: !ruby/object:Gem::Requirement
@@ -116,6 +125,9 @@ dependencies:
116
125
  - - "<"
117
126
  - !ruby/object:Gem::Version
118
127
  version: '4.0'
128
+ - - "!="
129
+ - !ruby/object:Gem::Version
130
+ version: 3.4.1
119
131
  - !ruby/object:Gem::Dependency
120
132
  name: sinatra
121
133
  requirement: !ruby/object:Gem::Requirement
@@ -228,6 +240,20 @@ dependencies:
228
240
  - - ">="
229
241
  - !ruby/object:Gem::Version
230
242
  version: '0'
243
+ - !ruby/object:Gem::Dependency
244
+ name: puma
245
+ requirement: !ruby/object:Gem::Requirement
246
+ requirements:
247
+ - - ">="
248
+ - !ruby/object:Gem::Version
249
+ version: '0'
250
+ type: :development
251
+ prerelease: false
252
+ version_requirements: !ruby/object:Gem::Requirement
253
+ requirements:
254
+ - - ">="
255
+ - !ruby/object:Gem::Version
256
+ version: '0'
231
257
  - !ruby/object:Gem::Dependency
232
258
  name: pry
233
259
  requirement: !ruby/object:Gem::Requirement
@@ -273,6 +299,7 @@ files:
273
299
  - License.txt
274
300
  - README.md
275
301
  - lib/capybara.rb
302
+ - lib/capybara/config.rb
276
303
  - lib/capybara/cucumber.rb
277
304
  - lib/capybara/driver/base.rb
278
305
  - lib/capybara/driver/node.rb
@@ -288,10 +315,12 @@ files:
288
315
  - lib/capybara/node/finders.rb
289
316
  - lib/capybara/node/matchers.rb
290
317
  - lib/capybara/node/simple.rb
318
+ - lib/capybara/queries/ancestor_query.rb
291
319
  - lib/capybara/queries/base_query.rb
292
320
  - lib/capybara/queries/current_path_query.rb
293
321
  - lib/capybara/queries/match_query.rb
294
322
  - lib/capybara/queries/selector_query.rb
323
+ - lib/capybara/queries/sibling_query.rb
295
324
  - lib/capybara/queries/text_query.rb
296
325
  - lib/capybara/queries/title_query.rb
297
326
  - lib/capybara/query.rb
@@ -303,20 +332,27 @@ files:
303
332
  - lib/capybara/rails.rb
304
333
  - lib/capybara/result.rb
305
334
  - lib/capybara/rspec.rb
335
+ - lib/capybara/rspec/compound.rb
306
336
  - lib/capybara/rspec/features.rb
337
+ - lib/capybara/rspec/matcher_proxies.rb
307
338
  - lib/capybara/rspec/matchers.rb
308
339
  - lib/capybara/selector.rb
309
340
  - lib/capybara/selector/css.rb
310
341
  - lib/capybara/selector/filter.rb
311
342
  - lib/capybara/selector/filter_set.rb
343
+ - lib/capybara/selector/filters/base.rb
344
+ - lib/capybara/selector/filters/expression_filter.rb
345
+ - lib/capybara/selector/filters/node_filter.rb
312
346
  - lib/capybara/selector/selector.rb
313
347
  - lib/capybara/selenium/driver.rb
314
348
  - lib/capybara/selenium/node.rb
315
349
  - lib/capybara/server.rb
316
350
  - lib/capybara/session.rb
351
+ - lib/capybara/session/config.rb
317
352
  - lib/capybara/session/matchers.rb
318
353
  - lib/capybara/spec/fixtures/another_test_file.txt
319
354
  - lib/capybara/spec/fixtures/capybara.jpg
355
+ - lib/capybara/spec/fixtures/no_extension
320
356
  - lib/capybara/spec/fixtures/test_file.txt
321
357
  - lib/capybara/spec/public/jquery-ui.js
322
358
  - lib/capybara/spec/public/jquery.js
@@ -325,6 +361,7 @@ files:
325
361
  - lib/capybara/spec/session/accept_confirm_spec.rb
326
362
  - lib/capybara/spec/session/accept_prompt_spec.rb
327
363
  - lib/capybara/spec/session/all_spec.rb
364
+ - lib/capybara/spec/session/ancestor_spec.rb
328
365
  - lib/capybara/spec/session/assert_all_of_selectors_spec.rb
329
366
  - lib/capybara/spec/session/assert_current_path.rb
330
367
  - lib/capybara/spec/session/assert_selector.rb
@@ -345,6 +382,7 @@ files:
345
382
  - lib/capybara/spec/session/element/match_css_spec.rb
346
383
  - lib/capybara/spec/session/element/match_xpath_spec.rb
347
384
  - lib/capybara/spec/session/element/matches_selector_spec.rb
385
+ - lib/capybara/spec/session/evaluate_async_script_spec.rb
348
386
  - lib/capybara/spec/session/evaluate_script_spec.rb
349
387
  - lib/capybara/spec/session/execute_script_spec.rb
350
388
  - lib/capybara/spec/session/fill_in_spec.rb
@@ -358,11 +396,13 @@ files:
358
396
  - lib/capybara/spec/session/frame/within_frame_spec.rb
359
397
  - lib/capybara/spec/session/go_back_spec.rb
360
398
  - lib/capybara/spec/session/go_forward_spec.rb
399
+ - lib/capybara/spec/session/has_all_selectors_spec.rb
361
400
  - lib/capybara/spec/session/has_button_spec.rb
362
401
  - lib/capybara/spec/session/has_css_spec.rb
363
402
  - lib/capybara/spec/session/has_current_path_spec.rb
364
403
  - lib/capybara/spec/session/has_field_spec.rb
365
404
  - lib/capybara/spec/session/has_link_spec.rb
405
+ - lib/capybara/spec/session/has_none_selectors_spec.rb
366
406
  - lib/capybara/spec/session/has_select_spec.rb
367
407
  - lib/capybara/spec/session/has_selector_spec.rb
368
408
  - lib/capybara/spec/session/has_table_spec.rb
@@ -372,6 +412,7 @@ files:
372
412
  - lib/capybara/spec/session/headers.rb
373
413
  - lib/capybara/spec/session/html_spec.rb
374
414
  - lib/capybara/spec/session/node_spec.rb
415
+ - lib/capybara/spec/session/refresh_spec.rb
375
416
  - lib/capybara/spec/session/reset_session_spec.rb
376
417
  - lib/capybara/spec/session/response_code.rb
377
418
  - lib/capybara/spec/session/save_and_open_page_spec.rb
@@ -381,6 +422,7 @@ files:
381
422
  - lib/capybara/spec/session/screenshot_spec.rb
382
423
  - lib/capybara/spec/session/select_spec.rb
383
424
  - lib/capybara/spec/session/selectors_spec.rb
425
+ - lib/capybara/spec/session/sibling_spec.rb
384
426
  - lib/capybara/spec/session/source_spec.rb
385
427
  - lib/capybara/spec/session/text_spec.rb
386
428
  - lib/capybara/spec/session/title_spec.rb
@@ -407,6 +449,7 @@ files:
407
449
  - lib/capybara/spec/views/frame_two.erb
408
450
  - lib/capybara/spec/views/header_links.erb
409
451
  - lib/capybara/spec/views/host_links.erb
452
+ - lib/capybara/spec/views/initial_alert.erb
410
453
  - lib/capybara/spec/views/path.erb
411
454
  - lib/capybara/spec/views/popup_one.erb
412
455
  - lib/capybara/spec/views/popup_two.erb
@@ -414,6 +457,7 @@ files:
414
457
  - lib/capybara/spec/views/tables.erb
415
458
  - lib/capybara/spec/views/with_base_tag.erb
416
459
  - lib/capybara/spec/views/with_count.erb
460
+ - lib/capybara/spec/views/with_fixed_header_footer.erb
417
461
  - lib/capybara/spec/views/with_hover.erb
418
462
  - lib/capybara/spec/views/with_html.erb
419
463
  - lib/capybara/spec/views/with_html_entities.erb
@@ -430,17 +474,20 @@ files:
430
474
  - spec/basic_node_spec.rb
431
475
  - spec/capybara_spec.rb
432
476
  - spec/dsl_spec.rb
477
+ - spec/filter_set_spec.rb
433
478
  - spec/fixtures/capybara.csv
434
479
  - spec/fixtures/selenium_driver_rspec_failure.rb
435
480
  - spec/fixtures/selenium_driver_rspec_success.rb
436
481
  - spec/minitest_spec.rb
437
482
  - spec/minitest_spec_spec.rb
483
+ - spec/per_session_config_spec.rb
438
484
  - spec/rack_test_spec.rb
439
485
  - spec/result_spec.rb
440
486
  - spec/rspec/features_spec.rb
441
487
  - spec/rspec/scenarios_spec.rb
442
488
  - spec/rspec/shared_spec_matchers.rb
443
489
  - spec/rspec/views_spec.rb
490
+ - spec/rspec_matchers_spec.rb
444
491
  - spec/rspec_spec.rb
445
492
  - spec/selector_spec.rb
446
493
  - spec/selenium_spec_chrome.rb
@@ -470,7 +517,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
470
517
  version: '0'
471
518
  requirements: []
472
519
  rubyforge_project:
473
- rubygems_version: 2.5.2
520
+ rubygems_version: 2.7.4
474
521
  signing_key:
475
522
  specification_version: 4
476
523
  summary: Capybara aims to simplify the process of integration testing Rack applications,