mirror of
https://github.com/teamcapybara/capybara.git
synced 2022-11-09 12:08:07 -05:00
Fix visiting relative URLs when no server started, closes #861
This commit is contained in:
parent
d21d6ddd8a
commit
7da8833df2
4 changed files with 24 additions and 5 deletions
|
@ -170,10 +170,12 @@ module Capybara
|
|||
def visit(url)
|
||||
@touched = true
|
||||
|
||||
if url !~ /^http/ and Capybara.app_host
|
||||
url = Capybara.app_host + url.to_s
|
||||
end
|
||||
|
||||
if @server
|
||||
unless url =~ /^http/
|
||||
url = (Capybara.app_host || "http://#{@server.host}:#{@server.port}") + url.to_s
|
||||
end
|
||||
url = "http://#{@server.host}:#{@server.port}" + url.to_s unless url =~ /^http/
|
||||
|
||||
if Capybara.always_include_port
|
||||
uri = URI.parse(url)
|
||||
|
|
|
@ -43,6 +43,21 @@ Capybara::SpecHelper.spec '#visit' do
|
|||
end
|
||||
end
|
||||
|
||||
context "without a server", :requires => [:server] do
|
||||
it "should respect `app_host`" do
|
||||
serverless_session = Capybara::Session.new(@session.mode, nil)
|
||||
Capybara.app_host = "http://#{@session.server.host}:#{@session.server.port}"
|
||||
serverless_session.visit("/foo")
|
||||
serverless_session.should have_content("Another World")
|
||||
end
|
||||
|
||||
it "should visit a fully qualified URL" do
|
||||
serverless_session = Capybara::Session.new(@session.mode, nil)
|
||||
serverless_session.visit("http://#{@session.server.host}:#{@session.server.port}/foo")
|
||||
serverless_session.should have_content("Another World")
|
||||
end
|
||||
end
|
||||
|
||||
it "should send no referer when visiting a page" do
|
||||
@session.visit '/get_referer'
|
||||
@session.should have_content 'No referer'
|
||||
|
|
|
@ -9,7 +9,8 @@ Capybara::SpecHelper.run_specs TestClass.new, "DSL", :skip => [
|
|||
:js,
|
||||
:screenshot,
|
||||
:frames,
|
||||
:windows
|
||||
:windows,
|
||||
:server
|
||||
]
|
||||
|
||||
describe Capybara::DSL do
|
||||
|
|
|
@ -8,7 +8,8 @@ Capybara::SpecHelper.run_specs TestSessions::RackTest, "RackTest", :skip => [
|
|||
:js,
|
||||
:screenshot,
|
||||
:frames,
|
||||
:windows
|
||||
:windows,
|
||||
:server
|
||||
]
|
||||
|
||||
describe Capybara::Session do
|
||||
|
|
Loading…
Add table
Reference in a new issue