capybara 2.2.1 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/History.md +26 -0
- data/README.md +36 -14
- data/lib/capybara.rb +6 -3
- data/lib/capybara/driver/base.rb +37 -1
- data/lib/capybara/driver/node.rb +10 -2
- data/lib/capybara/helpers.rb +21 -13
- data/lib/capybara/node/base.rb +12 -7
- data/lib/capybara/node/element.rb +17 -1
- data/lib/capybara/node/finders.rb +22 -1
- data/lib/capybara/node/matchers.rb +26 -5
- data/lib/capybara/node/simple.rb +9 -2
- data/lib/capybara/rack_test/css_handlers.rb +3 -1
- data/lib/capybara/rack_test/form.rb +3 -2
- data/lib/capybara/rack_test/node.rb +3 -3
- data/lib/capybara/rspec.rb +1 -0
- data/lib/capybara/rspec/features.rb +2 -1
- data/lib/capybara/rspec/matchers.rb +50 -5
- data/lib/capybara/selenium/driver.rb +76 -12
- data/lib/capybara/selenium/node.rb +8 -0
- data/lib/capybara/server.rb +1 -1
- data/lib/capybara/session.rb +234 -29
- data/lib/capybara/spec/public/jquery.js +1 -1
- data/lib/capybara/spec/public/test.js +7 -0
- data/lib/capybara/spec/session/all_spec.rb +88 -17
- data/lib/capybara/spec/session/assert_selector.rb +6 -0
- data/lib/capybara/spec/session/attach_file_spec.rb +15 -15
- data/lib/capybara/spec/session/body_spec.rb +4 -4
- data/lib/capybara/spec/session/check_spec.rb +16 -16
- data/lib/capybara/spec/session/choose_spec.rb +5 -5
- data/lib/capybara/spec/session/click_button_spec.rb +93 -84
- data/lib/capybara/spec/session/click_link_or_button_spec.rb +8 -8
- data/lib/capybara/spec/session/click_link_spec.rb +26 -19
- data/lib/capybara/spec/session/current_scope_spec.rb +3 -3
- data/lib/capybara/spec/session/current_url_spec.rb +8 -8
- data/lib/capybara/spec/session/evaluate_script_spec.rb +1 -1
- data/lib/capybara/spec/session/execute_script_spec.rb +2 -2
- data/lib/capybara/spec/session/fill_in_spec.rb +22 -22
- data/lib/capybara/spec/session/find_button_spec.rb +4 -4
- data/lib/capybara/spec/session/find_by_id_spec.rb +3 -3
- data/lib/capybara/spec/session/find_field_spec.rb +7 -7
- data/lib/capybara/spec/session/find_link_spec.rb +4 -4
- data/lib/capybara/spec/session/find_spec.rb +46 -46
- data/lib/capybara/spec/session/first_spec.rb +23 -23
- data/lib/capybara/spec/session/go_back_spec.rb +3 -3
- data/lib/capybara/spec/session/go_forward_spec.rb +4 -4
- data/lib/capybara/spec/session/has_button_spec.rb +13 -13
- data/lib/capybara/spec/session/has_css_spec.rb +87 -87
- data/lib/capybara/spec/session/has_field_spec.rb +87 -87
- data/lib/capybara/spec/session/has_link_spec.rb +11 -11
- data/lib/capybara/spec/session/has_select_spec.rb +58 -58
- data/lib/capybara/spec/session/has_selector_spec.rb +48 -48
- data/lib/capybara/spec/session/has_table_spec.rb +7 -7
- data/lib/capybara/spec/session/has_text_spec.rb +73 -73
- data/lib/capybara/spec/session/has_title_spec.rb +10 -10
- data/lib/capybara/spec/session/has_xpath_spec.rb +44 -44
- data/lib/capybara/spec/session/headers.rb +1 -1
- data/lib/capybara/spec/session/html_spec.rb +9 -9
- data/lib/capybara/spec/session/node_spec.rb +81 -65
- data/lib/capybara/spec/session/reset_session_spec.rb +15 -15
- data/lib/capybara/spec/session/response_code.rb +1 -1
- data/lib/capybara/spec/session/save_and_open_screenshot_spec.rb +46 -0
- data/lib/capybara/spec/session/save_page_spec.rb +9 -9
- data/lib/capybara/spec/session/{screenshot.rb → screenshot_spec.rb} +4 -2
- data/lib/capybara/spec/session/select_spec.rb +22 -22
- data/lib/capybara/spec/session/text_spec.rb +15 -10
- data/lib/capybara/spec/session/title_spec.rb +2 -2
- data/lib/capybara/spec/session/uncheck_spec.rb +7 -7
- data/lib/capybara/spec/session/unselect_spec.rb +14 -14
- data/lib/capybara/spec/session/visit_spec.rb +24 -17
- data/lib/capybara/spec/session/window/become_closed_spec.rb +84 -0
- data/lib/capybara/spec/session/window/current_window_spec.rb +25 -0
- data/lib/capybara/spec/session/window/open_new_window_spec.rb +28 -0
- data/lib/capybara/spec/session/window/switch_to_window_spec.rb +114 -0
- data/lib/capybara/spec/session/window/window_opened_by_spec.rb +83 -0
- data/lib/capybara/spec/session/window/window_spec.rb +141 -0
- data/lib/capybara/spec/session/window/windows_spec.rb +31 -0
- data/lib/capybara/spec/session/window/within_window_spec.rb +188 -0
- data/lib/capybara/spec/session/within_frame_spec.rb +9 -9
- data/lib/capybara/spec/session/within_spec.rb +16 -16
- data/lib/capybara/spec/spec_helper.rb +14 -4
- data/lib/capybara/spec/views/form.erb +7 -0
- data/lib/capybara/spec/views/popup_one.erb +1 -1
- data/lib/capybara/spec/views/popup_two.erb +1 -1
- data/lib/capybara/spec/views/with_js.erb +2 -0
- data/lib/capybara/spec/views/with_windows.erb +38 -0
- data/lib/capybara/version.rb +1 -1
- data/lib/capybara/window.rb +123 -0
- data/spec/basic_node_spec.rb +32 -32
- data/spec/capybara_spec.rb +6 -7
- data/spec/dsl_spec.rb +48 -48
- data/spec/fixtures/selenium_driver_rspec_failure.rb +2 -2
- data/spec/fixtures/selenium_driver_rspec_success.rb +2 -2
- data/spec/rack_test_spec.rb +33 -19
- data/spec/result_spec.rb +13 -13
- data/spec/rspec/features_spec.rb +20 -15
- data/spec/rspec/matchers_spec.rb +109 -109
- data/spec/rspec_spec.rb +10 -10
- data/spec/selenium_spec.rb +31 -6
- data/spec/selenium_spec_chrome.rb +2 -2
- data/spec/server_spec.rb +13 -13
- metadata +51 -62
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/capybara/spec/session/within_window_spec.rb +0 -45
- data/lib/capybara/spec/views/within_popups.erb +0 -25
- metadata.gz.sig +0 -0
@@ -4,13 +4,13 @@ Capybara::SpecHelper.spec '#has_table?' do
|
|
4
4
|
end
|
5
5
|
|
6
6
|
it "should be true if the table is on the page" do
|
7
|
-
@session.
|
8
|
-
@session.
|
9
|
-
@session.
|
7
|
+
expect(@session).to have_table('Villain')
|
8
|
+
expect(@session).to have_table('villain_table')
|
9
|
+
expect(@session).to have_table(:'villain_table')
|
10
10
|
end
|
11
11
|
|
12
12
|
it "should be false if the table is not on the page" do
|
13
|
-
@session.
|
13
|
+
expect(@session).not_to have_table('Monkey')
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
@@ -20,11 +20,11 @@ Capybara::SpecHelper.spec '#has_no_table?' do
|
|
20
20
|
end
|
21
21
|
|
22
22
|
it "should be false if the table is on the page" do
|
23
|
-
@session.
|
24
|
-
@session.
|
23
|
+
expect(@session).not_to have_no_table('Villain')
|
24
|
+
expect(@session).not_to have_no_table('villain_table')
|
25
25
|
end
|
26
26
|
|
27
27
|
it "should be true if the table is not on the page" do
|
28
|
-
@session.
|
28
|
+
expect(@session).to have_no_table('Monkey')
|
29
29
|
end
|
30
30
|
end
|
@@ -1,193 +1,193 @@
|
|
1
1
|
Capybara::SpecHelper.spec '#has_text?' do
|
2
2
|
it "should be true if the given text is on the page at least once" do
|
3
3
|
@session.visit('/with_html')
|
4
|
-
@session.
|
5
|
-
@session.
|
6
|
-
@session.
|
7
|
-
@session.
|
4
|
+
expect(@session).to have_text('est')
|
5
|
+
expect(@session).to have_text('Lorem')
|
6
|
+
expect(@session).to have_text('Redirect')
|
7
|
+
expect(@session).to have_text(:'Redirect')
|
8
8
|
end
|
9
9
|
|
10
10
|
it "should be true if scoped to an element which has the text" do
|
11
11
|
@session.visit('/with_html')
|
12
12
|
@session.within("//a[@title='awesome title']") do
|
13
|
-
@session.
|
13
|
+
expect(@session).to have_text('labore')
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
17
|
it "should be false if scoped to an element which does not have the text" do
|
18
18
|
@session.visit('/with_html')
|
19
19
|
@session.within("//a[@title='awesome title']") do
|
20
|
-
@session.
|
20
|
+
expect(@session).not_to have_text('monkey')
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
24
|
it "should ignore tags" do
|
25
25
|
@session.visit('/with_html')
|
26
|
-
@session.
|
27
|
-
@session.
|
26
|
+
expect(@session).not_to have_text('exercitation <a href="/foo" id="foo">ullamco</a> laboris')
|
27
|
+
expect(@session).to have_text('exercitation ullamco laboris')
|
28
28
|
end
|
29
29
|
|
30
30
|
it "should ignore extra whitespace and newlines" do
|
31
31
|
@session.visit('/with_html')
|
32
|
-
@session.
|
32
|
+
expect(@session).to have_text('text with whitespace')
|
33
33
|
end
|
34
34
|
|
35
35
|
it "should ignore whitespace and newlines in the search string" do
|
36
36
|
@session.visit('/with_html')
|
37
|
-
@session.
|
37
|
+
expect(@session).to have_text("text with \n\n whitespace")
|
38
38
|
end
|
39
39
|
|
40
40
|
it "should be false if the given text is not on the page" do
|
41
41
|
@session.visit('/with_html')
|
42
|
-
@session.
|
43
|
-
@session.
|
42
|
+
expect(@session).not_to have_text('xxxxyzzz')
|
43
|
+
expect(@session).not_to have_text('monkey')
|
44
44
|
end
|
45
45
|
|
46
46
|
it 'should handle single quotes in the text' do
|
47
47
|
@session.visit('/with-quotes')
|
48
|
-
@session.
|
48
|
+
expect(@session).to have_text("can't")
|
49
49
|
end
|
50
50
|
|
51
51
|
it 'should handle double quotes in the text' do
|
52
52
|
@session.visit('/with-quotes')
|
53
|
-
@session.
|
53
|
+
expect(@session).to have_text(%q{"No," he said})
|
54
54
|
end
|
55
55
|
|
56
56
|
it 'should handle mixed single and double quotes in the text' do
|
57
57
|
@session.visit('/with-quotes')
|
58
|
-
@session.
|
58
|
+
expect(@session).to have_text(%q{"you can't do that."})
|
59
59
|
end
|
60
60
|
|
61
61
|
it 'should be false if text is in the title tag in the head' do
|
62
62
|
@session.visit('/with_js')
|
63
|
-
@session.
|
63
|
+
expect(@session).not_to have_text('with_js')
|
64
64
|
end
|
65
65
|
|
66
66
|
it 'should be false if text is inside a script tag in the body' do
|
67
67
|
@session.visit('/with_js')
|
68
|
-
@session.
|
69
|
-
@session.
|
68
|
+
expect(@session).not_to have_text('a javascript comment')
|
69
|
+
expect(@session).not_to have_text('aVar')
|
70
70
|
end
|
71
71
|
|
72
72
|
it "should be false if the given text is on the page but not visible" do
|
73
73
|
@session.visit('/with_html')
|
74
|
-
@session.
|
74
|
+
expect(@session).not_to have_text('Inside element with hidden ancestor')
|
75
75
|
end
|
76
76
|
|
77
77
|
it "should be true if :all given and text is invisible." do
|
78
78
|
@session.visit('/with_html')
|
79
|
-
@session.
|
79
|
+
expect(@session).to have_text(:all, 'Some of this text is hidden!')
|
80
80
|
end
|
81
81
|
|
82
82
|
it "should be true if `Capybara.ignore_hidden_elements = true` and text is invisible." do
|
83
83
|
Capybara.ignore_hidden_elements = false
|
84
84
|
@session.visit('/with_html')
|
85
|
-
@session.
|
85
|
+
expect(@session).to have_text('Some of this text is hidden!')
|
86
86
|
end
|
87
87
|
|
88
88
|
it "should be true if the text in the page matches given regexp" do
|
89
89
|
@session.visit('/with_html')
|
90
|
-
@session.
|
90
|
+
expect(@session).to have_text(/Lorem/)
|
91
91
|
end
|
92
92
|
|
93
93
|
it "should be false if the text in the page doesn't match given regexp" do
|
94
94
|
@session.visit('/with_html')
|
95
|
-
@session.
|
95
|
+
expect(@session).not_to have_text(/xxxxyzzz/)
|
96
96
|
end
|
97
97
|
|
98
98
|
it "should escape any characters that would have special meaning in a regexp" do
|
99
99
|
@session.visit('/with_html')
|
100
|
-
@session.
|
100
|
+
expect(@session).not_to have_text('.orem')
|
101
101
|
end
|
102
102
|
|
103
103
|
it "should accept non-string parameters" do
|
104
104
|
@session.visit('/with_html')
|
105
|
-
@session.
|
105
|
+
expect(@session).to have_text(42)
|
106
106
|
end
|
107
107
|
|
108
108
|
it "should be true when passed nil" do
|
109
109
|
# Historical behavior; no particular reason other than compatibility.
|
110
110
|
@session.visit('/with_html')
|
111
|
-
@session.
|
111
|
+
expect(@session).to have_text(nil)
|
112
112
|
end
|
113
113
|
|
114
114
|
it "should wait for text to appear", :requires => [:js] do
|
115
115
|
@session.visit('/with_js')
|
116
116
|
@session.click_link('Click me')
|
117
|
-
@session.
|
117
|
+
expect(@session).to have_text("Has been clicked")
|
118
118
|
end
|
119
119
|
|
120
120
|
context "with between" do
|
121
121
|
it "should be true if the text occurs within the range given" do
|
122
122
|
@session.visit('/with_count')
|
123
|
-
@session.
|
124
|
-
@session.
|
123
|
+
expect(@session).to have_text('count', between: 1..3)
|
124
|
+
expect(@session).to have_text(/count/, between: 2..2)
|
125
125
|
end
|
126
126
|
|
127
127
|
it "should be false if the text occurs more or fewer times than range" do
|
128
128
|
@session.visit('/with_count')
|
129
|
-
@session.
|
130
|
-
@session.
|
131
|
-
@session.
|
129
|
+
expect(@session).not_to have_text('count', between: 0..1)
|
130
|
+
expect(@session).not_to have_text('count', between: 3..10)
|
131
|
+
expect(@session).not_to have_text(/count/, between: 2...2)
|
132
132
|
end
|
133
133
|
end
|
134
134
|
|
135
135
|
context "with count" do
|
136
136
|
it "should be true if the text occurs the given number of times" do
|
137
137
|
@session.visit('/with_count')
|
138
|
-
@session.
|
138
|
+
expect(@session).to have_text('count', count: 2)
|
139
139
|
end
|
140
140
|
|
141
141
|
it "should be false if the text occurs a different number of times than the given" do
|
142
142
|
@session.visit('/with_count')
|
143
|
-
@session.
|
144
|
-
@session.
|
145
|
-
@session.
|
143
|
+
expect(@session).not_to have_text('count', count: 0)
|
144
|
+
expect(@session).not_to have_text('count', count: 1)
|
145
|
+
expect(@session).not_to have_text(/count/, count: 3)
|
146
146
|
end
|
147
147
|
|
148
148
|
it "should coerce count to an integer" do
|
149
149
|
@session.visit('/with_count')
|
150
|
-
@session.
|
151
|
-
@session.
|
150
|
+
expect(@session).to have_text('count', count: '2')
|
151
|
+
expect(@session).not_to have_text('count', count: '3')
|
152
152
|
end
|
153
153
|
end
|
154
154
|
|
155
155
|
context "with maximum" do
|
156
156
|
it "should be true when text occurs same or fewer times than given" do
|
157
157
|
@session.visit('/with_count')
|
158
|
-
@session.
|
159
|
-
@session.
|
158
|
+
expect(@session).to have_text('count', maximum: 2)
|
159
|
+
expect(@session).to have_text(/count/, maximum: 3)
|
160
160
|
end
|
161
161
|
|
162
162
|
it "should be false when text occurs more times than given" do
|
163
163
|
@session.visit('/with_count')
|
164
|
-
@session.
|
165
|
-
@session.
|
164
|
+
expect(@session).not_to have_text('count', maximum: 1)
|
165
|
+
expect(@session).not_to have_text('count', maximum: 0)
|
166
166
|
end
|
167
167
|
|
168
168
|
it "should coerce maximum to an integer" do
|
169
169
|
@session.visit('/with_count')
|
170
|
-
@session.
|
171
|
-
@session.
|
170
|
+
expect(@session).to have_text('count', maximum: '2')
|
171
|
+
expect(@session).not_to have_text('count', maximum: '1')
|
172
172
|
end
|
173
173
|
end
|
174
174
|
|
175
175
|
context "with minimum" do
|
176
176
|
it "should be true when text occurs same or more times than given" do
|
177
177
|
@session.visit('/with_count')
|
178
|
-
@session.
|
179
|
-
@session.
|
178
|
+
expect(@session).to have_text('count', minimum: 2)
|
179
|
+
expect(@session).to have_text(/count/, minimum: 0)
|
180
180
|
end
|
181
181
|
|
182
182
|
it "should be false when text occurs fewer times than given" do
|
183
183
|
@session.visit('/with_count')
|
184
|
-
@session.
|
184
|
+
expect(@session).not_to have_text('count', minimum: 3)
|
185
185
|
end
|
186
186
|
|
187
187
|
it "should coerce minimum to an integer" do
|
188
188
|
@session.visit('/with_count')
|
189
|
-
@session.
|
190
|
-
@session.
|
189
|
+
expect(@session).to have_text('count', minimum: '2')
|
190
|
+
expect(@session).not_to have_text('count', minimum: '3')
|
191
191
|
end
|
192
192
|
end
|
193
193
|
|
@@ -196,7 +196,7 @@ Capybara::SpecHelper.spec '#has_text?' do
|
|
196
196
|
Capybara.using_wait_time(0.1) do
|
197
197
|
@session.visit('/with_js')
|
198
198
|
@session.click_link('Click me')
|
199
|
-
@session.
|
199
|
+
expect(@session).to have_text('Has been clicked', :wait => 0.9)
|
200
200
|
end
|
201
201
|
end
|
202
202
|
end
|
@@ -205,105 +205,105 @@ end
|
|
205
205
|
Capybara::SpecHelper.spec '#has_no_text?' do
|
206
206
|
it "should be false if the given text is on the page at least once" do
|
207
207
|
@session.visit('/with_html')
|
208
|
-
@session.
|
209
|
-
@session.
|
210
|
-
@session.
|
208
|
+
expect(@session).not_to have_no_text('est')
|
209
|
+
expect(@session).not_to have_no_text('Lorem')
|
210
|
+
expect(@session).not_to have_no_text('Redirect')
|
211
211
|
end
|
212
212
|
|
213
213
|
it "should be false if scoped to an element which has the text" do
|
214
214
|
@session.visit('/with_html')
|
215
215
|
@session.within("//a[@title='awesome title']") do
|
216
|
-
@session.
|
216
|
+
expect(@session).not_to have_no_text('labore')
|
217
217
|
end
|
218
218
|
end
|
219
219
|
|
220
220
|
it "should be true if scoped to an element which does not have the text" do
|
221
221
|
@session.visit('/with_html')
|
222
222
|
@session.within("//a[@title='awesome title']") do
|
223
|
-
@session.
|
223
|
+
expect(@session).to have_no_text('monkey')
|
224
224
|
end
|
225
225
|
end
|
226
226
|
|
227
227
|
it "should ignore tags" do
|
228
228
|
@session.visit('/with_html')
|
229
|
-
@session.
|
230
|
-
@session.
|
229
|
+
expect(@session).to have_no_text('exercitation <a href="/foo" id="foo">ullamco</a> laboris')
|
230
|
+
expect(@session).not_to have_no_text('exercitation ullamco laboris')
|
231
231
|
end
|
232
232
|
|
233
233
|
it "should be true if the given text is not on the page" do
|
234
234
|
@session.visit('/with_html')
|
235
|
-
@session.
|
236
|
-
@session.
|
235
|
+
expect(@session).to have_no_text('xxxxyzzz')
|
236
|
+
expect(@session).to have_no_text('monkey')
|
237
237
|
end
|
238
238
|
|
239
239
|
it 'should handle single quotes in the text' do
|
240
240
|
@session.visit('/with-quotes')
|
241
|
-
@session.
|
241
|
+
expect(@session).not_to have_no_text("can't")
|
242
242
|
end
|
243
243
|
|
244
244
|
it 'should handle double quotes in the text' do
|
245
245
|
@session.visit('/with-quotes')
|
246
|
-
@session.
|
246
|
+
expect(@session).not_to have_no_text(%q{"No," he said})
|
247
247
|
end
|
248
248
|
|
249
249
|
it 'should handle mixed single and double quotes in the text' do
|
250
250
|
@session.visit('/with-quotes')
|
251
|
-
@session.
|
251
|
+
expect(@session).not_to have_no_text(%q{"you can't do that."})
|
252
252
|
end
|
253
253
|
|
254
254
|
it 'should be true if text is in the title tag in the head' do
|
255
255
|
@session.visit('/with_js')
|
256
|
-
@session.
|
256
|
+
expect(@session).to have_no_text('with_js')
|
257
257
|
end
|
258
258
|
|
259
259
|
it 'should be true if text is inside a script tag in the body' do
|
260
260
|
@session.visit('/with_js')
|
261
|
-
@session.
|
262
|
-
@session.
|
261
|
+
expect(@session).to have_no_text('a javascript comment')
|
262
|
+
expect(@session).to have_no_text('aVar')
|
263
263
|
end
|
264
264
|
|
265
265
|
it "should be true if the given text is on the page but not visible" do
|
266
266
|
@session.visit('/with_html')
|
267
|
-
@session.
|
267
|
+
expect(@session).to have_no_text('Inside element with hidden ancestor')
|
268
268
|
end
|
269
269
|
|
270
270
|
it "should be false if :all given and text is invisible." do
|
271
271
|
@session.visit('/with_html')
|
272
|
-
@session.
|
272
|
+
expect(@session).not_to have_no_text(:all, 'Some of this text is hidden!')
|
273
273
|
end
|
274
274
|
|
275
275
|
it "should be false if `Capybara.ignore_hidden_elements = true` and text is invisible." do
|
276
276
|
Capybara.ignore_hidden_elements = false
|
277
277
|
@session.visit('/with_html')
|
278
|
-
@session.
|
278
|
+
expect(@session).not_to have_no_text('Some of this text is hidden!')
|
279
279
|
end
|
280
280
|
|
281
281
|
it "should be true if the text in the page doesn't match given regexp" do
|
282
282
|
@session.visit('/with_html')
|
283
|
-
@session.
|
283
|
+
expect(@session).to have_no_text(/xxxxyzzz/)
|
284
284
|
end
|
285
285
|
|
286
286
|
it "should be false if the text in the page matches given regexp" do
|
287
287
|
@session.visit('/with_html')
|
288
|
-
@session.
|
288
|
+
expect(@session).not_to have_no_text(/Lorem/)
|
289
289
|
end
|
290
290
|
|
291
291
|
it "should escape any characters that would have special meaning in a regexp" do
|
292
292
|
@session.visit('/with_html')
|
293
|
-
@session.
|
293
|
+
expect(@session).to have_no_text('.orem')
|
294
294
|
end
|
295
295
|
|
296
296
|
it "should wait for text to disappear", :requires => [:js] do
|
297
297
|
@session.visit('/with_js')
|
298
298
|
@session.click_link('Click me')
|
299
|
-
@session.
|
299
|
+
expect(@session).to have_no_text("I changed it")
|
300
300
|
end
|
301
301
|
|
302
302
|
context "with wait", :requires => [:js] do
|
303
303
|
it "should not find element if it appears after given wait duration" do
|
304
304
|
@session.visit('/with_js')
|
305
305
|
@session.click_link('Click me')
|
306
|
-
@session.
|
306
|
+
expect(@session).to have_no_text('Has been clicked', :wait => 0.1)
|
307
307
|
end
|
308
308
|
end
|
309
309
|
end
|
@@ -4,21 +4,21 @@ Capybara::SpecHelper.spec '#has_title?' do
|
|
4
4
|
end
|
5
5
|
|
6
6
|
it "should be true if the page has the given title" do
|
7
|
-
@session.
|
7
|
+
expect(@session).to have_title('with_js')
|
8
8
|
end
|
9
9
|
|
10
10
|
it "should allow regexp matches" do
|
11
|
-
@session.
|
12
|
-
@session.
|
11
|
+
expect(@session).to have_title(/w[a-z]{3}_js/)
|
12
|
+
expect(@session).not_to have_title(/monkey/)
|
13
13
|
end
|
14
14
|
|
15
15
|
it "should wait for title", :requires => [:js] do
|
16
16
|
@session.click_link("Change title")
|
17
|
-
@session.
|
17
|
+
expect(@session).to have_title("changed title")
|
18
18
|
end
|
19
19
|
|
20
20
|
it "should be false if the page has not the given title" do
|
21
|
-
@session.
|
21
|
+
expect(@session).not_to have_title('monkey')
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
@@ -28,20 +28,20 @@ Capybara::SpecHelper.spec '#has_no_title?' do
|
|
28
28
|
end
|
29
29
|
|
30
30
|
it "should be false if the page has the given title" do
|
31
|
-
@session.
|
31
|
+
expect(@session).not_to have_no_title('with_js')
|
32
32
|
end
|
33
33
|
|
34
34
|
it "should allow regexp matches" do
|
35
|
-
@session.
|
36
|
-
@session.
|
35
|
+
expect(@session).not_to have_no_title(/w[a-z]{3}_js/)
|
36
|
+
expect(@session).to have_no_title(/monkey/)
|
37
37
|
end
|
38
38
|
|
39
39
|
it "should wait for title to disappear", :requires => [:js] do
|
40
40
|
@session.click_link("Change title")
|
41
|
-
@session.
|
41
|
+
expect(@session).to have_no_title('with_js')
|
42
42
|
end
|
43
43
|
|
44
44
|
it "should be true if the page has not the given title" do
|
45
|
-
@session.
|
45
|
+
expect(@session).to have_no_title('monkey')
|
46
46
|
end
|
47
47
|
end
|