From 0ddd243630c1a3b4c60b9d46c13ff28970b5cf71 Mon Sep 17 00:00:00 2001 From: Sam Stokes Date: Mon, 10 Jan 2011 21:13:19 -0800 Subject: [PATCH] Mocked em-http #last_effective_url should return something reasonable --- .../http_lib_adapters/em_http_request.rb | 2 +- spec/em_http_request_spec.rb | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/lib/webmock/http_lib_adapters/em_http_request.rb b/lib/webmock/http_lib_adapters/em_http_request.rb index a673a13f9..fe746b4e5 100644 --- a/lib/webmock/http_lib_adapters/em_http_request.rb +++ b/lib/webmock/http_lib_adapters/em_http_request.rb @@ -10,7 +10,7 @@ class WebMockHttpRequest < EventMachine::HttpRequest class WebMockHttpClient < EventMachine::HttpClient def setup(response, uri, error = nil) - @uri = uri + @last_effective_url = @uri = uri if error on_error(error) fail(self) diff --git a/spec/em_http_request_spec.rb b/spec/em_http_request_spec.rb index 784c5bca2..0bec86dee 100644 --- a/spec/em_http_request_spec.rb +++ b/spec/em_http_request_spec.rb @@ -30,5 +30,26 @@ http_request(:get, "http://www.example.com/?x=3", :query => "a[]=b&a[]=c").body.should == "abc" end + describe "mocking EM::HttpClient API" do + before { stub_http_request(:get, "www.example.com/") } + subject do + client = nil + EM.run do + client = EventMachine::HttpRequest.new('http://www.example.com/').get + client.callback { EM.stop } + client.errback { failed } + end + client + end + + it 'should support #uri' do + subject.uri.should == Addressable::URI.parse('http://www.example.com/') + end + + it 'should support #last_effective_url' do + subject.last_effective_url.should == Addressable::URI.parse('http://www.example.com/') + end + end + end end