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,19 +5,19 @@ Capybara::SpecHelper.spec '#has_style?', requires: [:css] do
5
5
  @session.visit('/with_html')
6
6
  end
7
7
 
8
- it "should be true if the element has the given style" do
8
+ it 'should be true if the element has the given style' do
9
9
  expect(@session.find(:css, '#first')).to have_style(display: 'block')
10
10
  expect(@session.find(:css, '#first').has_style?(display: 'block')).to be true
11
11
  expect(@session.find(:css, '#second')).to have_style('display' => 'inline')
12
12
  expect(@session.find(:css, '#second').has_style?('display' => 'inline')).to be true
13
13
  end
14
14
 
15
- it "should be false if the element does not have the given style" do
15
+ it 'should be false if the element does not have the given style' do
16
16
  expect(@session.find(:css, '#first').has_style?('display' => 'inline')).to be false
17
17
  expect(@session.find(:css, '#second').has_style?(display: 'block')).to be false
18
18
  end
19
19
 
20
- it "allows Regexp for value matching" do
20
+ it 'allows Regexp for value matching' do
21
21
  expect(@session.find(:css, '#first')).to have_style(display: /^bl/)
22
22
  expect(@session.find(:css, '#first').has_style?('display' => /^bl/)).to be true
23
23
  expect(@session.find(:css, '#first').has_style?(display: /^in/)).to be false
@@ -5,13 +5,13 @@ Capybara::SpecHelper.spec '#has_table?' do
5
5
  @session.visit('/tables')
6
6
  end
7
7
 
8
- it "should be true if the table is on the page" do
8
+ it 'should be true if the table is on the page' do
9
9
  expect(@session).to have_table('Villain')
10
10
  expect(@session).to have_table('villain_table')
11
11
  expect(@session).to have_table(:villain_table)
12
12
  end
13
13
 
14
- it "should be false if the table is not on the page" do
14
+ it 'should be false if the table is not on the page' do
15
15
  expect(@session).not_to have_table('Monkey')
16
16
  end
17
17
  end
@@ -21,12 +21,12 @@ Capybara::SpecHelper.spec '#has_no_table?' do
21
21
  @session.visit('/tables')
22
22
  end
23
23
 
24
- it "should be false if the table is on the page" do
24
+ it 'should be false if the table is on the page' do
25
25
  expect(@session).not_to have_no_table('Villain')
26
26
  expect(@session).not_to have_no_table('villain_table')
27
27
  end
28
28
 
29
- it "should be true if the table is not on the page" do
29
+ it 'should be true if the table is not on the page' do
30
30
  expect(@session).to have_no_table('Monkey')
31
31
  end
32
32
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  Capybara::SpecHelper.spec '#has_text?' do
4
- it "should be true if the given text is on the page at least once" do
4
+ it 'should be true if the given text is on the page at least once' do
5
5
  @session.visit('/with_html')
6
6
  expect(@session).to have_text('est')
7
7
  expect(@session).to have_text('Lorem')
@@ -9,32 +9,32 @@ Capybara::SpecHelper.spec '#has_text?' do
9
9
  expect(@session).to have_text(:Redirect)
10
10
  end
11
11
 
12
- it "should be true if scoped to an element which has the text" do
12
+ it 'should be true if scoped to an element which has the text' do
13
13
  @session.visit('/with_html')
14
14
  @session.within("//a[@title='awesome title']") do
15
15
  expect(@session).to have_text('labore')
16
16
  end
17
17
  end
18
18
 
19
- it "should be false if scoped to an element which does not have the text" do
19
+ it 'should be false if scoped to an element which does not have the text' do
20
20
  @session.visit('/with_html')
21
21
  @session.within("//a[@title='awesome title']") do
22
22
  expect(@session).not_to have_text('monkey')
23
23
  end
24
24
  end
25
25
 
26
- it "should ignore tags" do
26
+ it 'should ignore tags' do
27
27
  @session.visit('/with_html')
28
28
  expect(@session).not_to have_text('exercitation <a href="/foo" id="foo">ullamco</a> laboris')
29
29
  expect(@session).to have_text('exercitation ullamco laboris')
30
30
  end
31
31
 
32
- it "should search correctly normalized text" do
32
+ it 'should search correctly normalized text' do
33
33
  @session.visit('/with_html')
34
34
  expect(@session).to have_text('text with whitespace')
35
35
  end
36
36
 
37
- it "should be false if the given text is not on the page" do
37
+ it 'should be false if the given text is not on the page' do
38
38
  @session.visit('/with_html')
39
39
  expect(@session).not_to have_text('xxxxyzzz')
40
40
  expect(@session).not_to have_text('monkey')
@@ -66,23 +66,23 @@ Capybara::SpecHelper.spec '#has_text?' do
66
66
  expect(@session).not_to have_text('aVar')
67
67
  end
68
68
 
69
- it "should be false if the given text is on the page but not visible" do
69
+ it 'should be false if the given text is on the page but not visible' do
70
70
  @session.visit('/with_html')
71
71
  expect(@session).not_to have_text('Inside element with hidden ancestor')
72
72
  end
73
73
 
74
- it "should be true if :all given and text is invisible." do
74
+ it 'should be true if :all given and text is invisible.' do
75
75
  @session.visit('/with_html')
76
76
  expect(@session).to have_text(:all, 'Some of this text is hidden!')
77
77
  end
78
78
 
79
- it "should be true if `Capybara.ignore_hidden_elements = false` and text is invisible." do
79
+ it 'should be true if `Capybara.ignore_hidden_elements = false` and text is invisible.' do
80
80
  Capybara.ignore_hidden_elements = false
81
81
  @session.visit('/with_html')
82
82
  expect(@session).to have_text('Some of this text is hidden!')
83
83
  end
84
84
 
85
- it "should be true if the text in the page matches given regexp" do
85
+ it 'should be true if the text in the page matches given regexp' do
86
86
  @session.visit('/with_html')
87
87
  expect(@session).to have_text(/Lorem/)
88
88
  end
@@ -92,50 +92,50 @@ Capybara::SpecHelper.spec '#has_text?' do
92
92
  expect(@session).not_to have_text(/xxxxyzzz/)
93
93
  end
94
94
 
95
- context "with exact: true option" do
96
- it "should be true if text matches exactly" do
95
+ context 'with exact: true option' do
96
+ it 'should be true if text matches exactly' do
97
97
  @session.visit('/with_html')
98
- expect(@session.find(:id, "h2one")).to have_text("Header Class Test One", exact: true)
98
+ expect(@session.find(:id, 'h2one')).to have_text('Header Class Test One', exact: true)
99
99
  end
100
100
 
101
101
  it "should be false if text doesn't match exactly" do
102
102
  @session.visit('/with_html')
103
- expect(@session.find(:id, "h2one")).not_to have_text("Header Class Test On", exact: true)
103
+ expect(@session.find(:id, 'h2one')).not_to have_text('Header Class Test On', exact: true)
104
104
  end
105
105
  end
106
106
 
107
- it "should escape any characters that would have special meaning in a regexp" do
107
+ it 'should escape any characters that would have special meaning in a regexp' do
108
108
  @session.visit('/with_html')
109
109
  expect(@session).not_to have_text('.orem')
110
110
  end
111
111
 
112
- it "should accept non-string parameters" do
112
+ it 'should accept non-string parameters' do
113
113
  @session.visit('/with_html')
114
114
  expect(@session).to have_text(42)
115
115
  end
116
116
 
117
- it "should be true when passed nil" do
117
+ it 'should be true when passed nil' do
118
118
  # nil is converted to '' when to_s is invoked
119
119
  @session.visit('/with_html')
120
120
  expect(@session).to have_text(nil)
121
121
  end
122
122
 
123
- it "should wait for text to appear", requires: [:js] do
123
+ it 'should wait for text to appear', requires: [:js] do
124
124
  Capybara.using_wait_time(3) do
125
125
  @session.visit('/with_js')
126
126
  @session.click_link('Click me')
127
- expect(@session).to have_text("Has been clicked")
127
+ expect(@session).to have_text('Has been clicked')
128
128
  end
129
129
  end
130
130
 
131
- context "with between" do
132
- it "should be true if the text occurs within the range given" do
131
+ context 'with between' do
132
+ it 'should be true if the text occurs within the range given' do
133
133
  @session.visit('/with_count')
134
134
  expect(@session).to have_text('count', between: 1..3)
135
135
  expect(@session).to have_text(/count/, between: 2..2)
136
136
  end
137
137
 
138
- it "should be false if the text occurs more or fewer times than range" do
138
+ it 'should be false if the text occurs more or fewer times than range' do
139
139
  @session.visit('/with_count')
140
140
  expect(@session).not_to have_text('count', between: 0..1)
141
141
  expect(@session).not_to have_text('count', between: 3..10)
@@ -143,76 +143,76 @@ Capybara::SpecHelper.spec '#has_text?' do
143
143
  end
144
144
  end
145
145
 
146
- context "with count" do
147
- it "should be true if the text occurs the given number of times" do
146
+ context 'with count' do
147
+ it 'should be true if the text occurs the given number of times' do
148
148
  @session.visit('/with_count')
149
149
  expect(@session).to have_text('count', count: 2)
150
150
  end
151
151
 
152
- it "should be false if the text occurs a different number of times than the given" do
152
+ it 'should be false if the text occurs a different number of times than the given' do
153
153
  @session.visit('/with_count')
154
154
  expect(@session).not_to have_text('count', count: 0)
155
155
  expect(@session).not_to have_text('count', count: 1)
156
156
  expect(@session).not_to have_text(/count/, count: 3)
157
157
  end
158
158
 
159
- it "should coerce count to an integer" do
159
+ it 'should coerce count to an integer' do
160
160
  @session.visit('/with_count')
161
161
  expect(@session).to have_text('count', count: '2')
162
162
  expect(@session).not_to have_text('count', count: '3')
163
163
  end
164
164
  end
165
165
 
166
- context "with maximum" do
167
- it "should be true when text occurs same or fewer times than given" do
166
+ context 'with maximum' do
167
+ it 'should be true when text occurs same or fewer times than given' do
168
168
  @session.visit('/with_count')
169
169
  expect(@session).to have_text('count', maximum: 2)
170
170
  expect(@session).to have_text(/count/, maximum: 3)
171
171
  end
172
172
 
173
- it "should be false when text occurs more times than given" do
173
+ it 'should be false when text occurs more times than given' do
174
174
  @session.visit('/with_count')
175
175
  expect(@session).not_to have_text('count', maximum: 1)
176
176
  expect(@session).not_to have_text('count', maximum: 0)
177
177
  end
178
178
 
179
- it "should coerce maximum to an integer" do
179
+ it 'should coerce maximum to an integer' do
180
180
  @session.visit('/with_count')
181
181
  expect(@session).to have_text('count', maximum: '2')
182
182
  expect(@session).not_to have_text('count', maximum: '1')
183
183
  end
184
184
  end
185
185
 
186
- context "with minimum" do
187
- it "should be true when text occurs same or more times than given" do
186
+ context 'with minimum' do
187
+ it 'should be true when text occurs same or more times than given' do
188
188
  @session.visit('/with_count')
189
189
  expect(@session).to have_text('count', minimum: 2)
190
190
  expect(@session).to have_text(/count/, minimum: 0)
191
191
  end
192
192
 
193
- it "should be false when text occurs fewer times than given" do
193
+ it 'should be false when text occurs fewer times than given' do
194
194
  @session.visit('/with_count')
195
195
  expect(@session).not_to have_text('count', minimum: 3)
196
196
  end
197
197
 
198
- it "should coerce minimum to an integer" do
198
+ it 'should coerce minimum to an integer' do
199
199
  @session.visit('/with_count')
200
200
  expect(@session).to have_text('count', minimum: '2')
201
201
  expect(@session).not_to have_text('count', minimum: '3')
202
202
  end
203
203
  end
204
204
 
205
- context "with wait", requires: [:js] do
206
- it "should find element if it appears before given wait duration" do
205
+ context 'with wait', requires: [:js] do
206
+ it 'should find element if it appears before given wait duration' do
207
207
  Capybara.using_wait_time(0.1) do
208
208
  @session.visit('/with_js')
209
209
  @session.click_link('Click me')
210
- expect(@session).to have_text('Has been clicked', wait: 0.9)
210
+ expect(@session).to have_text('Has been clicked', wait: 2)
211
211
  end
212
212
  end
213
213
  end
214
214
 
215
- it "should raise an error if an invalid option is passed" do
215
+ it 'should raise an error if an invalid option is passed' do
216
216
  @session.visit('/with_html')
217
217
  expect do
218
218
  expect(@session).to have_text('Lorem', invalid: true)
@@ -221,34 +221,34 @@ Capybara::SpecHelper.spec '#has_text?' do
221
221
  end
222
222
 
223
223
  Capybara::SpecHelper.spec '#has_no_text?' do
224
- it "should be false if the given text is on the page at least once" do
224
+ it 'should be false if the given text is on the page at least once' do
225
225
  @session.visit('/with_html')
226
226
  expect(@session).not_to have_no_text('est')
227
227
  expect(@session).not_to have_no_text('Lorem')
228
228
  expect(@session).not_to have_no_text('Redirect')
229
229
  end
230
230
 
231
- it "should be false if scoped to an element which has the text" do
231
+ it 'should be false if scoped to an element which has the text' do
232
232
  @session.visit('/with_html')
233
233
  @session.within("//a[@title='awesome title']") do
234
234
  expect(@session).not_to have_no_text('labore')
235
235
  end
236
236
  end
237
237
 
238
- it "should be true if scoped to an element which does not have the text" do
238
+ it 'should be true if scoped to an element which does not have the text' do
239
239
  @session.visit('/with_html')
240
240
  @session.within("//a[@title='awesome title']") do
241
241
  expect(@session).to have_no_text('monkey')
242
242
  end
243
243
  end
244
244
 
245
- it "should ignore tags" do
245
+ it 'should ignore tags' do
246
246
  @session.visit('/with_html')
247
247
  expect(@session).to have_no_text('exercitation <a href="/foo" id="foo">ullamco</a> laboris')
248
248
  expect(@session).not_to have_no_text('exercitation ullamco laboris')
249
249
  end
250
250
 
251
- it "should be true if the given text is not on the page" do
251
+ it 'should be true if the given text is not on the page' do
252
252
  @session.visit('/with_html')
253
253
  expect(@session).to have_no_text('xxxxyzzz')
254
254
  expect(@session).to have_no_text('monkey')
@@ -280,17 +280,17 @@ Capybara::SpecHelper.spec '#has_no_text?' do
280
280
  expect(@session).to have_no_text('aVar')
281
281
  end
282
282
 
283
- it "should be true if the given text is on the page but not visible" do
283
+ it 'should be true if the given text is on the page but not visible' do
284
284
  @session.visit('/with_html')
285
285
  expect(@session).to have_no_text('Inside element with hidden ancestor')
286
286
  end
287
287
 
288
- it "should be false if :all given and text is invisible." do
288
+ it 'should be false if :all given and text is invisible.' do
289
289
  @session.visit('/with_html')
290
290
  expect(@session).not_to have_no_text(:all, 'Some of this text is hidden!')
291
291
  end
292
292
 
293
- it "should be false if `Capybara.ignore_hidden_elements = false` and text is invisible." do
293
+ it 'should be false if `Capybara.ignore_hidden_elements = false` and text is invisible.' do
294
294
  Capybara.ignore_hidden_elements = false
295
295
  @session.visit('/with_html')
296
296
  expect(@session).not_to have_no_text('Some of this text is hidden!')
@@ -301,24 +301,25 @@ Capybara::SpecHelper.spec '#has_no_text?' do
301
301
  expect(@session).to have_no_text(/xxxxyzzz/)
302
302
  end
303
303
 
304
- it "should be false if the text in the page matches given regexp" do
304
+ it 'should be false if the text in the page matches given regexp' do
305
305
  @session.visit('/with_html')
306
306
  expect(@session).not_to have_no_text(/Lorem/)
307
307
  end
308
308
 
309
- it "should escape any characters that would have special meaning in a regexp" do
309
+ it 'should escape any characters that would have special meaning in a regexp' do
310
310
  @session.visit('/with_html')
311
311
  expect(@session).to have_no_text('.orem')
312
312
  end
313
313
 
314
- it "should wait for text to disappear", requires: [:js] do
314
+ it 'should wait for text to disappear', requires: [:js] do
315
+ Capybara.default_max_wait_time = 2
315
316
  @session.visit('/with_js')
316
317
  @session.click_link('Click me')
317
- expect(@session).to have_no_text("I changed it")
318
+ expect(@session).to have_no_text('I changed it')
318
319
  end
319
320
 
320
- context "with wait", requires: [:js] do
321
- it "should not find element if it appears after given wait duration" do
321
+ context 'with wait', requires: [:js] do
322
+ it 'should not find element if it appears after given wait duration' do
322
323
  @session.visit('/with_js')
323
324
  @session.click_link('Click me')
324
325
  expect(@session).to have_no_text('Has been clicked', wait: 0.05)
@@ -5,35 +5,35 @@ Capybara::SpecHelper.spec '#has_title?' do
5
5
  @session.visit('/with_js')
6
6
  end
7
7
 
8
- it "should be true if the page has the given title" do
8
+ it 'should be true if the page has the given title' do
9
9
  expect(@session).to have_title('with_js')
10
10
  end
11
11
 
12
- it "should allow regexp matches" do
12
+ it 'should allow regexp matches' do
13
13
  expect(@session).to have_title(/w[a-z]{3}_js/)
14
14
  expect(@session).not_to have_title(/monkey/)
15
15
  end
16
16
 
17
- it "should wait for title", requires: [:js] do
18
- @session.click_link("Change title")
19
- expect(@session).to have_title("changed title")
17
+ it 'should wait for title', requires: [:js] do
18
+ @session.click_link('Change title')
19
+ expect(@session).to have_title('changed title')
20
20
  end
21
21
 
22
- it "should be false if the page has not the given title" do
22
+ it 'should be false if the page has not the given title' do
23
23
  expect(@session).not_to have_title('monkey')
24
24
  end
25
25
 
26
- it "should default to exact: false matching" do
26
+ it 'should default to exact: false matching' do
27
27
  expect(@session).to have_title('with_js', exact: false)
28
28
  expect(@session).to have_title('with_', exact: false)
29
29
  end
30
30
 
31
- it "should match exactly if exact: true option passed" do
31
+ it 'should match exactly if exact: true option passed' do
32
32
  expect(@session).to have_title('with_js', exact: true)
33
33
  expect(@session).not_to have_title('with_', exact: true)
34
34
  end
35
35
 
36
- it "should match partial if exact: false option passed" do
36
+ it 'should match partial if exact: false option passed' do
37
37
  expect(@session).to have_title('with_js', exact: false)
38
38
  expect(@session).to have_title('with_', exact: false)
39
39
  end
@@ -44,23 +44,23 @@ Capybara::SpecHelper.spec '#has_no_title?' do
44
44
  @session.visit('/with_js')
45
45
  end
46
46
 
47
- it "should be false if the page has the given title" do
47
+ it 'should be false if the page has the given title' do
48
48
  expect(@session).not_to have_no_title('with_js')
49
49
  end
50
50
 
51
- it "should allow regexp matches" do
51
+ it 'should allow regexp matches' do
52
52
  expect(@session).not_to have_no_title(/w[a-z]{3}_js/)
53
53
  expect(@session).to have_no_title(/monkey/)
54
54
  end
55
55
 
56
- it "should wait for title to disappear", requires: [:js] do
56
+ it 'should wait for title to disappear', requires: [:js] do
57
57
  Capybara.using_wait_time(5) do
58
- @session.click_link("Change title") # triggers title change after 400ms
58
+ @session.click_link('Change title') # triggers title change after 400ms
59
59
  expect(@session).to have_no_title('with_js')
60
60
  end
61
61
  end
62
62
 
63
- it "should be true if the page has not the given title" do
63
+ it 'should be true if the page has not the given title' do
64
64
  expect(@session).to have_no_title('monkey')
65
65
  end
66
66
  end
@@ -5,31 +5,31 @@ Capybara::SpecHelper.spec '#has_xpath?' do
5
5
  @session.visit('/with_html')
6
6
  end
7
7
 
8
- it "should be true if the given selector is on the page" do
9
- expect(@session).to have_xpath("//p")
8
+ it 'should be true if the given selector is on the page' do
9
+ expect(@session).to have_xpath('//p')
10
10
  expect(@session).to have_xpath("//p//a[@id='foo']")
11
11
  expect(@session).to have_xpath("//p[contains(.,'est')]")
12
12
  end
13
13
 
14
- it "should be false if the given selector is not on the page" do
15
- expect(@session).not_to have_xpath("//abbr")
14
+ it 'should be false if the given selector is not on the page' do
15
+ expect(@session).not_to have_xpath('//abbr')
16
16
  expect(@session).not_to have_xpath("//p//a[@id='doesnotexist']")
17
17
  expect(@session).not_to have_xpath("//p[contains(.,'thisstringisnotonpage')]")
18
18
  end
19
19
 
20
- it "should use xpath even if default selector is CSS" do
20
+ it 'should use xpath even if default selector is CSS' do
21
21
  Capybara.default_selector = :css
22
22
  expect(@session).not_to have_xpath("//p//a[@id='doesnotexist']")
23
23
  end
24
24
 
25
- it "should respect scopes" do
25
+ it 'should respect scopes' do
26
26
  @session.within "//p[@id='first']" do
27
27
  expect(@session).to have_xpath(".//a[@id='foo']")
28
28
  expect(@session).not_to have_xpath(".//a[@id='red']")
29
29
  end
30
30
  end
31
31
 
32
- it "should wait for content to appear", requires: [:js] do
32
+ it 'should wait for content to appear', requires: [:js] do
33
33
  Capybara.using_wait_time(3) do
34
34
  @session.visit('/with_js')
35
35
  @session.click_link('Click me') # updates page after 500ms
@@ -37,31 +37,31 @@ Capybara::SpecHelper.spec '#has_xpath?' do
37
37
  end
38
38
  end
39
39
 
40
- context "with count" do
41
- it "should be true if the content occurs the given number of times" do
42
- expect(@session).to have_xpath("//p", count: 3)
40
+ context 'with count' do
41
+ it 'should be true if the content occurs the given number of times' do
42
+ expect(@session).to have_xpath('//p', count: 3)
43
43
  expect(@session).to have_xpath("//p//a[@id='foo']", count: 1)
44
44
  expect(@session).to have_xpath("//p[contains(.,'est')]", count: 1)
45
45
  expect(@session).to have_xpath("//p//a[@id='doesnotexist']", count: 0)
46
46
  end
47
47
 
48
- it "should be false if the content occurs a different number of times than the given" do
49
- expect(@session).not_to have_xpath("//p", count: 6)
48
+ it 'should be false if the content occurs a different number of times than the given' do
49
+ expect(@session).not_to have_xpath('//p', count: 6)
50
50
  expect(@session).not_to have_xpath("//p//a[@id='foo']", count: 2)
51
51
  expect(@session).not_to have_xpath("//p[contains(.,'est')]", count: 5)
52
52
  expect(@session).not_to have_xpath("//p//a[@id='doesnotexist']", count: 1)
53
53
  end
54
54
  end
55
55
 
56
- context "with text" do
57
- it "should discard all matches where the given string is not contained" do
58
- expect(@session).to have_xpath("//p//a", text: "Redirect", count: 1)
59
- expect(@session).not_to have_xpath("//p", text: "Doesnotexist")
56
+ context 'with text' do
57
+ it 'should discard all matches where the given string is not contained' do
58
+ expect(@session).to have_xpath('//p//a', text: 'Redirect', count: 1)
59
+ expect(@session).not_to have_xpath('//p', text: 'Doesnotexist')
60
60
  end
61
61
 
62
- it "should discard all matches where the given regexp is not matched" do
63
- expect(@session).to have_xpath("//p//a", text: /re[dab]i/i, count: 1)
64
- expect(@session).not_to have_xpath("//p//a", text: /Red$/)
62
+ it 'should discard all matches where the given regexp is not matched' do
63
+ expect(@session).to have_xpath('//p//a', text: /re[dab]i/i, count: 1)
64
+ expect(@session).not_to have_xpath('//p//a', text: /Red$/)
65
65
  end
66
66
  end
67
67
  end
@@ -71,61 +71,62 @@ Capybara::SpecHelper.spec '#has_no_xpath?' do
71
71
  @session.visit('/with_html')
72
72
  end
73
73
 
74
- it "should be false if the given selector is on the page" do
75
- expect(@session).not_to have_no_xpath("//p")
74
+ it 'should be false if the given selector is on the page' do
75
+ expect(@session).not_to have_no_xpath('//p')
76
76
  expect(@session).not_to have_no_xpath("//p//a[@id='foo']")
77
77
  expect(@session).not_to have_no_xpath("//p[contains(.,'est')]")
78
78
  end
79
79
 
80
- it "should be true if the given selector is not on the page" do
81
- expect(@session).to have_no_xpath("//abbr")
80
+ it 'should be true if the given selector is not on the page' do
81
+ expect(@session).to have_no_xpath('//abbr')
82
82
  expect(@session).to have_no_xpath("//p//a[@id='doesnotexist']")
83
83
  expect(@session).to have_no_xpath("//p[contains(.,'thisstringisnotonpage')]")
84
84
  end
85
85
 
86
- it "should use xpath even if default selector is CSS" do
86
+ it 'should use xpath even if default selector is CSS' do
87
87
  Capybara.default_selector = :css
88
88
  expect(@session).to have_no_xpath("//p//a[@id='doesnotexist']")
89
89
  end
90
90
 
91
- it "should respect scopes" do
91
+ it 'should respect scopes' do
92
92
  @session.within "//p[@id='first']" do
93
93
  expect(@session).not_to have_no_xpath(".//a[@id='foo']")
94
94
  expect(@session).to have_no_xpath(".//a[@id='red']")
95
95
  end
96
96
  end
97
97
 
98
- it "should wait for content to disappear", requires: [:js] do
98
+ it 'should wait for content to disappear', requires: [:js] do
99
+ Capybara.default_max_wait_time = 2
99
100
  @session.visit('/with_js')
100
101
  @session.click_link('Click me')
101
102
  expect(@session).to have_no_xpath("//p[@id='change']")
102
103
  end
103
104
 
104
- context "with count" do
105
- it "should be false if the content occurs the given number of times" do
106
- expect(@session).not_to have_no_xpath("//p", count: 3)
105
+ context 'with count' do
106
+ it 'should be false if the content occurs the given number of times' do
107
+ expect(@session).not_to have_no_xpath('//p', count: 3)
107
108
  expect(@session).not_to have_no_xpath("//p//a[@id='foo']", count: 1)
108
109
  expect(@session).not_to have_no_xpath("//p[contains(.,'est')]", count: 1)
109
110
  expect(@session).not_to have_no_xpath("//p//a[@id='doesnotexist']", count: 0)
110
111
  end
111
112
 
112
- it "should be true if the content occurs a different number of times than the given" do
113
- expect(@session).to have_no_xpath("//p", count: 6)
113
+ it 'should be true if the content occurs a different number of times than the given' do
114
+ expect(@session).to have_no_xpath('//p', count: 6)
114
115
  expect(@session).to have_no_xpath("//p//a[@id='foo']", count: 2)
115
116
  expect(@session).to have_no_xpath("//p[contains(.,'est')]", count: 5)
116
117
  expect(@session).to have_no_xpath("//p//a[@id='doesnotexist']", count: 1)
117
118
  end
118
119
  end
119
120
 
120
- context "with text" do
121
- it "should discard all matches where the given string is contained" do
122
- expect(@session).not_to have_no_xpath("//p//a", text: "Redirect", count: 1)
123
- expect(@session).to have_no_xpath("//p", text: "Doesnotexist")
121
+ context 'with text' do
122
+ it 'should discard all matches where the given string is contained' do
123
+ expect(@session).not_to have_no_xpath('//p//a', text: 'Redirect', count: 1)
124
+ expect(@session).to have_no_xpath('//p', text: 'Doesnotexist')
124
125
  end
125
126
 
126
- it "should discard all matches where the given regexp is matched" do
127
- expect(@session).not_to have_no_xpath("//p//a", text: /re[dab]i/i, count: 1)
128
- expect(@session).to have_no_xpath("//p//a", text: /Red$/)
127
+ it 'should discard all matches where the given regexp is matched' do
128
+ expect(@session).not_to have_no_xpath('//p//a', text: /re[dab]i/i, count: 1)
129
+ expect(@session).to have_no_xpath('//p//a', text: /Red$/)
129
130
  end
130
131
  end
131
132
  end