capybara 2.4.4 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/History.md +32 -5
  3. data/README.md +69 -8
  4. data/lib/capybara.rb +50 -29
  5. data/lib/capybara/driver/base.rb +4 -0
  6. data/lib/capybara/driver/node.rb +4 -0
  7. data/lib/capybara/helpers.rb +17 -5
  8. data/lib/capybara/node/actions.rb +16 -11
  9. data/lib/capybara/node/base.rb +7 -7
  10. data/lib/capybara/node/document_matchers.rb +1 -1
  11. data/lib/capybara/node/element.rb +82 -7
  12. data/lib/capybara/node/finders.rb +62 -22
  13. data/lib/capybara/node/matchers.rb +3 -3
  14. data/lib/capybara/node/simple.rb +6 -1
  15. data/lib/capybara/queries/base_query.rb +1 -1
  16. data/lib/capybara/queries/current_path_query.rb +58 -0
  17. data/lib/capybara/queries/text_query.rb +2 -11
  18. data/lib/capybara/rack_test/browser.rb +7 -2
  19. data/lib/capybara/rack_test/driver.rb +4 -0
  20. data/lib/capybara/rack_test/form.rb +2 -1
  21. data/lib/capybara/rack_test/node.rb +1 -0
  22. data/lib/capybara/result.rb +2 -2
  23. data/lib/capybara/rspec.rb +1 -0
  24. data/lib/capybara/rspec/features.rb +1 -1
  25. data/lib/capybara/rspec/matchers.rb +42 -3
  26. data/lib/capybara/selector.rb +7 -2
  27. data/lib/capybara/selenium/driver.rb +26 -12
  28. data/lib/capybara/selenium/node.rb +42 -6
  29. data/lib/capybara/server.rb +1 -1
  30. data/lib/capybara/session.rb +78 -50
  31. data/lib/capybara/session/matchers.rb +69 -0
  32. data/lib/capybara/spec/public/test.js +8 -0
  33. data/lib/capybara/spec/session/all_spec.rb +5 -0
  34. data/lib/capybara/spec/session/assert_current_path.rb +59 -0
  35. data/lib/capybara/spec/session/assert_text.rb +1 -1
  36. data/lib/capybara/spec/session/attach_file_spec.rb +2 -2
  37. data/lib/capybara/spec/session/body_spec.rb +2 -0
  38. data/lib/capybara/spec/session/click_button_spec.rb +17 -8
  39. data/lib/capybara/spec/session/click_link_spec.rb +32 -1
  40. data/lib/capybara/spec/session/current_url_spec.rb +5 -0
  41. data/lib/capybara/spec/session/fill_in_spec.rb +1 -1
  42. data/lib/capybara/spec/session/find_field_spec.rb +17 -0
  43. data/lib/capybara/spec/session/find_spec.rb +14 -5
  44. data/lib/capybara/spec/session/first_spec.rb +24 -0
  45. data/lib/capybara/spec/session/has_current_path_spec.rb +68 -0
  46. data/lib/capybara/spec/session/has_link_spec.rb +3 -0
  47. data/lib/capybara/spec/session/has_text_spec.rb +7 -0
  48. data/lib/capybara/spec/session/node_spec.rb +45 -6
  49. data/lib/capybara/spec/session/reset_session_spec.rb +18 -1
  50. data/lib/capybara/spec/session/save_and_open_page_spec.rb +19 -0
  51. data/lib/capybara/spec/session/save_page_spec.rb +12 -3
  52. data/lib/capybara/spec/session/save_screenshot_spec.rb +23 -0
  53. data/lib/capybara/spec/session/select_spec.rb +12 -0
  54. data/lib/capybara/spec/session/title_spec.rb +2 -2
  55. data/lib/capybara/spec/session/window/become_closed_spec.rb +4 -4
  56. data/lib/capybara/spec/session/window/switch_to_window_spec.rb +8 -0
  57. data/lib/capybara/spec/session/window/window_opened_by_spec.rb +14 -8
  58. data/lib/capybara/spec/session/window/window_spec.rb +24 -4
  59. data/lib/capybara/spec/spec_helper.rb +3 -1
  60. data/lib/capybara/spec/test_app.rb +10 -1
  61. data/lib/capybara/spec/views/form.erb +7 -1
  62. data/lib/capybara/spec/views/path.erb +12 -0
  63. data/lib/capybara/spec/views/with_html.erb +2 -0
  64. data/lib/capybara/spec/views/with_js.erb +9 -1
  65. data/lib/capybara/spec/views/with_title.erb +4 -1
  66. data/lib/capybara/spec/views/with_windows.erb +2 -2
  67. data/lib/capybara/version.rb +1 -1
  68. data/spec/basic_node_spec.rb +1 -0
  69. data/spec/capybara_spec.rb +12 -3
  70. data/spec/dsl_spec.rb +18 -6
  71. data/spec/rack_test_spec.rb +6 -5
  72. data/spec/rspec/matchers_spec.rb +62 -16
  73. data/spec/rspec/views_spec.rb +7 -0
  74. data/spec/selenium_spec.rb +38 -3
  75. data/spec/selenium_spec_chrome.rb +3 -7
  76. metadata +13 -4
@@ -0,0 +1,23 @@
1
+ Capybara::SpecHelper.spec '#save_screenshot', requires: [:screenshot] do
2
+ before do
3
+ @session.visit '/foo'
4
+ end
5
+
6
+ it "generates sensible filename" do
7
+ allow(@session.driver).to receive(:save_screenshot)
8
+
9
+ @session.save_screenshot
10
+
11
+ regexp = Regexp.new(File.expand_path('capybara-\d+\.png'))
12
+ expect(@session.driver).to have_received(:save_screenshot).with(regexp, {})
13
+ end
14
+
15
+ it "allows to specify another path" do
16
+ allow(@session.driver).to receive(:save_screenshot)
17
+
18
+ custom_path = 'screenshots/1.png'
19
+ @session.save_screenshot(custom_path)
20
+
21
+ expect(@session.driver).to have_received(:save_screenshot).with(custom_path, {})
22
+ end
23
+ end
@@ -108,6 +108,18 @@ Capybara::SpecHelper.spec "#select" do
108
108
  end
109
109
  end
110
110
 
111
+ context "on a disabled option" do
112
+ it "should not select" do
113
+ @session.select('Other', :from => 'form_title')
114
+ expect(@session.find_field('form_title').value).not_to eq 'Other'
115
+ end
116
+
117
+ it "should warn" do
118
+ expect_any_instance_of(Capybara::Node::Element).to receive(:warn).once
119
+ @session.select('Other', :from => 'form_title')
120
+ end
121
+ end
122
+
111
123
  context "with multiple select" do
112
124
  it "should return an empty value" do
113
125
  expect(@session.find_field('Language').value).to eq([])
@@ -1,13 +1,13 @@
1
1
  Capybara::SpecHelper.spec '#title' do
2
2
 
3
- it "should print the title of the page" do
3
+ it "should get the title of the page" do
4
4
  @session.visit('/with_title')
5
5
  expect(@session.title).to eq('Test Title')
6
6
  end
7
7
 
8
8
  context "with css as default selector" do
9
9
  before { Capybara.default_selector = :css }
10
- it "should print the title of the page" do
10
+ it "should get the title of the page" do
11
11
  @session.visit('/with_title')
12
12
  expect(@session.title).to eq('Test Title')
13
13
  end
@@ -37,7 +37,7 @@ Capybara::SpecHelper.spec '#become_closed', requires: [:windows, :js] do
37
37
  end
38
38
 
39
39
  context 'without :wait option' do
40
- it 'should wait if value of default_wait_time is more than timeout' do
40
+ it 'should wait if value of default_max_wait_time is more than timeout' do
41
41
  @session.within_window @other_window do
42
42
  @session.execute_script('setTimeout(function(){ window.close(); }, 500);')
43
43
  end
@@ -46,7 +46,7 @@ Capybara::SpecHelper.spec '#become_closed', requires: [:windows, :js] do
46
46
  end
47
47
  end
48
48
 
49
- it 'should raise error if value of default_wait_time is less than timeout' do
49
+ it 'should raise error if value of default_max_wait_time is less than timeout' do
50
50
  @session.within_window @other_window do
51
51
  @session.execute_script('setTimeout(function(){ window.close(); }, 900);')
52
52
  end
@@ -59,7 +59,7 @@ Capybara::SpecHelper.spec '#become_closed', requires: [:windows, :js] do
59
59
  end
60
60
 
61
61
  context 'with not_to' do
62
- it 'should raise error if default_wait_time is more than timeout' do
62
+ it 'should raise error if default_max_wait_time is more than timeout' do
63
63
  @session.within_window @other_window do
64
64
  @session.execute_script('setTimeout(function(){ window.close(); }, 700);')
65
65
  end
@@ -70,7 +70,7 @@ Capybara::SpecHelper.spec '#become_closed', requires: [:windows, :js] do
70
70
  end
71
71
  end
72
72
 
73
- it 'should raise error if default_wait_time is more than timeout' do
73
+ it 'should raise error if default_max_wait_time is more than timeout' do
74
74
  @session.within_window @other_window do
75
75
  @session.execute_script('setTimeout(function(){ window.close(); }, 700);')
76
76
  end
@@ -46,6 +46,7 @@ Capybara::SpecHelper.spec '#switch_to_window', requires: [:windows] do
46
46
  context "with block" do
47
47
  before(:each) do
48
48
  @session.find(:css, '#openTwoWindows').click
49
+ sleep(0.2) # wait for the windows to open
49
50
  end
50
51
 
51
52
  it "should be able to switch to current window" do
@@ -111,4 +112,11 @@ Capybara::SpecHelper.spec '#switch_to_window', requires: [:windows] do
111
112
  expect(@session.current_window).to eq(original)
112
113
  end
113
114
  end
115
+
116
+ it "should wait for window to appear" do
117
+ @session.find(:css, '#openWindowWithTimeout').click
118
+ expect do
119
+ @session.switch_to_window { @session.title == 'Title of the first popup'}
120
+ end.not_to raise_error
121
+ end
114
122
  end
@@ -18,9 +18,10 @@ Capybara::SpecHelper.spec '#window_opened_by', requires: [:windows] do
18
18
  it 'should raise error if value of :wait is less than timeout' do
19
19
  # So large value is used as `driver.window_handles` takes up to 800 ms on Travis
20
20
  Capybara.using_wait_time 2 do
21
+ button=@session.find(:css, '#openWindowWithLongerTimeout')
21
22
  expect do
22
23
  @session.window_opened_by(wait: 0.8) do
23
- @session.find(:css, '#openWindowWithLongerTimeout').click
24
+ button.click
24
25
  end
25
26
  end.to raise_error(Capybara::WindowError, zero_windows_message)
26
27
  end
@@ -30,9 +31,10 @@ Capybara::SpecHelper.spec '#window_opened_by', requires: [:windows] do
30
31
  end
31
32
 
32
33
  it 'should find window if value of :wait is more than timeout' do
34
+ button = @session.find(:css, '#openWindowWithTimeout')
33
35
  Capybara.using_wait_time 0.1 do
34
36
  window = @session.window_opened_by(wait: 1.5) do
35
- @session.find(:css, '#openWindowWithTimeout').click
37
+ button.click
36
38
  end
37
39
  expect(window).to be_instance_of(Capybara::Window)
38
40
  end
@@ -40,11 +42,12 @@ Capybara::SpecHelper.spec '#window_opened_by', requires: [:windows] do
40
42
  end
41
43
 
42
44
  context 'without :wait option' do
43
- it 'should raise error if default_wait_time is less than timeout' do
45
+ it 'should raise error if default_max_wait_time is less than timeout' do
46
+ button = @session.find(:css, '#openWindowWithTimeout')
44
47
  Capybara.using_wait_time 0.4 do
45
48
  expect do
46
49
  @session.window_opened_by do
47
- @session.find(:css, '#openWindowWithTimeout').click
50
+ button.click
48
51
  end
49
52
  end.to raise_error(Capybara::WindowError, zero_windows_message)
50
53
  end
@@ -53,10 +56,11 @@ Capybara::SpecHelper.spec '#window_opened_by', requires: [:windows] do
53
56
  end
54
57
  end
55
58
 
56
- it 'should find window if default_wait_time is more than timeout' do
59
+ it 'should find window if default_max_wait_time is more than timeout' do
60
+ button = @session.find(:css, '#openWindowWithTimeout')
57
61
  Capybara.using_wait_time 1.5 do
58
62
  window = @session.window_opened_by do
59
- @session.find(:css, '#openWindowWithTimeout').click
63
+ button.click
60
64
  end
61
65
  expect(window).to be_instance_of(Capybara::Window)
62
66
  end
@@ -64,9 +68,10 @@ Capybara::SpecHelper.spec '#window_opened_by', requires: [:windows] do
64
68
  end
65
69
 
66
70
  it 'should raise error when two windows have been opened by block' do
71
+ button = @session.find(:css, '#openTwoWindows')
67
72
  expect do
68
73
  @session.window_opened_by do
69
- @session.find(:css, '#openTwoWindows').click
74
+ button.click
70
75
  end
71
76
  end.to raise_error(Capybara::WindowError, two_windows_message)
72
77
  @session.document.synchronize(2, errors: [Capybara::CapybaraError]) do
@@ -75,9 +80,10 @@ Capybara::SpecHelper.spec '#window_opened_by', requires: [:windows] do
75
80
  end
76
81
 
77
82
  it 'should raise error when no windows were opened by block' do
83
+ button = @session.find(:css, '#doesNotOpenWindows')
78
84
  expect do
79
85
  @session.window_opened_by do
80
- @session.find(:css, '#doesNotOpenWindows').click
86
+ button.click
81
87
  end
82
88
  end.to raise_error(Capybara::WindowError, zero_windows_message)
83
89
  end
@@ -86,10 +86,14 @@ Capybara::SpecHelper.spec Capybara::Window, requires: [:windows] do
86
86
 
87
87
  describe '#size' do
88
88
  it 'should return size of whole window', requires: [:windows, :js] do
89
+ skip "Chromedriver returns a size larger than outerWidth, outerHeight???" if ENV['TRAVIS'] && @session.respond_to?(:mode) && (@session.mode == :selenium_chrome)
90
+
89
91
  expect(@session.current_window.size).to eq @session.evaluate_script("[window.outerWidth, window.outerHeight];")
90
92
  end
91
93
 
92
94
  it 'should switch to original window if invoked not for current window' do
95
+ skip "Chromedriver returns a size larger than outerWidth, outerHeight???" if ENV['TRAVIS'] && @session.respond_to?(:mode) && (@session.mode == :selenium_chrome)
96
+
93
97
  @other_window = @session.window_opened_by do
94
98
  @session.find(:css, '#openWindow').click
95
99
  end
@@ -104,23 +108,32 @@ Capybara::SpecHelper.spec Capybara::Window, requires: [:windows] do
104
108
 
105
109
  describe '#resize_to' do
106
110
  it 'should be able to resize window', requires: [:windows, :js] do
111
+
107
112
  width, height = @session.evaluate_script("[window.outerWidth, window.outerHeight];")
108
113
  @session.current_window.resize_to(width-10, height-10)
109
114
  expect(@session.evaluate_script("[window.outerWidth, window.outerHeight];")).to eq([width-10, height-10])
110
115
  end
111
116
 
112
- it 'should switch to original window if invoked not for current window' do
117
+ it 'should stay on current window if invoked not for current window', requires: [:windows, :js] do
118
+
113
119
  @other_window = @session.window_opened_by do
114
120
  @session.find(:css, '#openWindow').click
115
121
  end
116
122
  @other_window.resize_to(400, 300)
117
123
  expect(@session.current_window).to eq(@window)
118
- expect(@other_window.size).to eq([400, 300])
124
+
125
+ # #size returns values larger than availWidth, availHeight with Chromedriver
126
+ # expect(@other_window.size).to eq([400, 300])
127
+ @session.within_window(@other_window) do
128
+ expect(@session.evaluate_script("[window.outerWidth, window.outerHeight]")).to eq([400,300])
129
+ end
119
130
  end
120
131
  end
121
132
 
122
133
  describe '#maximize' do
123
134
  it 'should be able to maximize window', requires: [:windows, :js] do
135
+ skip "This test fails when run with Firefox on Travis - see issue #1493 - skipping for now" if ENV['TRAVIS'] && @session.respond_to?(:mode) && (@session.mode == :selenium_focus)
136
+
124
137
  screen_width, screen_height = @session.evaluate_script("[window.screen.availWidth, window.screen.availHeight];")
125
138
  window = @session.current_window
126
139
  window.resize_to(screen_width-100, screen_height-100)
@@ -130,13 +143,20 @@ Capybara::SpecHelper.spec Capybara::Window, requires: [:windows] do
130
143
  expect(@session.evaluate_script("[window.outerWidth, window.outerHeight];")).to eq([screen_width, screen_height])
131
144
  end
132
145
 
133
- it 'should switch to original window if invoked not for current window', requires: [:windows, :js] do
146
+ it 'should stay on current window if invoked not for current window', requires: [:windows, :js] do
147
+ skip "This test fails when run with Firefox on Travis - see issue #1493 - skipping for now" if ENV['TRAVIS'] && @session.respond_to?(:mode) && (@session.mode == :selenium_focus)
148
+
134
149
  @other_window = @session.window_opened_by do
135
150
  @session.find(:css, '#openWindow').click
136
151
  end
137
152
  @other_window.maximize
153
+ sleep 0.5 # The timing on maximize is finicky on Travis -- wait a bit for maximize to occur
138
154
  expect(@session.current_window).to eq(@window)
139
- expect(@other_window.size).to eq(@session.evaluate_script("[window.screen.availWidth, window.screen.availHeight];"))
155
+ # #size returns values larger than availWidth, availHeight with Chromedriver
156
+ # expect(@other_window.size).to eq(@session.evaluate_script("[window.screen.availWidth, window.screen.availHeight];"))
157
+ @session.within_window(@other_window) do
158
+ expect(@session.evaluate_script("[window.outerWidth, window.outerHeight]")).to eq(@session.evaluate_script("[window.screen.availWidth, window.screen.availHeight];"))
159
+ end
140
160
  end
141
161
  end
142
162
  end
@@ -26,13 +26,14 @@ module Capybara
26
26
  Capybara.app = TestApp
27
27
  Capybara.app_host = nil
28
28
  Capybara.default_selector = :xpath
29
- Capybara.default_wait_time = 1
29
+ Capybara.default_max_wait_time = 1
30
30
  Capybara.ignore_hidden_elements = true
31
31
  Capybara.exact = false
32
32
  Capybara.exact_options = false
33
33
  Capybara.raise_server_errors = true
34
34
  Capybara.visible_text_only = false
35
35
  Capybara.match = :smart
36
+ Capybara.wait_on_first_by_default = false
36
37
  end
37
38
 
38
39
  def filter(requires, metadata)
@@ -88,6 +89,7 @@ module Capybara
88
89
  end
89
90
 
90
91
  def extract_results(session)
92
+ expect(session).to have_xpath("//pre[@id='results']")
91
93
  YAML.load Nokogiri::HTML(session.body).xpath("//pre[@id='results']").first.inner_html.lstrip
92
94
  end
93
95
  end
@@ -1,4 +1,5 @@
1
1
  require 'sinatra/base'
2
+ require 'tilt/erb'
2
3
  require 'rack'
3
4
  require 'yaml'
4
5
 
@@ -123,8 +124,16 @@ class TestApp < Sinatra::Base
123
124
  raise TestAppError, "some error"
124
125
  end
125
126
 
127
+ get '/load_error' do
128
+ raise LoadError
129
+ end
130
+
131
+ get '/with.*html' do
132
+ erb :with_html, locals: { referrer: request.referrer }
133
+ end
134
+
126
135
  get '/:view' do |view|
127
- erb view.to_sym
136
+ erb view.to_sym, locals: { referrer: request.referrer }
128
137
  end
129
138
 
130
139
  post '/form' do
@@ -161,7 +161,7 @@ New line after and before textarea tag
161
161
  <input type="checkbox" value="hamster" name="form[pets][]" id="form_pets_hamster" checked="checked"/>
162
162
  <label for="form_pets_hamster">Hamster</label>
163
163
  </p>
164
-
164
+
165
165
  <p>
166
166
  <input type="checkbox" name="form[valueless_checkbox]" id="valueless_checkbox" checked="checked"/>
167
167
  <label for="valueless_checkbox">Valueless Checkbox</label>
@@ -289,6 +289,11 @@ New line after and before textarea tag
289
289
  <button id="no_type">No Type!</button>
290
290
  <input type="button" disabled="disabled" value="Disabled button"/>
291
291
  </p>
292
+
293
+ <p>
294
+ <input id="readonly" name="form[readonly_test]" readonly/>
295
+ <input id="not_readonly" name="form[readonly_test]" />
296
+ </p>
292
297
  </form>
293
298
 
294
299
  <input type="text" name="form[outside_input]" value="outside_input" form="form1"/>
@@ -434,6 +439,7 @@ New line after and before textarea tag
434
439
  <input type="text" name="form[which_form]" value="formaction form"/>
435
440
  </p>
436
441
  <input type="submit" name="form[button]" formaction="/form" value="Formaction button"/>
442
+ <input type="submit" name="form[button]" formaction="/form/get" formmethod="get" value="Formmethod button"/>
437
443
  </form>
438
444
 
439
445
  <form action="relative" method="post">
@@ -0,0 +1,12 @@
1
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
2
+ <body>
3
+ <div>
4
+ <a href="#">First Link</a>
5
+ </div>
6
+ Text node
7
+ <div>
8
+ <a href="#">Second Link</a>
9
+ <a href="#">Third Link</a>
10
+ </div>
11
+ </body>
12
+ </html>
@@ -1,3 +1,4 @@
1
+ <div id="referrer"><%= referrer %></div>
1
2
  <h1>This is a test</h1>
2
3
 
3
4
  <h2 class="no text"></h2>
@@ -45,6 +46,7 @@ banana</textarea>
45
46
  <a>No Href</a>
46
47
  <a href="">Blank Href</a>
47
48
  <a href="#">Blank Anchor</a>
49
+ <a href="javascript:void(0)">Blank JS Anchor</a>
48
50
  <a href="#anchor">Normal Anchor</a>
49
51
  <a href="/with_simple_html#anchor">Anchor on different page</a>
50
52
  <a href="/with_html#anchor">Anchor on same page</a>
@@ -69,7 +69,7 @@
69
69
  <p>
70
70
  <a href="#" id="change-title">Change title</a>
71
71
  </p>
72
-
72
+
73
73
  <p id="click-test">Click me</p>
74
74
 
75
75
  <p>
@@ -89,6 +89,14 @@
89
89
  <a href="#" id="open-prompt">Open prompt</a>
90
90
  </p>
91
91
 
92
+ <p>
93
+ <a href="#" id="delayed-page-change">Change page</a>
94
+ </p>
95
+
96
+ <p>
97
+ <input type="test" name="with-key-events" id="with-key-events">
98
+ <p id="key-events-output"></p>
99
+ </p>
92
100
  <script type="text/javascript">
93
101
  // a javascript comment
94
102
  var aVar = 123;
@@ -1 +1,4 @@
1
- <title>Test Title</title>
1
+ <title>Test Title</title>
2
+ <body>
3
+ <svg><title>abcdefg</title></svg>
4
+ </body>
@@ -11,14 +11,14 @@
11
11
 
12
12
  $('#openWindowWithTimeout').click(function(){
13
13
  setTimeout(function(){
14
- window.open('/popup_one', 'firstPopup');
14
+ window.open('/popup_one', 'timeoutPopup');
15
15
  }, 600);
16
16
  return false;
17
17
  });
18
18
 
19
19
  $('#openWindowWithLongerTimeout').click(function(){
20
20
  setTimeout(function(){
21
- window.open('/popup_one', 'firstPopup');
21
+ window.open('/popup_one', 'longerTimeoutPopup');
22
22
  }, 1400);
23
23
  return false;
24
24
  });
@@ -1,3 +1,3 @@
1
1
  module Capybara
2
- VERSION = '2.4.4'
2
+ VERSION = '2.5.0'
3
3
  end
@@ -9,6 +9,7 @@ RSpec.describe Capybara do
9
9
  <title>simple_node</title>
10
10
  </head>
11
11
  <body>
12
+ <svg><title>not document title</title></svg>
12
13
  <div id="page">
13
14
  <div id="content">
14
15
  <h1 data="fantastic">Totally awesome</h1>
@@ -1,15 +1,24 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  RSpec.describe Capybara do
4
- describe 'default_wait_time' do
4
+ describe 'default_max_wait_time' do
5
5
  after do
6
- Capybara.default_wait_time = @previous_default_time
6
+ Capybara.default_max_wait_time = @previous_default_time
7
7
  end
8
8
 
9
9
  it "should be changeable" do
10
- @previous_default_time = Capybara.default_wait_time
10
+ @previous_default_time = Capybara.default_max_wait_time
11
+ Capybara.default_max_wait_time = 5
12
+ expect(Capybara.default_max_wait_time).to eq(5)
13
+ end
14
+
15
+ it "should be accesible as the deprecated default_wait_time" do
16
+ expect_any_instance_of(Kernel).to receive(:warn).once.with('DEPRECATED: #default_wait_time= is deprecated, please use #default_max_wait_time= instead')
17
+ expect_any_instance_of(Kernel).to receive(:warn).once.with('DEPRECATED: #default_wait_time is deprecated, please use #default_max_wait_time instead')
18
+ @previous_default_time = Capybara.default_max_wait_time
11
19
  Capybara.default_wait_time = 5
12
20
  expect(Capybara.default_wait_time).to eq(5)
21
+ expect(Capybara.default_max_wait_time).to eq(5)
13
22
  end
14
23
  end
15
24