diff --git a/lib/webmock/http_lib_adapters/em_http_request.rb b/lib/webmock/http_lib_adapters/em_http_request.rb index 3613dc4ea..2dd8725d9 100644 --- a/lib/webmock/http_lib_adapters/em_http_request.rb +++ b/lib/webmock/http_lib_adapters/em_http_request.rb @@ -15,6 +15,10 @@ def setup(response, uri, error = nil) succeed(self) end end + + def stream(&blk) + blk.call(@response) + end def unbind end diff --git a/spec/em_http_request_spec.rb b/spec/em_http_request_spec.rb index d91a97565..2e07a04aa 100644 --- a/spec/em_http_request_spec.rb +++ b/spec/em_http_request_spec.rb @@ -2,22 +2,26 @@ require 'webmock_spec' require 'ostruct' -unless RUBY_PLATFORM =~ /java/ - require 'em_http_request_spec_helper' +require 'em_http_request_spec_helper' - describe "Webmock with EM::HttpRequest" do - include EMHttpRequestSpecHelper +describe "Webmock with EM::HttpRequest" do + include EMHttpRequestSpecHelper - it_should_behave_like "WebMock" + it_should_behave_like "WebMock" - it "should work with block" - - it "should work with streaming" - - it "should work with optional query params" do - stub_http_request(:get, "www.example.com/?x=3&a[]=b&a[]=c").to_return(:body => "abc") - http_request(:get, "http://www.example.com/?x=3", :query => {"a" => ["b", "c"]}).body.should == "abc" - end + it "should work with streaming" do + stub_http_request(:get, "www.example.com").to_return(:body => "abc") + response = "" + EM.run { + http = EventMachine::HttpRequest.new('http://www.example.com/').get + http.stream { |chunk| response = chunk; EM.stop } + } + response.should == "abc" + end + it "should work with optional query params" do + stub_http_request(:get, "www.example.com/?x=3&a[]=b&a[]=c").to_return(:body => "abc") + http_request(:get, "http://www.example.com/?x=3", :query => {"a" => ["b", "c"]}).body.should == "abc" end + end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 63c8ef6ac..646924431 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,7 +1,7 @@ require 'rubygems' require 'httpclient' require 'patron' unless RUBY_PLATFORM =~ /java/ -require 'em-http' unless RUBY_PLATFORM =~ /java/ +require 'em-http' $LOAD_PATH.unshift(File.dirname(__FILE__)) $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))