Fixed following of internal redirects when using a custom Host header
Webrat didn't properly follow internal redirects when using the Host header, this lets Webrat check the Host header before falling back to www.example.com as the current_host.
This commit is contained in:
parent
481bfe03c0
commit
eddd979361
|
@ -264,7 +264,7 @@ For example:
|
|||
end
|
||||
|
||||
def current_host
|
||||
URI.parse(current_url).host || "www.example.com"
|
||||
URI.parse(current_url).host || @custom_headers["Host"] || "www.example.com"
|
||||
end
|
||||
|
||||
def response_location_host
|
||||
|
|
|
@ -25,6 +25,10 @@ class WebratController < ApplicationController
|
|||
redirect_to "http://google.com"
|
||||
end
|
||||
|
||||
def host_redirect
|
||||
redirect_to submit_url
|
||||
end
|
||||
|
||||
def before_redirect_form
|
||||
end
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ ActionController::Routing::Routes.draw do |map|
|
|||
webrat.internal_redirect "/internal_redirect", :action => "internal_redirect"
|
||||
webrat.external_redirect "/external_redirect", :action => "external_redirect"
|
||||
webrat.infinite_redirect "/infinite_redirect", :action => "infinite_redirect"
|
||||
webrat.host_redirect "/host_redirect", :action => "host_redirect"
|
||||
|
||||
webrat.before_redirect_form "/before_redirect_form", :action => "before_redirect_form"
|
||||
webrat.redirect_to_show_params "/redirect_to_show_params", :action => "redirect_to_show_params"
|
||||
|
|
|
@ -45,6 +45,13 @@ class WebratTest < ActionController::IntegrationTest
|
|||
assert response.redirect?
|
||||
end
|
||||
|
||||
test "should recognize the host header to follow redirects properly" do
|
||||
header "Host", "foo.bar"
|
||||
visit host_redirect_path
|
||||
assert !response.redirect?
|
||||
assert response.body.include?("OK")
|
||||
end
|
||||
|
||||
test "should click link by text" do
|
||||
visit internal_redirect_path
|
||||
click_link "Test Link Text"
|
||||
|
|
Loading…
Reference in New Issue