capybara 2.13.0 → 2.18.0

Sign up to get free protection for your applications and to get access to all the features.
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,