capybara 2.0.3 → 2.1.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/History.md +73 -0
- data/README.md +52 -5
- data/lib/capybara.rb +44 -62
- data/lib/capybara/cucumber.rb +4 -1
- data/lib/capybara/driver/base.rb +13 -9
- data/lib/capybara/driver/node.rb +18 -6
- data/lib/capybara/helpers.rb +111 -22
- data/lib/capybara/node/actions.rb +24 -19
- data/lib/capybara/node/base.rb +25 -32
- data/lib/capybara/node/document.rb +6 -2
- data/lib/capybara/node/element.rb +45 -7
- data/lib/capybara/node/finders.rb +48 -21
- data/lib/capybara/node/matchers.rb +38 -21
- data/lib/capybara/node/simple.rb +29 -7
- data/lib/capybara/query.rb +72 -26
- data/lib/capybara/rack_test/browser.rb +11 -3
- data/lib/capybara/rack_test/css_handlers.rb +8 -0
- data/lib/capybara/rack_test/driver.rb +11 -3
- data/lib/capybara/rack_test/form.rb +8 -1
- data/lib/capybara/rack_test/node.rb +92 -36
- data/lib/capybara/rails.rb +1 -2
- data/lib/capybara/result.rb +21 -37
- data/lib/capybara/rspec/matchers.rb +60 -31
- data/lib/capybara/selector.rb +46 -13
- data/lib/capybara/selenium/driver.rb +42 -6
- data/lib/capybara/selenium/node.rb +23 -5
- data/lib/capybara/session.rb +46 -11
- data/lib/capybara/spec/public/test.js +12 -0
- data/lib/capybara/spec/session/all_spec.rb +9 -8
- data/lib/capybara/spec/session/attach_file_spec.rb +14 -0
- data/lib/capybara/spec/session/check_spec.rb +14 -0
- data/lib/capybara/spec/session/choose_spec.rb +14 -0
- data/lib/capybara/spec/session/click_button_spec.rb +77 -1
- data/lib/capybara/spec/session/click_link_or_button_spec.rb +65 -0
- data/lib/capybara/spec/session/click_link_spec.rb +24 -0
- data/lib/capybara/spec/session/current_scope_spec.rb +29 -0
- data/lib/capybara/spec/session/fill_in_spec.rb +14 -0
- data/lib/capybara/spec/session/find_button_spec.rb +12 -0
- data/lib/capybara/spec/session/find_by_id_spec.rb +12 -1
- data/lib/capybara/spec/session/find_field_spec.rb +30 -0
- data/lib/capybara/spec/session/find_link_spec.rb +12 -0
- data/lib/capybara/spec/session/find_spec.rb +258 -16
- data/lib/capybara/spec/session/first_spec.rb +25 -8
- data/lib/capybara/spec/session/has_css_spec.rb +2 -2
- data/lib/capybara/spec/session/has_field_spec.rb +10 -2
- data/lib/capybara/spec/session/has_selector_spec.rb +9 -0
- data/lib/capybara/spec/session/has_text_spec.rb +96 -0
- data/lib/capybara/spec/session/has_title_spec.rb +47 -0
- data/lib/capybara/spec/session/node_spec.rb +43 -0
- data/lib/capybara/spec/session/reset_session_spec.rb +10 -2
- data/lib/capybara/spec/session/save_page_spec.rb +30 -0
- data/lib/capybara/spec/session/select_spec.rb +65 -0
- data/lib/capybara/spec/session/text_spec.rb +31 -0
- data/lib/capybara/spec/session/title_spec.rb +16 -0
- data/lib/capybara/spec/session/uncheck_spec.rb +14 -0
- data/lib/capybara/spec/session/unselect_spec.rb +42 -0
- data/lib/capybara/spec/session/visit_spec.rb +3 -3
- data/lib/capybara/spec/session/within_frame_spec.rb +14 -0
- data/lib/capybara/spec/session/within_spec.rb +3 -3
- data/lib/capybara/spec/spec_helper.rb +6 -1
- data/lib/capybara/spec/views/form.erb +39 -2
- data/lib/capybara/spec/views/frame_child.erb +9 -0
- data/lib/capybara/spec/views/frame_parent.erb +8 -0
- data/lib/capybara/spec/views/with_base_tag.erb +10 -0
- data/lib/capybara/spec/views/with_count.erb +7 -0
- data/lib/capybara/spec/views/with_hover.erb +17 -0
- data/lib/capybara/spec/views/with_html.erb +21 -2
- data/lib/capybara/spec/views/with_js.erb +5 -0
- data/lib/capybara/spec/views/with_scope.erb +6 -1
- data/lib/capybara/spec/views/with_title.erb +1 -0
- data/lib/capybara/spec/views/within_frames.erb +1 -0
- data/lib/capybara/version.rb +1 -1
- data/spec/basic_node_spec.rb +75 -24
- data/spec/dsl_spec.rb +2 -1
- data/spec/rack_test_spec.rb +4 -3
- data/spec/rspec/matchers_spec.rb +105 -17
- data/spec/server_spec.rb +8 -8
- data/spec/spec_helper.rb +2 -1
- metadata +83 -23
- metadata.gz.sig +0 -0
data/lib/capybara/version.rb
CHANGED
data/spec/basic_node_spec.rb
CHANGED
@@ -4,26 +4,42 @@ describe Capybara do
|
|
4
4
|
describe '.string' do
|
5
5
|
let :string do
|
6
6
|
Capybara.string <<-STRING
|
7
|
-
<
|
8
|
-
<
|
9
|
-
<
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
<
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
7
|
+
<html>
|
8
|
+
<head>
|
9
|
+
<title>simple_node</title>
|
10
|
+
</head>
|
11
|
+
<body>
|
12
|
+
<div id="page">
|
13
|
+
<div id="content">
|
14
|
+
<h1 data="fantastic">Totally awesome</h1>
|
15
|
+
<p>Yes it is</p>
|
16
|
+
</div>
|
17
|
+
|
18
|
+
<form>
|
19
|
+
<input type="text" name="bleh" disabled="disabled"/>
|
20
|
+
<input type="text" name="meh"/>
|
21
|
+
</form>
|
22
|
+
|
23
|
+
<div id="footer">
|
24
|
+
<p>c2010</p>
|
25
|
+
<p>Jonas Nicklas</p>
|
26
|
+
<input type="text" name="foo" value="bar"/>
|
27
|
+
<select name="animal">
|
28
|
+
<option>Monkey</option>
|
29
|
+
<option selected="selected">Capybara</option>
|
30
|
+
</select>
|
31
|
+
</div>
|
32
|
+
|
33
|
+
<div id="hidden" style="display: none">
|
34
|
+
<p id="secret">Secret</p>
|
35
|
+
</div>
|
36
|
+
|
37
|
+
<section>
|
38
|
+
<div class="subsection"></div>
|
39
|
+
</section>
|
40
|
+
</div>
|
41
|
+
</body>
|
42
|
+
</html>
|
27
43
|
STRING
|
28
44
|
end
|
29
45
|
|
@@ -56,8 +72,8 @@ describe Capybara do
|
|
56
72
|
end
|
57
73
|
|
58
74
|
it "allows finding only visible nodes" do
|
59
|
-
string.all(
|
60
|
-
string.all(
|
75
|
+
string.all(:css, '#secret', :visible => true).should be_empty
|
76
|
+
string.all(:css, '#secret', :visible => false).should have(1).element
|
61
77
|
end
|
62
78
|
|
63
79
|
it "allows finding elements and extracting text from them" do
|
@@ -77,13 +93,48 @@ describe Capybara do
|
|
77
93
|
end
|
78
94
|
|
79
95
|
it "allows finding elements and extracting the path" do
|
80
|
-
string.find('//input').value.should == 'bar'
|
96
|
+
string.find('//div/input').value.should == 'bar'
|
81
97
|
string.find('//select').value.should == 'Capybara'
|
82
98
|
end
|
83
99
|
|
84
100
|
it "allows finding elements and checking if they are visible" do
|
85
101
|
string.find('//h1').should be_visible
|
86
|
-
string.find(
|
102
|
+
string.find(:css, "#secret", :visible => false).should_not be_visible
|
103
|
+
end
|
104
|
+
|
105
|
+
it "allows finding elements and checking if they are disabled" do
|
106
|
+
string.find('//form/input[@name="bleh"]').should be_disabled
|
107
|
+
string.find('//form/input[@name="meh"]').should_not be_disabled
|
108
|
+
end
|
109
|
+
|
110
|
+
describe "#title" do
|
111
|
+
it "returns the page title" do
|
112
|
+
string.title.should == "simple_node"
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
describe "#has_title?" do
|
117
|
+
it "returns whether the page has the given title" do
|
118
|
+
string.has_title?('simple_node').should be_true
|
119
|
+
string.has_title?('monkey').should be_false
|
120
|
+
end
|
121
|
+
|
122
|
+
it "allows regexp matches" do
|
123
|
+
string.has_title?(/s[a-z]+_node/).should be_true
|
124
|
+
string.has_title?(/monkey/).should be_false
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
describe '#has_no_title?' do
|
129
|
+
it "returns whether the page does not have the given title" do
|
130
|
+
string.has_no_title?('simple_node').should be_false
|
131
|
+
string.has_no_title?('monkey').should be_true
|
132
|
+
end
|
133
|
+
|
134
|
+
it "allows regexp matches" do
|
135
|
+
string.has_no_title?(/s[a-z]+_node/).should be_false
|
136
|
+
string.has_no_title?(/monkey/).should be_true
|
137
|
+
end
|
87
138
|
end
|
88
139
|
end
|
89
140
|
end
|
data/spec/dsl_spec.rb
CHANGED
data/spec/rack_test_spec.rb
CHANGED
@@ -9,7 +9,8 @@ Capybara::SpecHelper.run_specs TestSessions::RackTest, "RackTest", :skip => [
|
|
9
9
|
:screenshot,
|
10
10
|
:frames,
|
11
11
|
:windows,
|
12
|
-
:server
|
12
|
+
:server,
|
13
|
+
:hover
|
13
14
|
]
|
14
15
|
|
15
16
|
describe Capybara::Session do
|
@@ -84,14 +85,14 @@ describe Capybara::RackTest::Driver do
|
|
84
85
|
it 'should keep headers on link clicks' do
|
85
86
|
@driver = Capybara::RackTest::Driver.new(TestApp, :headers => {'HTTP_FOO' => 'foobar'})
|
86
87
|
@driver.visit('/header_links')
|
87
|
-
@driver.
|
88
|
+
@driver.find_xpath('.//a').first.click
|
88
89
|
@driver.html.should include('foobar')
|
89
90
|
end
|
90
91
|
|
91
92
|
it 'should keep headers on form submit' do
|
92
93
|
@driver = Capybara::RackTest::Driver.new(TestApp, :headers => {'HTTP_FOO' => 'foobar'})
|
93
94
|
@driver.visit('/header_links')
|
94
|
-
@driver.
|
95
|
+
@driver.find_xpath('.//input').first.click
|
95
96
|
@driver.html.should include('foobar')
|
96
97
|
end
|
97
98
|
|
data/spec/rspec/matchers_spec.rb
CHANGED
@@ -29,9 +29,28 @@ describe Capybara::RSpecMatchers do
|
|
29
29
|
|
30
30
|
it "fails if matched node count does not equal expected count" do
|
31
31
|
expect do
|
32
|
-
"<h1>Text</h1>".should have_css('h1', :
|
33
|
-
end.to raise_error(
|
32
|
+
"<h1>Text</h1>".should have_css('h1', count: 2)
|
33
|
+
end.to raise_error("expected to find css \"h1\" 2 times, found 1 match: \"Text\"")
|
34
34
|
end
|
35
|
+
|
36
|
+
it "fails if matched node count is less than expected minimum count" do
|
37
|
+
expect do
|
38
|
+
"<h1>Text</h1>".should have_css('p', minimum: 1)
|
39
|
+
end.to raise_error("expected to find css \"p\" at least 1 time but there were no matches")
|
40
|
+
end
|
41
|
+
|
42
|
+
it "fails if matched node count is more than expected maximum count" do
|
43
|
+
expect do
|
44
|
+
"<h1>Text</h1><h1>Text</h1><h1>Text</h1>".should have_css('h1', maximum: 2)
|
45
|
+
end.to raise_error('expected to find css "h1" at most 2 times, found 3 matches: "Text", "Text", "Text"')
|
46
|
+
end
|
47
|
+
|
48
|
+
it "fails if matched node count does not belong to expected range" do
|
49
|
+
expect do
|
50
|
+
"<h1>Text</h1>".should have_css('h1', between: 2..3)
|
51
|
+
end.to raise_error("expected to find css \"h1\" between 2 and 3 times, found 1 match: \"Text\"")
|
52
|
+
end
|
53
|
+
|
35
54
|
end
|
36
55
|
|
37
56
|
context "with should_not" do
|
@@ -222,7 +241,7 @@ describe Capybara::RSpecMatchers do
|
|
222
241
|
|
223
242
|
describe "have_content matcher" do
|
224
243
|
it "gives proper description" do
|
225
|
-
have_content('Text').description.should == "
|
244
|
+
have_content('Text').description.should == "text \"Text\""
|
226
245
|
end
|
227
246
|
|
228
247
|
context "on a string" do
|
@@ -238,7 +257,7 @@ describe Capybara::RSpecMatchers do
|
|
238
257
|
it "fails if has_content? returns false" do
|
239
258
|
expect do
|
240
259
|
"<h1>Text</h1>".should have_content('No such Text')
|
241
|
-
end.to raise_error(/expected
|
260
|
+
end.to raise_error(/expected to find text "No such Text" in "Text"/)
|
242
261
|
end
|
243
262
|
end
|
244
263
|
|
@@ -254,7 +273,7 @@ describe Capybara::RSpecMatchers do
|
|
254
273
|
it "fails if has_no_content? returns false" do
|
255
274
|
expect do
|
256
275
|
"<h1>Text</h1>".should_not have_content('Text')
|
257
|
-
end.to raise_error(/expected
|
276
|
+
end.to raise_error(/expected not to find text "Text" in "Text"/)
|
258
277
|
end
|
259
278
|
end
|
260
279
|
end
|
@@ -276,7 +295,7 @@ describe Capybara::RSpecMatchers do
|
|
276
295
|
it "fails if has_content? returns false" do
|
277
296
|
expect do
|
278
297
|
page.should have_content('No such Text')
|
279
|
-
end.to raise_error(/expected
|
298
|
+
end.to raise_error(/expected to find text "No such Text" in "(.*)This is a test(.*)"/)
|
280
299
|
end
|
281
300
|
|
282
301
|
context "with default selector CSS" do
|
@@ -284,7 +303,7 @@ describe Capybara::RSpecMatchers do
|
|
284
303
|
it "fails if has_content? returns false" do
|
285
304
|
expect do
|
286
305
|
page.should have_content('No such Text')
|
287
|
-
end.to raise_error(/expected
|
306
|
+
end.to raise_error(/expected to find text "No such Text" in "(.*)This is a test(.*)"/)
|
288
307
|
end
|
289
308
|
after { Capybara.default_selector = :xpath }
|
290
309
|
end
|
@@ -298,7 +317,7 @@ describe Capybara::RSpecMatchers do
|
|
298
317
|
it "fails if has_no_content? returns false" do
|
299
318
|
expect do
|
300
319
|
page.should_not have_content('This is a test')
|
301
|
-
end.to raise_error(/expected
|
320
|
+
end.to raise_error(/expected not to find text "This is a test"/)
|
302
321
|
end
|
303
322
|
end
|
304
323
|
end
|
@@ -306,7 +325,7 @@ describe Capybara::RSpecMatchers do
|
|
306
325
|
|
307
326
|
describe "have_text matcher" do
|
308
327
|
it "gives proper description" do
|
309
|
-
have_text('Text').description.should == "
|
328
|
+
have_text('Text').description.should == "text \"Text\""
|
310
329
|
end
|
311
330
|
|
312
331
|
context "on a string" do
|
@@ -322,13 +341,37 @@ describe Capybara::RSpecMatchers do
|
|
322
341
|
it "fails if has_text? returns false" do
|
323
342
|
expect do
|
324
343
|
"<h1>Text</h1>".should have_text('No such Text')
|
325
|
-
end.to raise_error(/expected
|
344
|
+
end.to raise_error(/expected to find text "No such Text" in "Text"/)
|
345
|
+
end
|
346
|
+
|
347
|
+
it "casts Fixnum to string" do
|
348
|
+
expect do
|
349
|
+
"<h1>Text</h1>".should have_text(3)
|
350
|
+
end.to raise_error(/expected to find text "3" in "Text"/)
|
351
|
+
end
|
352
|
+
|
353
|
+
it "fails if matched text count does not equal to expected count" do
|
354
|
+
expect do
|
355
|
+
"<h1>Text</h1>".should have_text('Text', count: 2)
|
356
|
+
end.to raise_error(/expected to find text "Text" 2 times in "Text"/)
|
357
|
+
end
|
358
|
+
|
359
|
+
it "fails if matched text count is less than expected minimum count" do
|
360
|
+
expect do
|
361
|
+
"<h1>Text</h1>".should have_text('Lorem', minimum: 1)
|
362
|
+
end.to raise_error(/expected to find text "Lorem" at least 1 time in "Text"/)
|
363
|
+
end
|
364
|
+
|
365
|
+
it "fails if matched text count is more than expected maximum count" do
|
366
|
+
expect do
|
367
|
+
"<h1>Text TextText</h1>".should have_text('Text', maximum: 2)
|
368
|
+
end.to raise_error(/expected to find text "Text" at most 2 times in "Text TextText"/)
|
326
369
|
end
|
327
370
|
|
328
|
-
it "
|
371
|
+
it "fails if matched text count does not belong to expected range" do
|
329
372
|
expect do
|
330
|
-
"<h1>Text</h1>".should have_text(:
|
331
|
-
end.to raise_error(/expected
|
373
|
+
"<h1>Text</h1>".should have_text('Text', between: 2..3)
|
374
|
+
end.to raise_error(/expected to find text "Text" between 2 and 3 times in "Text"/)
|
332
375
|
end
|
333
376
|
end
|
334
377
|
|
@@ -344,7 +387,7 @@ describe Capybara::RSpecMatchers do
|
|
344
387
|
it "fails if has_no_text? returns false" do
|
345
388
|
expect do
|
346
389
|
"<h1>Text</h1>".should_not have_text('Text')
|
347
|
-
end.to raise_error(/expected
|
390
|
+
end.to raise_error(/expected not to find text "Text" in "Text"/)
|
348
391
|
end
|
349
392
|
end
|
350
393
|
end
|
@@ -363,10 +406,19 @@ describe Capybara::RSpecMatchers do
|
|
363
406
|
page.should have_text(/test/)
|
364
407
|
end
|
365
408
|
|
409
|
+
it "can check for all text" do
|
410
|
+
page.should have_text(:all, 'Some of this text is hidden!')
|
411
|
+
end
|
412
|
+
|
413
|
+
it "can check for visible text" do
|
414
|
+
page.should have_text(:visible, 'Some of this text is')
|
415
|
+
page.should_not have_text(:visible, 'Some of this text is hidden!')
|
416
|
+
end
|
417
|
+
|
366
418
|
it "fails if has_text? returns false" do
|
367
419
|
expect do
|
368
420
|
page.should have_text('No such Text')
|
369
|
-
end.to raise_error(/expected
|
421
|
+
end.to raise_error(/expected to find text "No such Text" in "(.*)This is a test(.*)"/)
|
370
422
|
end
|
371
423
|
|
372
424
|
context "with default selector CSS" do
|
@@ -374,7 +426,7 @@ describe Capybara::RSpecMatchers do
|
|
374
426
|
it "fails if has_text? returns false" do
|
375
427
|
expect do
|
376
428
|
page.should have_text('No such Text')
|
377
|
-
end.to raise_error(/expected
|
429
|
+
end.to raise_error(/expected to find text "No such Text" in "(.*)This is a test(.*)"/)
|
378
430
|
end
|
379
431
|
after { Capybara.default_selector = :xpath }
|
380
432
|
end
|
@@ -388,7 +440,7 @@ describe Capybara::RSpecMatchers do
|
|
388
440
|
it "fails if has_no_text? returns false" do
|
389
441
|
expect do
|
390
442
|
page.should_not have_text('This is a test')
|
391
|
-
end.to raise_error(/expected
|
443
|
+
end.to raise_error(/expected not to find text "This is a test"/)
|
392
444
|
end
|
393
445
|
end
|
394
446
|
end
|
@@ -412,6 +464,42 @@ describe Capybara::RSpecMatchers do
|
|
412
464
|
end
|
413
465
|
end
|
414
466
|
|
467
|
+
describe "have_title matcher" do
|
468
|
+
it "gives proper description" do
|
469
|
+
have_title('Just a title').description.should == "have title \"Just a title\""
|
470
|
+
end
|
471
|
+
|
472
|
+
context "on a string" do
|
473
|
+
let(:html) { '<title>Just a title</title>' }
|
474
|
+
|
475
|
+
it "passes if there is such a title" do
|
476
|
+
html.should have_title('Just a title')
|
477
|
+
end
|
478
|
+
|
479
|
+
it "fails if there is no such title" do
|
480
|
+
expect do
|
481
|
+
html.should have_title('No such title')
|
482
|
+
end.to raise_error(/expected there to be title "No such title"/)
|
483
|
+
end
|
484
|
+
end
|
485
|
+
|
486
|
+
context "on a page or node" do
|
487
|
+
before do
|
488
|
+
visit('/with_js')
|
489
|
+
end
|
490
|
+
|
491
|
+
it "passes if there is such a title" do
|
492
|
+
page.should have_title('with_js')
|
493
|
+
end
|
494
|
+
|
495
|
+
it "fails if there is no such title" do
|
496
|
+
expect do
|
497
|
+
page.should have_title('No such title')
|
498
|
+
end.to raise_error(/expected there to be title "No such title"/)
|
499
|
+
end
|
500
|
+
end
|
501
|
+
end
|
502
|
+
|
415
503
|
describe "have_button matcher" do
|
416
504
|
let(:html) { '<button>A button</button><input type="submit" value="Another button"/>' }
|
417
505
|
|
data/spec/server_spec.rb
CHANGED
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
describe Capybara::Server do
|
4
4
|
|
5
5
|
it "should spool up a rack server" do
|
6
|
-
@app = proc { |env| [200, {}, "Hello Server!"]}
|
6
|
+
@app = proc { |env| [200, {}, ["Hello Server!"]]}
|
7
7
|
@server = Capybara::Server.new(@app).boot
|
8
8
|
|
9
9
|
@res = Net::HTTP.start(@server.host, @server.port) { |http| http.get('/') }
|
@@ -20,7 +20,7 @@ describe Capybara::Server do
|
|
20
20
|
it "should bind to the specified host" do
|
21
21
|
Capybara.server_host = '0.0.0.0'
|
22
22
|
|
23
|
-
app = proc { |env| [200, {}, "Hello Server!"]}
|
23
|
+
app = proc { |env| [200, {}, ["Hello Server!"]]}
|
24
24
|
server = Capybara::Server.new(app).boot
|
25
25
|
server.host.should == '0.0.0.0'
|
26
26
|
|
@@ -30,7 +30,7 @@ describe Capybara::Server do
|
|
30
30
|
it "should use specified port" do
|
31
31
|
Capybara.server_port = 22789
|
32
32
|
|
33
|
-
@app = proc { |env| [200, {}, "Hello Server!"]}
|
33
|
+
@app = proc { |env| [200, {}, ["Hello Server!"]]}
|
34
34
|
@server = Capybara::Server.new(@app).boot
|
35
35
|
|
36
36
|
@res = Net::HTTP.start(@server.host, 22789) { |http| http.get('/') }
|
@@ -40,7 +40,7 @@ describe Capybara::Server do
|
|
40
40
|
end
|
41
41
|
|
42
42
|
it "should use given port" do
|
43
|
-
@app = proc { |env| [200, {}, "Hello Server!"]}
|
43
|
+
@app = proc { |env| [200, {}, ["Hello Server!"]]}
|
44
44
|
@server = Capybara::Server.new(@app, 22790).boot
|
45
45
|
|
46
46
|
@res = Net::HTTP.start(@server.host, 22790) { |http| http.get('/') }
|
@@ -50,8 +50,8 @@ describe Capybara::Server do
|
|
50
50
|
end
|
51
51
|
|
52
52
|
it "should find an available port" do
|
53
|
-
@app1 = proc { |env| [200, {}, "Hello Server!"]}
|
54
|
-
@app2 = proc { |env| [200, {}, "Hello Second Server!"]}
|
53
|
+
@app1 = proc { |env| [200, {}, ["Hello Server!"]]}
|
54
|
+
@app2 = proc { |env| [200, {}, ["Hello Second Server!"]]}
|
55
55
|
|
56
56
|
@server1 = Capybara::Server.new(@app1).boot
|
57
57
|
@server2 = Capybara::Server.new(@app2).boot
|
@@ -64,8 +64,8 @@ describe Capybara::Server do
|
|
64
64
|
end
|
65
65
|
|
66
66
|
it "should use the server if it already running" do
|
67
|
-
@app1 = proc { |env| [200, {}, "Hello Server!"]}
|
68
|
-
@app2 = proc { |env| [200, {}, "Hello Second Server!"]}
|
67
|
+
@app1 = proc { |env| [200, {}, ["Hello Server!"]]}
|
68
|
+
@app2 = proc { |env| [200, {}, ["Hello Second Server!"]]}
|
69
69
|
|
70
70
|
@server1a = Capybara::Server.new(@app1).boot
|
71
71
|
@server1b = Capybara::Server.new(@app1).boot
|
data/spec/spec_helper.rb
CHANGED