Unfortunately this commit breaks any Rails specs which pass anchor tags. I like the concept, but I'd prefer to work on this post 0.4.1 once I have a bit more time to work out the failures in our referance app.
This reverts commit 4fc2b7eb7e
.
This commit is contained in:
parent
4fc2b7eb7e
commit
7a59353c78
@ -65,11 +65,19 @@ module Webrat
|
||||
@context
|
||||
end
|
||||
|
||||
#now that we are not following external links, do NOT normalize the url and strip it of its host
|
||||
#once we get here we don't care about stripping out the host because we know
|
||||
def do_request(http_method, url, data, headers) #:nodoc:
|
||||
update_protocol(url)
|
||||
integration_session.send(http_method, url, data, headers)
|
||||
integration_session.send(http_method, normalize_url(url), data, headers)
|
||||
end
|
||||
|
||||
# remove protocol, host and anchor
|
||||
def normalize_url(href) #:nodoc:
|
||||
uri = URI.parse(href)
|
||||
normalized_url = uri.path
|
||||
if uri.query
|
||||
normalized_url += "?" + uri.query
|
||||
end
|
||||
normalized_url
|
||||
end
|
||||
|
||||
def update_protocol(href) #:nodoc:
|
||||
|
@ -6,7 +6,6 @@ describe Webrat::RailsSession do
|
||||
before :each do
|
||||
Webrat.configuration.mode = :rails
|
||||
@integration_session = mock("integration_session")
|
||||
@integration_session.stub!(:response => mock("response", :body => "<html>", :code => '200'))
|
||||
end
|
||||
|
||||
it "should delegate response_body to the session response body" do
|
||||
@ -44,18 +43,18 @@ describe Webrat::RailsSession do
|
||||
end
|
||||
|
||||
context "the URL is a full path" do
|
||||
it "should pass the full url" do
|
||||
it "should just pass on the path" do
|
||||
@integration_session.stub!(:https!)
|
||||
@integration_session.should_receive(:get).with("http://www.example.com/url", "data", "headers")
|
||||
@integration_session.should_receive(:get).with("/url", "data", "headers")
|
||||
rails_session = Webrat::RailsSession.new(@integration_session)
|
||||
rails_session.get("http://www.example.com/url", "data", "headers")
|
||||
end
|
||||
end
|
||||
|
||||
context "the URL is https://" do
|
||||
it "should call #https! with true before the request before passing along the full url" do
|
||||
it "should call #https! with true before the request and just pass on the path" do
|
||||
@integration_session.should_receive(:https!).with(true)
|
||||
@integration_session.should_receive(:get).with("https://www.example.com/url", "data", "headers")
|
||||
@integration_session.should_receive(:get).with("/url", "data", "headers")
|
||||
rails_session = Webrat::RailsSession.new(@integration_session)
|
||||
rails_session.get("https://www.example.com/url", "data", "headers")
|
||||
end
|
||||
@ -71,9 +70,9 @@ describe Webrat::RailsSession do
|
||||
end
|
||||
|
||||
context "the URL include an anchor" do
|
||||
it "should keep the anchor" do
|
||||
it "should strip out the anchor" do
|
||||
@integration_session.should_receive(:https!).with(false)
|
||||
@integration_session.should_receive(:get).with("http://www.example.com/url#foo", "data", "headers")
|
||||
@integration_session.should_receive(:get).with("/url", "data", "headers")
|
||||
rails_session = Webrat::RailsSession.new(@integration_session)
|
||||
rails_session.get("http://www.example.com/url#foo", "data", "headers")
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user