pauldix-typhoeus 0.0.10 → 0.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/typhoeus/remote.rb +12 -3
- data/lib/typhoeus.rb +1 -1
- data/spec/typhoeus/remote_spec.rb +38 -0
- metadata +2 -2
data/lib/typhoeus/remote.rb
CHANGED
@@ -22,9 +22,9 @@ module Typhoeus
|
|
22
22
|
return nil unless @remote_mocks
|
23
23
|
if @remote_mocks.has_key? method
|
24
24
|
if @remote_mocks[method].has_key? url
|
25
|
-
get_mock_and_run_handlers(@remote_mocks[method][url], options)
|
25
|
+
get_mock_and_run_handlers(method, @remote_mocks[method][url], options)
|
26
26
|
elsif @remote_mocks[method].has_key? :catch_all
|
27
|
-
get_mock_and_run_handlers(@remote_mocks[method][:catch_all], options)
|
27
|
+
get_mock_and_run_handlers(method, @remote_mocks[method][:catch_all], options)
|
28
28
|
else
|
29
29
|
nil
|
30
30
|
end
|
@@ -33,8 +33,16 @@ module Typhoeus
|
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
|
-
def get_mock_and_run_handlers(response_args, options)
|
36
|
+
def get_mock_and_run_handlers(method, response_args, options)
|
37
37
|
response = Response.new(response_args[:code], response_args[:headers], response_args[:body], response_args[:time])
|
38
|
+
if response_args.has_key? :expected_body
|
39
|
+
raise "#{method} expected body of \"#{response_args[:expected_body]}\" but received #{options[:body]}" if response_args[:expected_body] != options[:body]
|
40
|
+
end
|
41
|
+
|
42
|
+
if response_args.has_key? :expected_headers
|
43
|
+
raise "#{method} expected body of \"#{response_args[:expected_headers].inspect}\" but received #{options[:headers].inspect}" if response_args[:expected_headers] != options[:headers]
|
44
|
+
end
|
45
|
+
|
38
46
|
if response.code >= 200 && response.code < 300 && options.has_key?(:on_success)
|
39
47
|
response = options[:on_success].call(response)
|
40
48
|
elsif options.has_key?(:on_failure)
|
@@ -72,6 +80,7 @@ module Typhoeus
|
|
72
80
|
|
73
81
|
easy.url = url
|
74
82
|
easy.method = method
|
83
|
+
easy.headers = options[:headers] if options.has_key? :headers
|
75
84
|
easy.headers["User-Agent"] = (options[:user_agent] || Typhoeus::USER_AGENT)
|
76
85
|
easy.params = options[:params] if options[:params]
|
77
86
|
easy.request_body = options[:body] if options[:body]
|
data/lib/typhoeus.rb
CHANGED
@@ -63,6 +63,44 @@ describe Typhoeus do
|
|
63
63
|
@klass.get("http://localhost:234234234").code.should == 0
|
64
64
|
end
|
65
65
|
|
66
|
+
describe "request body expectations" do
|
67
|
+
before(:all) do
|
68
|
+
@body_klass = Class.new do
|
69
|
+
include Typhoeus
|
70
|
+
end
|
71
|
+
@body_klass.mock(:put, :url => "http://whatev", :expected_body => "hi")
|
72
|
+
end
|
73
|
+
|
74
|
+
it "should take an expected request body" do
|
75
|
+
@body_klass.put("http://whatev", :body => "hi").code.should == 200
|
76
|
+
end
|
77
|
+
|
78
|
+
it "should raise if the expected request body doesn't match" do
|
79
|
+
lambda {
|
80
|
+
@body_klass.put("http://whatev", :body => "not what we expect")
|
81
|
+
}.should raise_error
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
describe "request header expectations" do
|
86
|
+
before(:all) do
|
87
|
+
@header_klass = Class.new do
|
88
|
+
include Typhoeus
|
89
|
+
end
|
90
|
+
@header_klass.mock(:get, :url => "http://asdf", :expected_headers => {"If-None-Match" => "\"lkjsd90823\""})
|
91
|
+
end
|
92
|
+
|
93
|
+
it "should take expected request headers" do
|
94
|
+
@header_klass.get("http://asdf", :headers => {"If-None-Match" => "\"lkjsd90823\""})
|
95
|
+
end
|
96
|
+
|
97
|
+
it "should raise if the expected request headers don't match" do
|
98
|
+
lambda {
|
99
|
+
@header_klass.get("http://asdf")
|
100
|
+
}.should raise_error
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
66
104
|
describe "remote methods" do
|
67
105
|
it "should work for defined remote methods" do
|
68
106
|
@klass.instance_eval do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pauldix-typhoeus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Dix
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-03
|
12
|
+
date: 2009-07-03 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|