capybara 2.15.3 → 2.15.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/History.md +7 -1
- data/lib/capybara.rb +1 -1
- data/lib/capybara/session.rb +9 -6
- data/lib/capybara/spec/session/visit_spec.rb +33 -0
- data/lib/capybara/spec/session/within_spec.rb +1 -1
- data/lib/capybara/version.rb +1 -1
- 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: b58346a93d1b784ad960451eea0e16c2cdb5264a
|
4
|
+
data.tar.gz: 6386e073e35c61290e7fdf77353d06f1b887af08
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5bf103e7ee612aa2ba02f530d77c7cd01430d43df2ac4221a40b8b415e1ccf7f41df84d3ea6795f6629f9d019521169a868dce350c26f4c65d764e92c743f13e
|
7
|
+
data.tar.gz: e94720fb414e4715748628717a13270372e3e1f1238fb8d36e8811d0060782f86a1ff851fdb1b1e78e8624cd4e3d5c6cb72b6de7af5a5b9276bf4098e15e0717
|
data/History.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
|
+
# Version 2.15.4
|
2
|
+
Release date: 2017-10-07
|
3
|
+
|
4
|
+
### Fixed
|
5
|
+
* Visiting an absolute URL shouldn't overwrite the port when no server or always_include_port=false - Issue #1921
|
6
|
+
|
1
7
|
# Version 2.15.3
|
2
|
-
Release date:
|
8
|
+
Release date: 2017-10-03
|
3
9
|
|
4
10
|
### Fixed
|
5
11
|
* Visiting '/' when Capybara.app_host has a trailing '/' - Issue #1918 [Thomas Walpole]
|
data/lib/capybara.rb
CHANGED
@@ -69,7 +69,7 @@ module Capybara
|
|
69
69
|
# === Configurable options
|
70
70
|
#
|
71
71
|
# [app_host = String/nil] The default host to use when giving a relative URL to visit, must be a valid URL e.g. http://www.example.com
|
72
|
-
# [always_include_port = Boolean] Whether the Rack server's port should automatically be inserted into every visited URL (Default: false)
|
72
|
+
# [always_include_port = Boolean] Whether the Rack server's port should automatically be inserted into every visited URL unless another port is explicitly specified (Default: false)
|
73
73
|
# [asset_host = String] Where dynamic assets are hosted - will be prepended to relative asset locations if present (Default: nil)
|
74
74
|
# [run_server = Boolean] Whether to start a Rack server for the given Rack app (Default: true)
|
75
75
|
# [raise_server_errors = Boolean] Should errors raised in the server be raised in the tests? (Default: true)
|
data/lib/capybara/session.rb
CHANGED
@@ -255,21 +255,24 @@ module Capybara
|
|
255
255
|
config.app_host && ::Addressable::URI.parse(config.app_host)
|
256
256
|
end
|
257
257
|
|
258
|
-
uri_base.port ||= @server.port if @server && config.always_include_port
|
259
|
-
|
260
258
|
if uri_base && [nil, 'http', 'https'].include?(visit_uri.scheme)
|
261
|
-
|
259
|
+
if visit_uri.relative?
|
260
|
+
uri_base.port ||= @server.port if @server && config.always_include_port
|
261
|
+
|
262
|
+
visit_uri_parts = visit_uri.to_hash.delete_if { |k,v| v.nil? }
|
262
263
|
|
263
|
-
if visit_uri.scheme.nil?
|
264
264
|
# TODO - this is only for compatability with previous 2.x behavior that concatenated
|
265
265
|
# Capybara.app_host and a "relative" path - Consider removing in 3.0
|
266
266
|
# @abotalov brought up a good point about this behavior potentially being useful to people
|
267
267
|
# deploying to a subdirectory and/or single page apps where only the url fragment changes
|
268
268
|
visit_uri_parts[:path] = uri_base.path + visit_uri.path
|
269
|
-
end
|
270
269
|
|
271
|
-
|
270
|
+
visit_uri = uri_base.merge(visit_uri_parts)
|
271
|
+
else
|
272
|
+
visit_uri.port ||= @server.port if @server && config.always_include_port
|
273
|
+
end
|
272
274
|
end
|
275
|
+
|
273
276
|
driver.visit(visit_uri.to_s)
|
274
277
|
end
|
275
278
|
|
@@ -80,8 +80,41 @@ Capybara::SpecHelper.spec '#visit' do
|
|
80
80
|
@session.visit('/random')
|
81
81
|
end
|
82
82
|
|
83
|
+
it "shouldn't override port if no server", requires: [:server] do
|
84
|
+
session = Capybara::Session.new(@session.mode, nil)
|
85
|
+
expect(session.driver).to receive(:visit).with("http://www.google.com")
|
86
|
+
session.visit("http://www.google.com")
|
87
|
+
end
|
88
|
+
|
89
|
+
it "shouldn't override port if no server but app_host is set", requires: [:server] do
|
90
|
+
session = Capybara::Session.new(@session.mode, nil)
|
91
|
+
Capybara.app_host = "http://www.example.com:6666"
|
92
|
+
expect(session.driver).to receive(:visit).with("http://www.google.com")
|
93
|
+
session.visit("http://www.google.com")
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
context "when Capybara.always_include_port is false" do
|
98
|
+
before(:each) do
|
99
|
+
Capybara.always_include_port = false
|
100
|
+
end
|
101
|
+
|
102
|
+
it "shouldn't overwrite port if app_host is set", requires: [:server] do
|
103
|
+
session = Capybara::Session.new(@session.mode, nil)
|
104
|
+
Capybara.app_host = "http://www.example.com:6666"
|
105
|
+
expect(session.driver).to receive(:visit).with("http://www.google.com")
|
106
|
+
session.visit("http://www.google.com")
|
107
|
+
end
|
108
|
+
|
109
|
+
it "shouldn't overwrite port if port specfified", requires: [:server] do
|
110
|
+
session = Capybara::Session.new(@session.mode, nil)
|
111
|
+
Capybara.app_host = "http://www.example.com:6666"
|
112
|
+
expect(session.driver).to receive(:visit).with("http://www.google.com:99")
|
113
|
+
session.visit("http://www.google.com:99")
|
114
|
+
end
|
83
115
|
end
|
84
116
|
|
117
|
+
|
85
118
|
context "without a server", requires: [:server] do
|
86
119
|
it "should respect `app_host`" do
|
87
120
|
serverless_session = Capybara::Session.new(@session.mode, nil)
|
@@ -101,7 +101,7 @@ Capybara::SpecHelper.spec '#within' do
|
|
101
101
|
expect do
|
102
102
|
@session.within(".//div[@id='doesnotexist']") do
|
103
103
|
end
|
104
|
-
end.to raise_error(Capybara::ElementNotFound
|
104
|
+
end.to raise_error(Capybara::ElementNotFound)
|
105
105
|
end.to_not change { @session.has_xpath?(".//div[@id='another_foo']") }.from(false)
|
106
106
|
end
|
107
107
|
end.to_not change { @session.has_xpath?(".//div[@id='another_foo']") }.from(true)
|
data/lib/capybara/version.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.15.
|
4
|
+
version: 2.15.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Walpole
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain:
|
12
12
|
- gem-public_cert.pem
|
13
|
-
date: 2017-10-
|
13
|
+
date: 2017-10-07 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: nokogiri
|