Add more referer tests
This includes a pending test "should send no referer when visiting a second page", which does not pass on Rack::Test right now.
This commit is contained in:
parent
617f975a6d
commit
7b5682e272
|
@ -297,9 +297,33 @@ shared_examples_for "driver with infinite redirect detection" do
|
|||
end
|
||||
|
||||
shared_examples_for "driver with referer support" do
|
||||
before :each do
|
||||
@driver.reset!
|
||||
end
|
||||
|
||||
it "should send no referer when visiting a page" do
|
||||
@driver.visit '/get_referer'
|
||||
@driver.body.should include 'No referer'
|
||||
end
|
||||
|
||||
it "should send no referer when visiting a second page" do
|
||||
if @driver.is_a? Capybara::RackTest::Driver
|
||||
pending 'Rack::Test sends referer on subsequent visit'
|
||||
end
|
||||
@driver.visit '/get_referer'
|
||||
@driver.visit '/get_referer'
|
||||
@driver.body.should include 'No referer'
|
||||
end
|
||||
|
||||
it "should send a referer when following a link" do
|
||||
@driver.visit '/referer_base'
|
||||
@driver.find('//a[@href="/get_referer"]').first.click
|
||||
@driver.body.should include '/referer_base'
|
||||
end
|
||||
|
||||
it "should preserve the original referer URL when following a redirect" do
|
||||
@driver.visit('/referer_base')
|
||||
@driver.find('//a[@href="redirect_and_keep_referer"]').first.click
|
||||
@driver.body.should include('referer_base')
|
||||
@driver.find('//a[@href="/redirect_to_get_referer"]').first.click
|
||||
@driver.body.should include('/referer_base')
|
||||
end
|
||||
end
|
||||
|
|
|
@ -25,15 +25,15 @@ class TestApp < Sinatra::Base
|
|||
end
|
||||
|
||||
get '/referer_base' do
|
||||
'Referer base: <a href="redirect_and_keep_referer">Link that will redirect</a>'
|
||||
'<a href="/get_referer">direct link</a>; <a href="/redirect_to_get_referer">link via redirect</a>'
|
||||
end
|
||||
|
||||
get '/redirect_and_keep_referer' do
|
||||
get '/redirect_to_get_referer' do
|
||||
redirect '/get_referer'
|
||||
end
|
||||
|
||||
get '/get_referer' do
|
||||
'Got referer: ' + request.referer
|
||||
request.referer.nil? ? "No referer" : "Got referer: #{request.referer}"
|
||||
end
|
||||
|
||||
get '/host' do
|
||||
|
|
Loading…
Reference in New Issue