capybara 3.3.1 → 3.4.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 (159) hide show
  1. checksums.yaml +4 -4
  2. data/History.md +16 -0
  3. data/README.md +5 -7
  4. data/lib/capybara.rb +7 -6
  5. data/lib/capybara/config.rb +1 -1
  6. data/lib/capybara/dsl.rb +2 -2
  7. data/lib/capybara/helpers.rb +3 -3
  8. data/lib/capybara/minitest/spec.rb +3 -3
  9. data/lib/capybara/node/actions.rb +18 -18
  10. data/lib/capybara/node/base.rb +1 -1
  11. data/lib/capybara/node/element.rb +2 -2
  12. data/lib/capybara/node/finders.rb +6 -6
  13. data/lib/capybara/node/matchers.rb +5 -5
  14. data/lib/capybara/node/simple.rb +2 -2
  15. data/lib/capybara/queries/ancestor_query.rb +1 -1
  16. data/lib/capybara/queries/base_query.rb +12 -11
  17. data/lib/capybara/queries/current_path_query.rb +1 -1
  18. data/lib/capybara/queries/selector_query.rb +39 -15
  19. data/lib/capybara/queries/sibling_query.rb +1 -1
  20. data/lib/capybara/queries/text_query.rb +1 -1
  21. data/lib/capybara/rack_test/browser.rb +7 -7
  22. data/lib/capybara/rack_test/driver.rb +1 -1
  23. data/lib/capybara/rack_test/form.rb +7 -7
  24. data/lib/capybara/rack_test/node.rb +16 -16
  25. data/lib/capybara/rails.rb +1 -1
  26. data/lib/capybara/result.rb +8 -4
  27. data/lib/capybara/rspec/features.rb +4 -4
  28. data/lib/capybara/rspec/matchers.rb +6 -6
  29. data/lib/capybara/selector.rb +106 -90
  30. data/lib/capybara/selector/css.rb +4 -4
  31. data/lib/capybara/selector/filter_set.rb +52 -8
  32. data/lib/capybara/selector/selector.rb +39 -15
  33. data/lib/capybara/selenium/driver.rb +10 -10
  34. data/lib/capybara/selenium/driver_specializations/chrome_driver.rb +8 -0
  35. data/lib/capybara/selenium/node.rb +9 -10
  36. data/lib/capybara/selenium/nodes/chrome_node.rb +18 -0
  37. data/lib/capybara/selenium/nodes/marionette_node.rb +32 -7
  38. data/lib/capybara/server.rb +3 -3
  39. data/lib/capybara/server/animation_disabler.rb +1 -1
  40. data/lib/capybara/server/middleware.rb +1 -1
  41. data/lib/capybara/session.rb +23 -19
  42. data/lib/capybara/session/config.rb +18 -3
  43. data/lib/capybara/spec/public/test.js +1 -1
  44. data/lib/capybara/spec/session/accept_alert_spec.rb +10 -10
  45. data/lib/capybara/spec/session/accept_confirm_spec.rb +3 -3
  46. data/lib/capybara/spec/session/accept_prompt_spec.rb +9 -10
  47. data/lib/capybara/spec/session/all_spec.rb +33 -32
  48. data/lib/capybara/spec/session/ancestor_spec.rb +19 -19
  49. data/lib/capybara/spec/session/assert_all_of_selectors_spec.rb +38 -38
  50. data/lib/capybara/spec/session/assert_current_path_spec.rb +16 -16
  51. data/lib/capybara/spec/session/assert_selector_spec.rb +53 -53
  52. data/lib/capybara/spec/session/assert_style_spec.rb +3 -3
  53. data/lib/capybara/spec/session/assert_text_spec.rb +31 -30
  54. data/lib/capybara/spec/session/assert_title_spec.rb +12 -12
  55. data/lib/capybara/spec/session/attach_file_spec.rb +51 -52
  56. data/lib/capybara/spec/session/body_spec.rb +6 -6
  57. data/lib/capybara/spec/session/check_spec.rb +52 -47
  58. data/lib/capybara/spec/session/choose_spec.rb +32 -32
  59. data/lib/capybara/spec/session/click_button_spec.rb +103 -103
  60. data/lib/capybara/spec/session/click_link_or_button_spec.rb +24 -23
  61. data/lib/capybara/spec/session/click_link_spec.rb +49 -48
  62. data/lib/capybara/spec/session/current_scope_spec.rb +7 -7
  63. data/lib/capybara/spec/session/current_url_spec.rb +26 -27
  64. data/lib/capybara/spec/session/dismiss_confirm_spec.rb +3 -3
  65. data/lib/capybara/spec/session/dismiss_prompt_spec.rb +2 -2
  66. data/lib/capybara/spec/session/element/assert_match_selector_spec.rb +8 -8
  67. data/lib/capybara/spec/session/element/match_css_spec.rb +10 -10
  68. data/lib/capybara/spec/session/element/match_xpath_spec.rb +6 -6
  69. data/lib/capybara/spec/session/element/matches_selector_spec.rb +51 -51
  70. data/lib/capybara/spec/session/evaluate_async_script_spec.rb +7 -7
  71. data/lib/capybara/spec/session/evaluate_script_spec.rb +15 -8
  72. data/lib/capybara/spec/session/execute_script_spec.rb +7 -7
  73. data/lib/capybara/spec/session/fill_in_spec.rb +43 -42
  74. data/lib/capybara/spec/session/find_button_spec.rb +23 -23
  75. data/lib/capybara/spec/session/find_by_id_spec.rb +7 -7
  76. data/lib/capybara/spec/session/find_field_spec.rb +32 -30
  77. data/lib/capybara/spec/session/find_link_spec.rb +21 -21
  78. data/lib/capybara/spec/session/find_spec.rb +153 -135
  79. data/lib/capybara/spec/session/first_spec.rb +41 -41
  80. data/lib/capybara/spec/session/frame/frame_title_spec.rb +5 -5
  81. data/lib/capybara/spec/session/frame/frame_url_spec.rb +5 -5
  82. data/lib/capybara/spec/session/frame/switch_to_frame_spec.rb +17 -17
  83. data/lib/capybara/spec/session/frame/within_frame_spec.rb +31 -17
  84. data/lib/capybara/spec/session/go_back_spec.rb +1 -1
  85. data/lib/capybara/spec/session/go_forward_spec.rb +1 -1
  86. data/lib/capybara/spec/session/has_all_selectors_spec.rb +17 -17
  87. data/lib/capybara/spec/session/has_button_spec.rb +13 -13
  88. data/lib/capybara/spec/session/has_css_spec.rb +133 -131
  89. data/lib/capybara/spec/session/has_current_path_spec.rb +29 -29
  90. data/lib/capybara/spec/session/has_field_spec.rb +58 -58
  91. data/lib/capybara/spec/session/has_link_spec.rb +4 -4
  92. data/lib/capybara/spec/session/has_none_selectors_spec.rb +24 -24
  93. data/lib/capybara/spec/session/has_select_spec.rb +43 -43
  94. data/lib/capybara/spec/session/has_selector_spec.rb +71 -71
  95. data/lib/capybara/spec/session/has_style_spec.rb +3 -3
  96. data/lib/capybara/spec/session/has_table_spec.rb +4 -4
  97. data/lib/capybara/spec/session/has_text_spec.rb +53 -52
  98. data/lib/capybara/spec/session/has_title_spec.rb +14 -14
  99. data/lib/capybara/spec/session/has_xpath_spec.rb +39 -38
  100. data/lib/capybara/spec/session/headers_spec.rb +1 -1
  101. data/lib/capybara/spec/session/html_spec.rb +6 -6
  102. data/lib/capybara/spec/session/node_spec.rb +129 -123
  103. data/lib/capybara/spec/session/node_wrapper_spec.rb +10 -7
  104. data/lib/capybara/spec/session/refresh_spec.rb +4 -7
  105. data/lib/capybara/spec/session/reset_session_spec.rb +28 -28
  106. data/lib/capybara/spec/session/response_code_spec.rb +1 -1
  107. data/lib/capybara/spec/session/save_and_open_page_spec.rb +2 -2
  108. data/lib/capybara/spec/session/save_page_spec.rb +37 -37
  109. data/lib/capybara/spec/session/save_screenshot_spec.rb +6 -6
  110. data/lib/capybara/spec/session/screenshot_spec.rb +2 -2
  111. data/lib/capybara/spec/session/select_spec.rb +81 -81
  112. data/lib/capybara/spec/session/selectors_spec.rb +17 -17
  113. data/lib/capybara/spec/session/sibling_spec.rb +9 -9
  114. data/lib/capybara/spec/session/text_spec.rb +23 -23
  115. data/lib/capybara/spec/session/title_spec.rb +5 -5
  116. data/lib/capybara/spec/session/uncheck_spec.rb +24 -20
  117. data/lib/capybara/spec/session/unselect_spec.rb +37 -37
  118. data/lib/capybara/spec/session/visit_spec.rb +48 -49
  119. data/lib/capybara/spec/session/window/current_window_spec.rb +1 -1
  120. data/lib/capybara/spec/session/window/switch_to_window_spec.rb +16 -16
  121. data/lib/capybara/spec/session/window/window_opened_by_spec.rb +2 -2
  122. data/lib/capybara/spec/session/window/window_spec.rb +4 -4
  123. data/lib/capybara/spec/session/window/within_window_spec.rb +14 -14
  124. data/lib/capybara/spec/session/within_spec.rb +41 -41
  125. data/lib/capybara/spec/spec_helper.rb +11 -9
  126. data/lib/capybara/spec/test_app.rb +18 -17
  127. data/lib/capybara/spec/views/form.erb +29 -31
  128. data/lib/capybara/spec/views/with_html.erb +2 -2
  129. data/lib/capybara/version.rb +1 -1
  130. data/spec/basic_node_spec.rb +23 -23
  131. data/spec/capybara_spec.rb +20 -20
  132. data/spec/css_splitter_spec.rb +7 -7
  133. data/spec/dsl_spec.rb +37 -32
  134. data/spec/filter_set_spec.rb +4 -4
  135. data/spec/fixtures/selenium_driver_rspec_failure.rb +1 -1
  136. data/spec/fixtures/selenium_driver_rspec_success.rb +1 -1
  137. data/spec/minitest_spec.rb +4 -4
  138. data/spec/minitest_spec_spec.rb +23 -23
  139. data/spec/per_session_config_spec.rb +5 -5
  140. data/spec/rack_test_spec.rb +44 -44
  141. data/spec/result_spec.rb +14 -14
  142. data/spec/rspec/features_spec.rb +13 -13
  143. data/spec/rspec/scenarios_spec.rb +4 -4
  144. data/spec/rspec/shared_spec_matchers.rb +282 -281
  145. data/spec/rspec/views_spec.rb +3 -3
  146. data/spec/rspec_matchers_spec.rb +10 -10
  147. data/spec/rspec_spec.rb +29 -29
  148. data/spec/selector_spec.rb +64 -64
  149. data/spec/selenium_spec_chrome.rb +14 -22
  150. data/spec/selenium_spec_chrome_remote.rb +28 -8
  151. data/spec/selenium_spec_edge.rb +9 -4
  152. data/spec/selenium_spec_firefox_remote.rb +87 -0
  153. data/spec/selenium_spec_ie.rb +9 -4
  154. data/spec/selenium_spec_marionette.rb +42 -18
  155. data/spec/server_spec.rb +29 -27
  156. data/spec/session_spec.rb +17 -17
  157. data/spec/shared_selenium_session.rb +70 -52
  158. data/spec/spec_helper.rb +1 -1
  159. metadata +4 -2
@@ -5,17 +5,17 @@ class NodeWrapper
5
5
  def to_capybara_node(); @element end
6
6
  end
7
7
 
8
- Capybara::SpecHelper.spec "#to_capybara_node" do
8
+ Capybara::SpecHelper.spec '#to_capybara_node' do
9
9
  before do
10
10
  @session.visit('/with_html')
11
11
  end
12
12
 
13
- it "should support have_xxx expectations" do
13
+ it 'should support have_xxx expectations' do
14
14
  para = NodeWrapper.new(@session.find(:css, '#first'))
15
- expect(para).to have_link("ullamco")
15
+ expect(para).to have_link('ullamco')
16
16
  end
17
17
 
18
- it "should support within" do
18
+ it 'should support within' do
19
19
  para = NodeWrapper.new(@session.find(:css, '#first'))
20
20
  expect(@session).to have_css('#second')
21
21
  @session.within(para) do
@@ -24,13 +24,16 @@ Capybara::SpecHelper.spec "#to_capybara_node" do
24
24
  end
25
25
  end
26
26
 
27
- it "should generate correct errors" do
27
+ it 'should generate correct errors' do
28
28
  para = NodeWrapper.new(@session.find(:css, '#first'))
29
29
  expect do
30
- expect(para).to have_text("Header Class Test One")
30
+ expect(para).to have_text('Header Class Test One')
31
31
  end.to raise_error(/^expected to find text "Header Class Test One" in "Lore/)
32
32
  expect do
33
33
  expect(para).to have_css('#second')
34
- end.to raise_error(/^expected to find visible css "#second" within #<Capybara::Node::Element/)
34
+ end.to raise_error(/^expected to find css "#second" within #<Capybara::Node::Element/)
35
+ expect do
36
+ expect(para).to have_link(href: %r{/without_simple_html})
37
+ end.to raise_error(%r{^expected to find visible link nil with href matching /\\/without_simple_html/ within #<Capybara::Node::Element})
35
38
  end
36
39
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  Capybara::SpecHelper.spec '#refresh' do
4
- it "reload the page" do
4
+ it 'reload the page' do
5
5
  @session.visit('/form')
6
6
  expect(@session).to have_select('form_locale', selected: 'English')
7
7
  @session.select('Swedish', from: 'form_locale')
@@ -10,17 +10,14 @@ Capybara::SpecHelper.spec '#refresh' do
10
10
  expect(@session).to have_select('form_locale', selected: 'English')
11
11
  end
12
12
 
13
- it "raises any errors caught inside the server", requires: [:server] do
14
- quietly { @session.visit("/error") }
13
+ it 'raises any errors caught inside the server', requires: [:server] do
14
+ quietly { @session.visit('/error') }
15
15
  expect do
16
16
  @session.refresh
17
17
  end.to raise_error(TestApp::TestAppError)
18
18
  end
19
19
 
20
- it "it reposts" do
21
- if marionette?(@session) || edge?(@session) || ie?(@session)
22
- skip "Firefox and Edge insist on prompting without providing a way to suppress"
23
- end
20
+ it 'it reposts' do
24
21
  @session.visit('/form')
25
22
  @session.select('Sweden', from: 'form_region')
26
23
  @session.click_button('awesome')
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  Capybara::SpecHelper.spec '#reset_session!' do
4
- it "removes cookies" do
4
+ it 'removes cookies' do
5
5
  @session.visit('/set_cookie')
6
6
  @session.visit('/get_cookie')
7
7
  expect(@session).to have_content('test_cookie')
@@ -11,7 +11,7 @@ Capybara::SpecHelper.spec '#reset_session!' do
11
11
  expect(@session.body).not_to include('test_cookie')
12
12
  end
13
13
 
14
- it "resets current url, host, path" do
14
+ it 'resets current url, host, path' do
15
15
  @session.visit '/foo'
16
16
  expect(@session.current_url).not_to be_empty
17
17
  expect(@session.current_host).not_to be_empty
@@ -23,7 +23,7 @@ Capybara::SpecHelper.spec '#reset_session!' do
23
23
  expect(@session.current_host).to be_nil
24
24
  end
25
25
 
26
- it "resets page body" do
26
+ it 'resets page body' do
27
27
  @session.visit('/with_html')
28
28
  expect(@session).to have_content('This is a test')
29
29
  expect(@session.find('.//h1').text).to include('This is a test')
@@ -33,37 +33,37 @@ Capybara::SpecHelper.spec '#reset_session!' do
33
33
  expect(@session).to have_no_selector('.//h1')
34
34
  end
35
35
 
36
- it "is synchronous" do
37
- @session.visit("/with_slow_unload")
36
+ it 'is synchronous' do
37
+ @session.visit('/with_slow_unload')
38
38
  expect(@session).to have_selector(:css, 'div')
39
39
  @session.reset_session!
40
- expect(@session).to have_no_selector :xpath, "/html/body/*", wait: false
40
+ expect(@session).to have_no_selector :xpath, '/html/body/*', wait: false
41
41
  end
42
42
 
43
- it "handles modals during unload", requires: [:modals] do
43
+ it 'handles modals during unload', requires: [:modals] do
44
44
  @session.visit('/with_unload_alert')
45
45
  expect(@session).to have_selector(:css, 'div')
46
46
  expect { @session.reset_session! }.not_to raise_error
47
- expect(@session).to have_no_selector :xpath, "/html/body/*", wait: false
47
+ expect(@session).to have_no_selector :xpath, '/html/body/*', wait: false
48
48
  end
49
49
 
50
- it "handles already open modals", requires: [:modals] do
50
+ it 'handles already open modals', requires: [:modals] do
51
51
  @session.visit('/with_unload_alert')
52
52
  @session.click_link('Go away')
53
53
  expect { @session.reset_session! }.not_to raise_error
54
- expect(@session).to have_no_selector :xpath, "/html/body/*", wait: false
54
+ expect(@session).to have_no_selector :xpath, '/html/body/*', wait: false
55
55
  end
56
56
 
57
- it "raises any standard errors caught inside the server", requires: [:server] do
58
- quietly { @session.visit("/error") }
57
+ it 'raises any standard errors caught inside the server', requires: [:server] do
58
+ quietly { @session.visit('/error') }
59
59
  expect do
60
60
  @session.reset_session!
61
61
  end.to raise_error(TestApp::TestAppError)
62
- @session.visit("/")
63
- expect(@session.current_path).to eq("/")
62
+ @session.visit('/')
63
+ expect(@session.current_path).to eq('/')
64
64
  end
65
65
 
66
- it "closes extra windows", requires: [:windows] do
66
+ it 'closes extra windows', requires: [:windows] do
67
67
  @session.visit('/with_html')
68
68
  @session.open_new_window
69
69
  @session.open_new_window
@@ -72,7 +72,7 @@ Capybara::SpecHelper.spec '#reset_session!' do
72
72
  expect(@session.windows.size).to eq 1
73
73
  end
74
74
 
75
- it "closes extra windows when not on the first window", requires: [:windows] do
75
+ it 'closes extra windows when not on the first window', requires: [:windows] do
76
76
  @session.visit('/with_html')
77
77
  @session.switch_to_window(@session.open_new_window)
78
78
  @session.open_new_window
@@ -81,22 +81,22 @@ Capybara::SpecHelper.spec '#reset_session!' do
81
81
  expect(@session.windows.size).to eq 1
82
82
  end
83
83
 
84
- context "When reuse_server == false" do
84
+ context 'When reuse_server == false' do
85
85
  before do
86
86
  @reuse_server = Capybara.reuse_server
87
87
  Capybara.reuse_server = false
88
88
  end
89
89
 
90
- it "raises any standard errors caught inside the server during a second session", requires: [:server] do
90
+ it 'raises any standard errors caught inside the server during a second session', requires: [:server] do
91
91
  Capybara.using_driver(@session.mode) do
92
92
  Capybara.using_session(:another_session) do
93
93
  @another_session = Capybara.current_session
94
- quietly { @another_session.visit("/error") }
94
+ quietly { @another_session.visit('/error') }
95
95
  expect do
96
96
  @another_session.reset_session!
97
97
  end.to raise_error(TestApp::TestAppError)
98
- @another_session.visit("/")
99
- expect(@another_session.current_path).to eq("/")
98
+ @another_session.visit('/')
99
+ expect(@another_session.current_path).to eq('/')
100
100
  end
101
101
  end
102
102
  end
@@ -106,16 +106,16 @@ Capybara::SpecHelper.spec '#reset_session!' do
106
106
  end
107
107
  end
108
108
 
109
- it "raises configured errors caught inside the server", requires: [:server] do
109
+ it 'raises configured errors caught inside the server', requires: [:server] do
110
110
  prev_errors = Capybara.server_errors.dup
111
111
 
112
112
  Capybara.server_errors = [LoadError]
113
- quietly { @session.visit("/error") }
113
+ quietly { @session.visit('/error') }
114
114
  expect do
115
115
  @session.reset_session!
116
116
  end.not_to raise_error
117
117
 
118
- quietly { @session.visit("/load_error") }
118
+ quietly { @session.visit('/load_error') }
119
119
  expect do
120
120
  @session.reset_session!
121
121
  end.to raise_error(LoadError)
@@ -123,11 +123,11 @@ Capybara::SpecHelper.spec '#reset_session!' do
123
123
  Capybara.server_errors = prev_errors
124
124
  end
125
125
 
126
- it "ignores server errors when `Capybara.raise_server_errors = false`", requires: [:server] do
126
+ it 'ignores server errors when `Capybara.raise_server_errors = false`', requires: [:server] do
127
127
  Capybara.raise_server_errors = false
128
- quietly { @session.visit("/error") }
128
+ quietly { @session.visit('/error') }
129
129
  @session.reset_session!
130
- @session.visit("/")
131
- expect(@session.current_path).to eq("/")
130
+ @session.visit('/')
131
+ expect(@session.current_path).to eq('/')
132
132
  end
133
133
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  Capybara::SpecHelper.spec '#status_code' do
4
- it "should return response codes", requires: [:status_code] do
4
+ it 'should return response codes', requires: [:status_code] do
5
5
  @session.visit('/with_simple_html')
6
6
  expect(@session.status_code).to eq(200)
7
7
  end
@@ -8,12 +8,12 @@ Capybara::SpecHelper.spec '#save_and_open_page' do
8
8
  end
9
9
 
10
10
  after do
11
- Dir.glob("capybara-*.html").each do |file|
11
+ Dir.glob('capybara-*.html').each do |file|
12
12
  FileUtils.rm(file)
13
13
  end
14
14
  end
15
15
 
16
- it "sends open method to launchy" do
16
+ it 'sends open method to launchy' do
17
17
  allow(Launchy).to receive(:open)
18
18
  @session.save_and_open_page
19
19
  expect(Launchy).to have_received(:open).with(/capybara-\d+\.html/)
@@ -1,79 +1,79 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  Capybara::SpecHelper.spec '#save_page' do
4
- let(:alternative_path) { File.join(Dir.pwd, "save_and_open_page_tmp") }
4
+ let(:alternative_path) { File.join(Dir.pwd, 'save_and_open_page_tmp') }
5
5
  before do
6
6
  @old_save_path = Capybara.save_path
7
7
  Capybara.save_path = nil
8
- @session.visit("/foo")
8
+ @session.visit('/foo')
9
9
  end
10
10
 
11
11
  after do
12
12
  Capybara.save_path = @old_save_path
13
- Dir.glob("capybara-*.html").each do |file|
13
+ Dir.glob('capybara-*.html').each do |file|
14
14
  FileUtils.rm(file)
15
15
  end
16
16
  FileUtils.rm_rf alternative_path
17
17
  end
18
18
 
19
- it "saves the page in the root directory" do
19
+ it 'saves the page in the root directory' do
20
20
  @session.save_page
21
- path = Dir.glob("capybara-*.html").first
22
- expect(File.read(path)).to include("Another World")
21
+ path = Dir.glob('capybara-*.html').first
22
+ expect(File.read(path)).to include('Another World')
23
23
  end
24
24
 
25
- it "generates a sensible filename" do
25
+ it 'generates a sensible filename' do
26
26
  @session.save_page
27
- filename = Dir.glob("capybara-*.html").first
27
+ filename = Dir.glob('capybara-*.html').first
28
28
  expect(filename).to match(/^capybara-\d+\.html$/)
29
29
  end
30
30
 
31
- it "can store files in a specified directory" do
31
+ it 'can store files in a specified directory' do
32
32
  Capybara.save_path = alternative_path
33
33
  @session.save_page
34
- path = Dir.glob(alternative_path + "/capybara-*.html").first
35
- expect(File.read(path)).to include("Another World")
34
+ path = Dir.glob(alternative_path + '/capybara-*.html').first
35
+ expect(File.read(path)).to include('Another World')
36
36
  end
37
37
 
38
- it "uses the given filename" do
39
- @session.save_page("capybara-001122.html")
40
- expect(File.read("capybara-001122.html")).to include("Another World")
38
+ it 'uses the given filename' do
39
+ @session.save_page('capybara-001122.html')
40
+ expect(File.read('capybara-001122.html')).to include('Another World')
41
41
  end
42
42
 
43
- it "can store files in a specified directory with a given filename" do
43
+ it 'can store files in a specified directory with a given filename' do
44
44
  Capybara.save_path = alternative_path
45
- @session.save_page("capybara-001133.html")
46
- path = alternative_path + "/capybara-001133.html"
47
- expect(File.read(path)).to include("Another World")
45
+ @session.save_page('capybara-001133.html')
46
+ path = alternative_path + '/capybara-001133.html'
47
+ expect(File.read(path)).to include('Another World')
48
48
  end
49
49
 
50
- it "can store files in a specified directory with a given relative filename" do
50
+ it 'can store files in a specified directory with a given relative filename' do
51
51
  Capybara.save_path = alternative_path
52
- @session.save_page("tmp/capybara-001144.html")
53
- path = alternative_path + "/tmp/capybara-001144.html"
54
- expect(File.read(path)).to include("Another World")
52
+ @session.save_page('tmp/capybara-001144.html')
53
+ path = alternative_path + '/tmp/capybara-001144.html'
54
+ expect(File.read(path)).to include('Another World')
55
55
  end
56
56
 
57
- it "returns an absolute path in pwd" do
57
+ it 'returns an absolute path in pwd' do
58
58
  result = @session.save_page
59
- path = File.expand_path(Dir.glob("capybara-*.html").first, Dir.pwd)
59
+ path = File.expand_path(Dir.glob('capybara-*.html').first, Dir.pwd)
60
60
  expect(result).to eq(path)
61
61
  end
62
62
 
63
- it "returns an absolute path in given directory" do
63
+ it 'returns an absolute path in given directory' do
64
64
  Capybara.save_path = alternative_path
65
65
  result = @session.save_page
66
- path = File.expand_path(Dir.glob(alternative_path + "/capybara-*.html").first, alternative_path)
66
+ path = File.expand_path(Dir.glob(alternative_path + '/capybara-*.html').first, alternative_path)
67
67
  expect(result).to eq(path)
68
68
  end
69
69
 
70
- context "asset_host contains a string" do
71
- before { Capybara.asset_host = "http://example.com" }
70
+ context 'asset_host contains a string' do
71
+ before { Capybara.asset_host = 'http://example.com' }
72
72
 
73
73
  after { Capybara.asset_host = nil }
74
74
 
75
- it "prepends base tag with value from asset_host to the head" do
76
- @session.visit("/with_js")
75
+ it 'prepends base tag with value from asset_host to the head' do
76
+ @session.visit('/with_js')
77
77
  path = @session.save_page
78
78
 
79
79
  result = File.read(path)
@@ -82,29 +82,29 @@ Capybara::SpecHelper.spec '#save_page' do
82
82
 
83
83
  it "doesn't prepend base tag to pages when asset_host is nil" do
84
84
  Capybara.asset_host = nil
85
- @session.visit("/with_js")
85
+ @session.visit('/with_js')
86
86
  path = @session.save_page
87
87
 
88
88
  result = File.read(path)
89
89
  expect(result).to include('<html')
90
- expect(result).not_to include("http://example.com")
90
+ expect(result).not_to include('http://example.com')
91
91
  end
92
92
 
93
93
  it "doesn't prepend base tag to pages which already have it" do
94
- @session.visit("/with_base_tag")
94
+ @session.visit('/with_base_tag')
95
95
  path = @session.save_page
96
96
 
97
97
  result = File.read(path)
98
98
  expect(result).to include('<html')
99
- expect(result).not_to include("http://example.com")
99
+ expect(result).not_to include('http://example.com')
100
100
  end
101
101
 
102
- it "executes successfully even if the page is missing a <head>" do
103
- @session.visit("/with_simple_html")
102
+ it 'executes successfully even if the page is missing a <head>' do
103
+ @session.visit('/with_simple_html')
104
104
  path = @session.save_page
105
105
 
106
106
  result = File.read(path)
107
- expect(result).to include("Bar")
107
+ expect(result).to include('Bar')
108
108
  end
109
109
  end
110
110
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  Capybara::SpecHelper.spec '#save_screenshot', requires: [:screenshot] do
4
- let(:alternative_path) { File.join(Dir.pwd, "save_screenshot_tmp") }
4
+ let(:alternative_path) { File.join(Dir.pwd, 'save_screenshot_tmp') }
5
5
  before do
6
6
  @old_save_path = Capybara.save_path
7
7
  Capybara.save_path = nil
@@ -13,7 +13,7 @@ Capybara::SpecHelper.spec '#save_screenshot', requires: [:screenshot] do
13
13
  FileUtils.rm_rf alternative_path
14
14
  end
15
15
 
16
- it "generates sensible filename" do
16
+ it 'generates sensible filename' do
17
17
  allow(@session.driver).to receive(:save_screenshot)
18
18
 
19
19
  @session.save_screenshot
@@ -22,7 +22,7 @@ Capybara::SpecHelper.spec '#save_screenshot', requires: [:screenshot] do
22
22
  expect(@session.driver).to have_received(:save_screenshot).with(regexp, {})
23
23
  end
24
24
 
25
- it "allows to specify another path" do
25
+ it 'allows to specify another path' do
26
26
  allow(@session.driver).to receive(:save_screenshot)
27
27
 
28
28
  custom_path = 'screenshots/1.png'
@@ -31,8 +31,8 @@ Capybara::SpecHelper.spec '#save_screenshot', requires: [:screenshot] do
31
31
  expect(@session.driver).to have_received(:save_screenshot).with(/#{custom_path}$/, {})
32
32
  end
33
33
 
34
- context "with Capybara.save_path" do
35
- it "file is generated in the correct location" do
34
+ context 'with Capybara.save_path' do
35
+ it 'file is generated in the correct location' do
36
36
  Capybara.save_path = alternative_path
37
37
  allow(@session.driver).to receive(:save_screenshot)
38
38
 
@@ -42,7 +42,7 @@ Capybara::SpecHelper.spec '#save_screenshot', requires: [:screenshot] do
42
42
  expect(@session.driver).to have_received(:save_screenshot).with(regexp, {})
43
43
  end
44
44
 
45
- it "relative paths are relative to save_path" do
45
+ it 'relative paths are relative to save_path' do
46
46
  Capybara.save_path = alternative_path
47
47
  allow(@session.driver).to receive(:save_screenshot)
48
48
 
@@ -1,14 +1,14 @@
1
1
  # coding: US-ASCII
2
2
  # frozen_string_literal: true
3
3
 
4
- Capybara::SpecHelper.spec "#save_screenshot" do
4
+ Capybara::SpecHelper.spec '#save_screenshot' do
5
5
  let(:image_path) { File.join(Dir.tmpdir, 'capybara-screenshot.png') }
6
6
 
7
7
  before do
8
8
  @session.visit '/'
9
9
  end
10
10
 
11
- it "should generate PNG file", requires: [:screenshot] do
11
+ it 'should generate PNG file', requires: [:screenshot] do
12
12
  path = @session.save_screenshot image_path
13
13
 
14
14
  magic = File.read(image_path, 4)