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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 900f8b3c6c40c11e73ea6b87c66f457f5dc31ba4
4
- data.tar.gz: cc898006a411581c3496edf13da7beedca981972
3
+ metadata.gz: b58346a93d1b784ad960451eea0e16c2cdb5264a
4
+ data.tar.gz: 6386e073e35c61290e7fdf77353d06f1b887af08
5
5
  SHA512:
6
- metadata.gz: 6a67ce2f18bd4995585b190df6483210f47782282df576d3e46655942f0ec23b962b52027a03fd97f4de48eefa73f931c3675a78388c6341b30c8394961771c0
7
- data.tar.gz: '01017609801364f823592cf2a318264613d73e1b6b901e29ab78dbb88612e9694952f5172fa947b8ffc8cb48b9b0f2487768357b2ea81f939276bf53512ac043'
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: Unreleased
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]
@@ -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)
@@ -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
- visit_uri_parts = visit_uri.to_hash.delete_if { |k,v| v.nil? }
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
- visit_uri = uri_base.merge(visit_uri_parts)
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, %Q{Unable to find visible xpath ".//div[@id='doesnotexist']" within #<Capybara::Node::Element tag="div" path="/html/body/div[1]">})
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)
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Capybara
3
- VERSION = '2.15.3'
3
+ VERSION = '2.15.4'
4
4
  end
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.3
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-03 00:00:00.000000000 Z
13
+ date: 2017-10-07 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri