capybara 2.4.1 → 2.4.2
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.
- checksums.yaml +4 -4
- data/History.md +12 -2
- data/lib/capybara/rails.rb +6 -0
- data/lib/capybara/rspec/matchers.rb +1 -1
- data/lib/capybara/session.rb +5 -4
- data/lib/capybara/spec/session/window/become_closed_spec.rb +3 -3
- data/lib/capybara/spec/session/window/window_opened_by_spec.rb +4 -3
- data/lib/capybara/spec/session/window/window_spec.rb +5 -4
- data/lib/capybara/spec/views/with_windows.erb +9 -0
- data/lib/capybara/version.rb +1 -1
- data/spec/spec_helper.rb +1 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 04bb73ad4dc0bb8787750353e8f3977f7c4f36bb
|
4
|
+
data.tar.gz: a030257e516a4db73443415ee779ea31338cbdd1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4f640db24f67cb96877b9e08e73d43b725bfac2c4a82da8ce8ab269eb8e98f3b4b5d05ca6a5321a96c87b2e8b2616a4bee1ce91a61d412af35a5410c94258a78
|
7
|
+
data.tar.gz: 3ae37dfdb9e84be5ff42b750441393134c249febbbc254d0217ce233c252b0738dd7954be48c8458d7b112a9629cde31cd7ef89fe0b6a8d37bc2f131db8b3e3e
|
data/History.md
CHANGED
@@ -1,6 +1,16 @@
|
|
1
|
+
# Version 2.4.2
|
2
|
+
Release date: 2014-09-20
|
3
|
+
|
4
|
+
### Fixed
|
5
|
+
* Prevent concurrency issue when testing Rails app with default test environment [Thomas Walpole]
|
6
|
+
* Tags for windows API tests fixed [Dmitry Vorotilin]
|
7
|
+
* Documentation Fixes [Andrey Botalov]
|
8
|
+
* Always convert visit url to string, fixes issue with visit when always_include_port was enabled [Jake Goulding]
|
9
|
+
* Check correct rspec version before including ::RSpec::Matchers::Composable in Capybara RSpec matchers [Thomas Walpole, Justin Ko]
|
10
|
+
|
1
11
|
# Version 2.4.1
|
2
12
|
|
3
|
-
Release
|
13
|
+
Release date: 2014-07-03
|
4
14
|
|
5
15
|
### Added
|
6
16
|
|
@@ -76,7 +86,7 @@ Release date: 2013-11-21
|
|
76
86
|
instead of `about:blank`, fixing hanging issues in JRuby. [Jonas Nicklas]
|
77
87
|
* Fixed cookies not being set when path is blank under RackTest [Thomas Walpole]
|
78
88
|
* Clearing fields now correctly causes change events [Jonas Nicklas]
|
79
|
-
* Navigating to an
|
89
|
+
* Navigating to an absolute URI without trailing slash now works as expected
|
80
90
|
under RackTest [Jonas Nicklas]
|
81
91
|
* Checkboxes without assigned value default to `on` under RackTest [Nigel Sheridan-Smith]
|
82
92
|
* Clicks on buttons with no form associated with them are ignored in RackTest
|
data/lib/capybara/rails.rb
CHANGED
@@ -2,6 +2,12 @@ require 'capybara'
|
|
2
2
|
require 'capybara/dsl'
|
3
3
|
|
4
4
|
Capybara.app = Rack::Builder.new do
|
5
|
+
# Work around an issue where rails allows concurrency in test mode even though eager_load
|
6
|
+
# is false which can cause an issue with constant loading
|
7
|
+
if Gem::Version.new(Rails.version) >= Gem::Version.new("4.0")
|
8
|
+
use Rack::Lock unless Rails.application.config.eager_load || Rails.application.middleware.include?(Rack::Lock)
|
9
|
+
end
|
10
|
+
|
5
11
|
map "/" do
|
6
12
|
if Gem::Version.new(Rails.version) >= Gem::Version.new("3.0")
|
7
13
|
run Rails.application
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Capybara
|
2
2
|
module RSpecMatchers
|
3
3
|
class Matcher
|
4
|
-
include ::RSpec::Matchers::Composable if defined?(::RSpec::Version) &&
|
4
|
+
include ::RSpec::Matchers::Composable if defined?(::RSpec::Expectations::Version) && RSpec::Expectations::Version::STRING.to_f >= 3.0
|
5
5
|
|
6
6
|
def wrap(actual)
|
7
7
|
if actual.respond_to?("has_selector?")
|
data/lib/capybara/session.rb
CHANGED
@@ -199,22 +199,23 @@ module Capybara
|
|
199
199
|
#
|
200
200
|
# Will actually navigate to `http://google.com:4567/test`.
|
201
201
|
#
|
202
|
-
# @param [
|
202
|
+
# @param [#to_s] url The URL to navigate to. The parameter will be cast to a String.
|
203
203
|
#
|
204
204
|
def visit(url)
|
205
205
|
raise_server_error!
|
206
206
|
|
207
|
+
url = url.to_s
|
207
208
|
@touched = true
|
208
209
|
|
209
|
-
url_relative = URI.parse(url
|
210
|
+
url_relative = URI.parse(url).scheme.nil?
|
210
211
|
|
211
212
|
if url_relative && Capybara.app_host
|
212
|
-
url = Capybara.app_host + url
|
213
|
+
url = Capybara.app_host + url
|
213
214
|
url_relative = false
|
214
215
|
end
|
215
216
|
|
216
217
|
if @server
|
217
|
-
url = "http://#{@server.host}:#{@server.port}" + url
|
218
|
+
url = "http://#{@server.host}:#{@server.port}" + url if url_relative
|
218
219
|
|
219
220
|
if Capybara.always_include_port
|
220
221
|
uri = URI.parse(url)
|
@@ -8,7 +8,7 @@ Capybara::SpecHelper.spec '#become_closed', requires: [:windows, :js] do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
after(:each) do
|
11
|
-
@session.document.synchronize(
|
11
|
+
@session.document.synchronize(5, errors: [Capybara::CapybaraError]) do
|
12
12
|
raise Capybara::CapybaraError if @session.windows.size != 1
|
13
13
|
end
|
14
14
|
@session.switch_to_window(@window)
|
@@ -20,7 +20,7 @@ Capybara::SpecHelper.spec '#become_closed', requires: [:windows, :js] do
|
|
20
20
|
@session.execute_script('setTimeout(function(){ window.close(); }, 500);')
|
21
21
|
end
|
22
22
|
Capybara.using_wait_time 0.1 do
|
23
|
-
expect(@other_window).to become_closed(wait:
|
23
|
+
expect(@other_window).to become_closed(wait: 2)
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
@@ -41,7 +41,7 @@ Capybara::SpecHelper.spec '#become_closed', requires: [:windows, :js] do
|
|
41
41
|
@session.within_window @other_window do
|
42
42
|
@session.execute_script('setTimeout(function(){ window.close(); }, 500);')
|
43
43
|
end
|
44
|
-
Capybara.using_wait_time
|
44
|
+
Capybara.using_wait_time 1.5 do
|
45
45
|
expect(@other_window).to become_closed
|
46
46
|
end
|
47
47
|
end
|
@@ -16,10 +16,11 @@ Capybara::SpecHelper.spec '#window_opened_by', requires: [:windows] do
|
|
16
16
|
|
17
17
|
context 'with :wait option' 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
|
+
Capybara.using_wait_time 2 do
|
20
21
|
expect do
|
21
|
-
@session.window_opened_by(wait: 0.
|
22
|
-
@session.find(:css, '#
|
22
|
+
@session.window_opened_by(wait: 0.8) do
|
23
|
+
@session.find(:css, '#openWindowWithLongerTimeout').click
|
23
24
|
end
|
24
25
|
end.to raise_error(Capybara::WindowError, zero_windows_message)
|
25
26
|
end
|
@@ -85,7 +85,7 @@ Capybara::SpecHelper.spec Capybara::Window, requires: [:windows] do
|
|
85
85
|
end
|
86
86
|
|
87
87
|
describe '#size' do
|
88
|
-
it 'should return size of whole window', requires: [:js] do
|
88
|
+
it 'should return size of whole window', requires: [:windows, :js] do
|
89
89
|
expect(@session.current_window.size).to eq @session.evaluate_script("[window.outerWidth, window.outerHeight];")
|
90
90
|
end
|
91
91
|
|
@@ -103,7 +103,7 @@ Capybara::SpecHelper.spec Capybara::Window, requires: [:windows] do
|
|
103
103
|
end
|
104
104
|
|
105
105
|
describe '#resize_to' do
|
106
|
-
it 'should be able to resize window', requires: [:js] do
|
106
|
+
it 'should be able to resize window', requires: [:windows, :js] do
|
107
107
|
width, height = @session.evaluate_script("[window.outerWidth, window.outerHeight];")
|
108
108
|
@session.current_window.resize_to(width-10, height-10)
|
109
109
|
expect(@session.evaluate_script("[window.outerWidth, window.outerHeight];")).to eq([width-10, height-10])
|
@@ -120,16 +120,17 @@ Capybara::SpecHelper.spec Capybara::Window, requires: [:windows] do
|
|
120
120
|
end
|
121
121
|
|
122
122
|
describe '#maximize' do
|
123
|
-
it 'should be able to maximize window', requires: [:js] do
|
123
|
+
it 'should be able to maximize window', requires: [:windows, :js] do
|
124
124
|
screen_width, screen_height = @session.evaluate_script("[window.screen.availWidth, window.screen.availHeight];")
|
125
125
|
window = @session.current_window
|
126
126
|
window.resize_to(screen_width-100, screen_height-100)
|
127
127
|
expect(@session.evaluate_script("[window.outerWidth, window.outerHeight];")).to eq([screen_width-100, screen_height-100])
|
128
128
|
window.maximize
|
129
|
+
sleep 0.5 # The timing on maximize is finicky on Travis -- wait a bit for maximize to occur
|
129
130
|
expect(@session.evaluate_script("[window.outerWidth, window.outerHeight];")).to eq([screen_width, screen_height])
|
130
131
|
end
|
131
132
|
|
132
|
-
it 'should switch to original window if invoked not for current window' do
|
133
|
+
it 'should switch to original window if invoked not for current window', requires: [:windows, :js] do
|
133
134
|
@other_window = @session.window_opened_by do
|
134
135
|
@session.find(:css, '#openWindow').click
|
135
136
|
end
|
@@ -16,6 +16,13 @@
|
|
16
16
|
return false;
|
17
17
|
});
|
18
18
|
|
19
|
+
$('#openWindowWithLongerTimeout').click(function(){
|
20
|
+
setTimeout(function(){
|
21
|
+
window.open('/popup_one', 'firstPopup');
|
22
|
+
}, 1400);
|
23
|
+
return false;
|
24
|
+
});
|
25
|
+
|
19
26
|
$('#openTwoWindows').click(function() {
|
20
27
|
window.open('/popup_one', 'firstPopup');
|
21
28
|
window.open('/popup_two', 'secondPopup');
|
@@ -29,6 +36,8 @@
|
|
29
36
|
|
30
37
|
<button id="openWindowWithTimeout">Open new window with timeout</button>
|
31
38
|
|
39
|
+
<button id="openWindowWithLongerTimeout">Open new window with longer timeout</button>
|
40
|
+
|
32
41
|
<button id="openTwoWindows">Open two windows</button>
|
33
42
|
|
34
43
|
<button id="doesNotOpenWindows">Does not open windows</button>
|
data/lib/capybara/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capybara
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonas Nicklas
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain:
|
11
11
|
- gem-public_cert.pem
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-09-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|