tyler_koala 1.2.0beta
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/.autotest +12 -0
- data/.gitignore +5 -0
- data/.travis.yml +9 -0
- data/CHANGELOG +185 -0
- data/Gemfile +11 -0
- data/LICENSE +22 -0
- data/Manifest +39 -0
- data/Rakefile +16 -0
- data/autotest/discover.rb +1 -0
- data/koala.gemspec +50 -0
- data/lib/koala.rb +119 -0
- data/lib/koala/batch_operation.rb +74 -0
- data/lib/koala/graph_api.rb +281 -0
- data/lib/koala/graph_batch_api.rb +87 -0
- data/lib/koala/graph_collection.rb +54 -0
- data/lib/koala/http_service.rb +161 -0
- data/lib/koala/oauth.rb +181 -0
- data/lib/koala/realtime_updates.rb +89 -0
- data/lib/koala/rest_api.rb +95 -0
- data/lib/koala/test_users.rb +102 -0
- data/lib/koala/uploadable_io.rb +180 -0
- data/lib/koala/utils.rb +7 -0
- data/readme.md +160 -0
- data/spec/cases/api_base_spec.rb +101 -0
- data/spec/cases/error_spec.rb +30 -0
- data/spec/cases/graph_and_rest_api_spec.rb +48 -0
- data/spec/cases/graph_api_batch_spec.rb +600 -0
- data/spec/cases/graph_api_spec.rb +42 -0
- data/spec/cases/http_service_spec.rb +420 -0
- data/spec/cases/koala_spec.rb +21 -0
- data/spec/cases/oauth_spec.rb +428 -0
- data/spec/cases/realtime_updates_spec.rb +198 -0
- data/spec/cases/rest_api_spec.rb +41 -0
- data/spec/cases/test_users_spec.rb +281 -0
- data/spec/cases/uploadable_io_spec.rb +206 -0
- data/spec/cases/utils_spec.rb +8 -0
- data/spec/fixtures/beach.jpg +0 -0
- data/spec/fixtures/cat.m4v +0 -0
- data/spec/fixtures/facebook_data.yml +61 -0
- data/spec/fixtures/mock_facebook_responses.yml +439 -0
- data/spec/spec_helper.rb +43 -0
- data/spec/support/graph_api_shared_examples.rb +502 -0
- data/spec/support/json_testing_fix.rb +42 -0
- data/spec/support/koala_test.rb +163 -0
- data/spec/support/mock_http_service.rb +98 -0
- data/spec/support/ordered_hash.rb +205 -0
- data/spec/support/rest_api_shared_examples.rb +285 -0
- data/spec/support/uploadable_io_shared_examples.rb +70 -0
- metadata +221 -0
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Koala::Facebook::GraphAPI" do
|
4
|
+
describe "class consolidation" do
|
5
|
+
before :each do
|
6
|
+
Koala::Utils.stub(:deprecate) # avoid actual messages to stderr
|
7
|
+
end
|
8
|
+
|
9
|
+
it "still allows you to instantiate a GraphAndRestAPI object" do
|
10
|
+
api = Koala::Facebook::GraphAPI.new("token").should be_a(Koala::Facebook::GraphAPI)
|
11
|
+
end
|
12
|
+
|
13
|
+
it "ultimately creates an API object" do
|
14
|
+
api = Koala::Facebook::GraphAPI.new("token").should be_a(Koala::Facebook::API)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "fires a depreciation warning" do
|
18
|
+
Koala::Utils.should_receive(:deprecate)
|
19
|
+
api = Koala::Facebook::GraphAPI.new("token")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
context "with an access token" do
|
24
|
+
before :each do
|
25
|
+
@api = Koala::Facebook::API.new(@token)
|
26
|
+
end
|
27
|
+
|
28
|
+
it_should_behave_like "Koala GraphAPI"
|
29
|
+
it_should_behave_like "Koala GraphAPI with an access token"
|
30
|
+
it_should_behave_like "Koala GraphAPI with GraphCollection"
|
31
|
+
end
|
32
|
+
|
33
|
+
context "without an access token" do
|
34
|
+
before :each do
|
35
|
+
@api = Koala::Facebook::API.new
|
36
|
+
end
|
37
|
+
|
38
|
+
it_should_behave_like "Koala GraphAPI"
|
39
|
+
it_should_behave_like "Koala GraphAPI without an access token"
|
40
|
+
it_should_behave_like "Koala GraphAPI with GraphCollection"
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,420 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Koala::HTTPService" do
|
4
|
+
it "has a faraday_middleware accessor" do
|
5
|
+
Koala::HTTPService.methods.map(&:to_sym).should include(:faraday_middleware)
|
6
|
+
Koala::HTTPService.methods.map(&:to_sym).should include(:faraday_middleware=)
|
7
|
+
end
|
8
|
+
|
9
|
+
it "has an faraday_options accessor" do
|
10
|
+
Koala::HTTPService.should respond_to(:faraday_options)
|
11
|
+
Koala::HTTPService.should respond_to(:faraday_options=)
|
12
|
+
end
|
13
|
+
|
14
|
+
it "sets faraday_options to {} by default" do
|
15
|
+
Koala::HTTPService.faraday_options.should == {}
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "DEFAULT_MIDDLEWARE" do
|
19
|
+
before :each do
|
20
|
+
@builder = stub("Faraday connection builder")
|
21
|
+
@builder.stub(:request)
|
22
|
+
@builder.stub(:adapter)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "is defined" do
|
26
|
+
Koala::HTTPService.const_defined?("DEFAULT_MIDDLEWARE").should be_true
|
27
|
+
end
|
28
|
+
|
29
|
+
it "adds multipart" do
|
30
|
+
@builder.should_receive(:request).with(:multipart)
|
31
|
+
Koala::HTTPService::DEFAULT_MIDDLEWARE.call(@builder)
|
32
|
+
end
|
33
|
+
|
34
|
+
it "adds url_encoded" do
|
35
|
+
@builder.should_receive(:request).with(:url_encoded)
|
36
|
+
Koala::HTTPService::DEFAULT_MIDDLEWARE.call(@builder)
|
37
|
+
end
|
38
|
+
|
39
|
+
it "uses the default adapter" do
|
40
|
+
adapter = :testing_now
|
41
|
+
Faraday.stub(:default_adapter).and_return(adapter)
|
42
|
+
@builder.should_receive(:adapter).with(adapter)
|
43
|
+
Koala::HTTPService::DEFAULT_MIDDLEWARE.call(@builder)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe "server" do
|
48
|
+
describe "with no options" do
|
49
|
+
it "returns the REST server if options[:rest_api]" do
|
50
|
+
Koala::HTTPService.server(:rest_api => true).should =~ Regexp.new(Koala::Facebook::REST_SERVER)
|
51
|
+
end
|
52
|
+
|
53
|
+
it "returns the graph server if !options[:rest_api]" do
|
54
|
+
Koala::HTTPService.server(:rest_api => false).should =~ Regexp.new(Koala::Facebook::GRAPH_SERVER)
|
55
|
+
Koala::HTTPService.server({}).should =~ Regexp.new(Koala::Facebook::GRAPH_SERVER)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe "with options[:beta]" do
|
60
|
+
before :each do
|
61
|
+
@options = {:beta => true}
|
62
|
+
end
|
63
|
+
|
64
|
+
it "returns the beta REST server if options[:rest_api]" do
|
65
|
+
server = Koala::HTTPService.server(@options.merge(:rest_api => true))
|
66
|
+
server.should =~ Regexp.new("beta.#{Koala::Facebook::REST_SERVER}")
|
67
|
+
end
|
68
|
+
|
69
|
+
it "returns the beta rest server if !options[:rest_api]" do
|
70
|
+
server = Koala::HTTPService.server(@options)
|
71
|
+
server.should =~ Regexp.new("beta.#{Koala::Facebook::GRAPH_SERVER}")
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
describe "with options[:video]" do
|
76
|
+
before :each do
|
77
|
+
@options = {:video => true}
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should return the REST video server if options[:rest_api]" do
|
81
|
+
server = Koala::HTTPService.server(@options.merge(:rest_api => true))
|
82
|
+
server.should =~ Regexp.new(Koala::Facebook::REST_SERVER.gsub(/\.facebook/, "-video.facebook"))
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should return the graph video server if !options[:rest_api]" do
|
86
|
+
server = Koala::HTTPService.server(@options)
|
87
|
+
server.should =~ Regexp.new(Koala::Facebook::GRAPH_SERVER.gsub(/\.facebook/, "-video.facebook"))
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
describe "#encode_params" do
|
93
|
+
it "should return an empty string if param_hash evaluates to false" do
|
94
|
+
Koala::HTTPService.encode_params(nil).should == ''
|
95
|
+
end
|
96
|
+
|
97
|
+
it "should convert values to JSON if the value is not a String" do
|
98
|
+
val = 'json_value'
|
99
|
+
not_a_string = 'not_a_string'
|
100
|
+
not_a_string.stub(:is_a?).and_return(false)
|
101
|
+
MultiJson.should_receive(:encode).with(not_a_string).and_return(val)
|
102
|
+
|
103
|
+
string = "hi"
|
104
|
+
|
105
|
+
args = {
|
106
|
+
not_a_string => not_a_string,
|
107
|
+
string => string
|
108
|
+
}
|
109
|
+
|
110
|
+
result = Koala::HTTPService.encode_params(args)
|
111
|
+
result.split('&').find do |key_and_val|
|
112
|
+
key_and_val.match("#{not_a_string}=#{val}")
|
113
|
+
end.should be_true
|
114
|
+
end
|
115
|
+
|
116
|
+
it "should escape all values" do
|
117
|
+
args = Hash[*(1..4).map {|i| [i.to_s, "Value #{i}($"]}.flatten]
|
118
|
+
|
119
|
+
result = Koala::HTTPService.encode_params(args)
|
120
|
+
result.split('&').each do |key_val|
|
121
|
+
key, val = key_val.split('=')
|
122
|
+
val.should == CGI.escape(args[key])
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
it "should convert all keys to Strings" do
|
127
|
+
args = Hash[*(1..4).map {|i| [i, "val#{i}"]}.flatten]
|
128
|
+
|
129
|
+
result = Koala::HTTPService.encode_params(args)
|
130
|
+
result.split('&').each do |key_val|
|
131
|
+
key, val = key_val.split('=')
|
132
|
+
key.should == args.find{|key_val_arr| key_val_arr.last == val}.first.to_s
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
describe "#make_request" do
|
138
|
+
before :each do
|
139
|
+
# Setup stubs for make_request to execute without exceptions
|
140
|
+
@mock_body = stub('Typhoeus response body')
|
141
|
+
@mock_headers_hash = stub({:value => "headers hash"})
|
142
|
+
@mock_http_response = stub("Faraday Response", :status => 200, :headers => @mock_headers_hash, :body => @mock_body)
|
143
|
+
|
144
|
+
@mock_connection = stub("Faraday connection")
|
145
|
+
@mock_connection.stub(:get).and_return(@mock_http_response)
|
146
|
+
@mock_connection.stub(:post).and_return(@mock_http_response)
|
147
|
+
Faraday.stub(:new).and_return(@mock_connection)
|
148
|
+
end
|
149
|
+
|
150
|
+
describe "creating the Faraday connection" do
|
151
|
+
it "creates a Faraday connection using the server" do
|
152
|
+
server = "foo"
|
153
|
+
Koala::HTTPService.stub(:server).and_return(server)
|
154
|
+
Faraday.should_receive(:new).with(server, anything).and_return(@mock_connection)
|
155
|
+
Koala::HTTPService.make_request("anything", {}, "anything")
|
156
|
+
end
|
157
|
+
|
158
|
+
it "merges Koala::HTTPService.faraday_options into the request params" do
|
159
|
+
http_options = {:a => 2, :c => "3"}
|
160
|
+
Koala::HTTPService.faraday_options = http_options
|
161
|
+
Faraday.should_receive(:new).with(anything, hash_including(http_options)).and_return(@mock_connection)
|
162
|
+
Koala::HTTPService.make_request("anything", {}, "get")
|
163
|
+
end
|
164
|
+
|
165
|
+
it "merges any provided options into the request params" do
|
166
|
+
options = {:a => 2, :c => "3"}
|
167
|
+
Faraday.should_receive(:new).with(anything, hash_including(options)).and_return(@mock_connection)
|
168
|
+
Koala::HTTPService.make_request("anything", {}, "get", options)
|
169
|
+
end
|
170
|
+
|
171
|
+
it "overrides Koala::HTTPService.faraday_options with any provided options for the request params" do
|
172
|
+
options = {:a => 2, :c => "3"}
|
173
|
+
http_options = {:a => :a}
|
174
|
+
Koala::HTTPService.stub(:faraday_options).and_return(http_options)
|
175
|
+
|
176
|
+
Faraday.should_receive(:new).with(anything, hash_including(http_options.merge(options))).and_return(@mock_connection)
|
177
|
+
Koala::HTTPService.make_request("anything", {}, "get", options)
|
178
|
+
end
|
179
|
+
|
180
|
+
it "forces use_ssl to true if an access token is present" do
|
181
|
+
options = {:use_ssl => false}
|
182
|
+
Koala::HTTPService.stub(:faraday_options).and_return(:use_ssl => false)
|
183
|
+
Faraday.should_receive(:new).with(anything, hash_including(:use_ssl => true)).and_return(@mock_connection)
|
184
|
+
Koala::HTTPService.make_request("anything", {"access_token" => "foo"}, "get", options)
|
185
|
+
end
|
186
|
+
|
187
|
+
it "calls server with the composite options" do
|
188
|
+
options = {:a => 2, :c => "3"}
|
189
|
+
http_options = {:a => :a}
|
190
|
+
Koala::HTTPService.stub(:faraday_options).and_return(http_options)
|
191
|
+
Koala::HTTPService.should_receive(:server).with(hash_including(http_options.merge(options))).and_return("foo")
|
192
|
+
Koala::HTTPService.make_request("anything", {}, "get", options)
|
193
|
+
end
|
194
|
+
|
195
|
+
it "uses the default builder block if HTTPService.faraday_middleware block is not defined" do
|
196
|
+
Koala::HTTPService.stub(:faraday_middleware).and_return(nil)
|
197
|
+
Faraday.should_receive(:new).with(anything, anything, &Koala::HTTPService::DEFAULT_MIDDLEWARE).and_return(@mock_connection)
|
198
|
+
Koala::HTTPService.make_request("anything", {}, "get")
|
199
|
+
end
|
200
|
+
|
201
|
+
it "uses the defined HTTPService.faraday_middleware block if defined" do
|
202
|
+
block = Proc.new { }
|
203
|
+
Koala::HTTPService.should_receive(:faraday_middleware).and_return(block)
|
204
|
+
Faraday.should_receive(:new).with(anything, anything, &block).and_return(@mock_connection)
|
205
|
+
Koala::HTTPService.make_request("anything", {}, "get")
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
it "makes a POST request if the verb isn't get" do
|
210
|
+
@mock_connection.should_receive(:post).and_return(@mock_http_response)
|
211
|
+
Koala::HTTPService.make_request("anything", {}, "anything")
|
212
|
+
end
|
213
|
+
|
214
|
+
it "includes the verb in the body if the verb isn't get" do
|
215
|
+
verb = "eat"
|
216
|
+
@mock_connection.should_receive(:post).with(anything, hash_including("method" => verb)).and_return(@mock_http_response)
|
217
|
+
Koala::HTTPService.make_request("anything", {}, verb)
|
218
|
+
end
|
219
|
+
|
220
|
+
it "makes a GET request if the verb is get" do
|
221
|
+
@mock_connection.should_receive(:get).and_return(@mock_http_response)
|
222
|
+
Koala::HTTPService.make_request("anything", {}, "get")
|
223
|
+
end
|
224
|
+
|
225
|
+
describe "for GETs" do
|
226
|
+
it "submits the arguments in the body" do
|
227
|
+
# technically this is done for all requests, but you don't send GET requests with files
|
228
|
+
args = {"a" => :b, "c" => 3}
|
229
|
+
Faraday.should_receive(:new).with(anything, hash_including(:params => args)).and_return(@mock_connection)
|
230
|
+
Koala::HTTPService.make_request("anything", args, "get")
|
231
|
+
end
|
232
|
+
|
233
|
+
it "submits nothing to the body" do
|
234
|
+
# technically this is done for all requests, but you don't send GET requests with files
|
235
|
+
args = {"a" => :b, "c" => 3}
|
236
|
+
@mock_connection.should_receive(:get).with(anything, {}).and_return(@mock_http_response)
|
237
|
+
Koala::HTTPService.make_request("anything", args, "get")
|
238
|
+
end
|
239
|
+
end
|
240
|
+
|
241
|
+
describe "for POSTs" do
|
242
|
+
it "submits the arguments in the body" do
|
243
|
+
# technically this is done for all requests, but you don't send GET requests with files
|
244
|
+
args = {"a" => :b, "c" => 3}
|
245
|
+
@mock_connection.should_receive(:post).with(anything, hash_including(args)).and_return(@mock_http_response)
|
246
|
+
Koala::HTTPService.make_request("anything", args, "post")
|
247
|
+
end
|
248
|
+
|
249
|
+
it "turns any UploadableIOs to UploadIOs" do
|
250
|
+
# technically this is done for all requests, but you don't send GET requests with files
|
251
|
+
upload_io = stub("UploadIO")
|
252
|
+
u = Koala::UploadableIO.new("/path/to/stuff", "img/jpg")
|
253
|
+
u.stub(:to_upload_io).and_return(upload_io)
|
254
|
+
@mock_connection.should_receive(:post).with(anything, hash_including("source" => upload_io)).and_return(@mock_http_response)
|
255
|
+
Koala::HTTPService.make_request("anything", {:source => u}, "post")
|
256
|
+
end
|
257
|
+
end
|
258
|
+
end
|
259
|
+
|
260
|
+
describe "deprecated options" do
|
261
|
+
before :each do
|
262
|
+
Koala::HTTPService.stub(:faraday_options).and_return({})
|
263
|
+
end
|
264
|
+
|
265
|
+
{
|
266
|
+
:timeout => :timeout,
|
267
|
+
:always_use_ssl => :use_ssl,
|
268
|
+
:proxy => :proxy
|
269
|
+
}.each_pair do |deprecated_method, parameter|
|
270
|
+
describe "##{deprecated_method}" do
|
271
|
+
context "read" do
|
272
|
+
it "reads faraday_options[:#{parameter}]" do
|
273
|
+
value = "foo"
|
274
|
+
Koala::HTTPService.faraday_options[parameter] = value
|
275
|
+
Koala::HTTPService.send(deprecated_method).should == value
|
276
|
+
end
|
277
|
+
|
278
|
+
it "generates a deprecation warning" do
|
279
|
+
Koala::Utils.should_receive(:deprecate)
|
280
|
+
Koala::HTTPService.send(deprecated_method)
|
281
|
+
end
|
282
|
+
end
|
283
|
+
|
284
|
+
context "write" do
|
285
|
+
it "writes to faraday_options[:#{parameter}]" do
|
286
|
+
Koala::HTTPService.faraday_options[parameter] = nil
|
287
|
+
value = "foo"
|
288
|
+
Koala::HTTPService.send(:"#{deprecated_method}=", value)
|
289
|
+
Koala::HTTPService.faraday_options[parameter].should == value
|
290
|
+
end
|
291
|
+
|
292
|
+
it "generates a deprecation warning" do
|
293
|
+
Koala::Utils.should_receive(:deprecate)
|
294
|
+
Koala::HTTPService.send(:"#{deprecated_method}=", 2)
|
295
|
+
end
|
296
|
+
end
|
297
|
+
end
|
298
|
+
end
|
299
|
+
|
300
|
+
# ssl options
|
301
|
+
[:ca_path, :ca_file, :verify_mode].each do |deprecated_method|
|
302
|
+
describe "##{deprecated_method}" do
|
303
|
+
context "read" do
|
304
|
+
it "reads faraday_options[:ssl][:#{deprecated_method}] if faraday_options[:ssl]" do
|
305
|
+
value = "foo"
|
306
|
+
Koala::HTTPService.faraday_options[:ssl] = {deprecated_method => value}
|
307
|
+
Koala::HTTPService.send(deprecated_method).should == value
|
308
|
+
end
|
309
|
+
|
310
|
+
it "returns nil if faraday_options[:ssl] is not defined" do
|
311
|
+
Koala::HTTPService.send(deprecated_method).should be_nil
|
312
|
+
end
|
313
|
+
|
314
|
+
it "generates a deprecation warning" do
|
315
|
+
Koala::Utils.should_receive(:deprecate)
|
316
|
+
Koala::HTTPService.send(deprecated_method)
|
317
|
+
end
|
318
|
+
end
|
319
|
+
|
320
|
+
context "write" do
|
321
|
+
it "defines faraday_options[:ssl] if not defined" do
|
322
|
+
Koala::HTTPService.faraday_options[:ssl] = nil
|
323
|
+
value = "foo"
|
324
|
+
Koala::HTTPService.send(:"#{deprecated_method}=", value)
|
325
|
+
Koala::HTTPService.faraday_options[:ssl].should
|
326
|
+
end
|
327
|
+
|
328
|
+
it "writes to faraday_options[:ssl][:#{deprecated_method}]" do
|
329
|
+
value = "foo"
|
330
|
+
Koala::HTTPService.send(:"#{deprecated_method}=", value)
|
331
|
+
Koala::HTTPService.faraday_options[:ssl].should
|
332
|
+
Koala::HTTPService.faraday_options[:ssl][deprecated_method].should == value
|
333
|
+
end
|
334
|
+
|
335
|
+
it "does not redefine faraday_options[:ssl] if already defined" do
|
336
|
+
hash = {:a => 2}
|
337
|
+
Koala::HTTPService.faraday_options[:ssl] = hash
|
338
|
+
Koala::HTTPService.send(:"#{deprecated_method}=", 3)
|
339
|
+
Koala::HTTPService.faraday_options[:ssl].should include(hash)
|
340
|
+
end
|
341
|
+
|
342
|
+
it "generates a deprecation warning" do
|
343
|
+
Koala::Utils.should_receive(:deprecate)
|
344
|
+
Koala::HTTPService.send(:"#{deprecated_method}=", 2)
|
345
|
+
end
|
346
|
+
end
|
347
|
+
end
|
348
|
+
end
|
349
|
+
|
350
|
+
describe "per-request options" do
|
351
|
+
before :each do
|
352
|
+
# Setup stubs for make_request to execute without exceptions
|
353
|
+
@mock_body = stub('Typhoeus response body')
|
354
|
+
@mock_headers_hash = stub({:value => "headers hash"})
|
355
|
+
@mock_http_response = stub("Faraday Response", :status => 200, :headers => @mock_headers_hash, :body => @mock_body)
|
356
|
+
|
357
|
+
@mock_connection = stub("Faraday connection")
|
358
|
+
@mock_connection.stub(:get).and_return(@mock_http_response)
|
359
|
+
@mock_connection.stub(:post).and_return(@mock_http_response)
|
360
|
+
Faraday.stub(:new).and_return(@mock_connection)
|
361
|
+
end
|
362
|
+
|
363
|
+
describe ":typhoeus_options" do
|
364
|
+
it "merges any typhoeus_options into options" do
|
365
|
+
typhoeus_options = {:a => 2}
|
366
|
+
Faraday.should_receive(:new).with(anything, hash_including(typhoeus_options)).and_return(@mock_connection)
|
367
|
+
Koala::HTTPService.make_request("anything", {}, "get", :typhoeus_options => typhoeus_options)
|
368
|
+
end
|
369
|
+
|
370
|
+
it "deletes the typhoeus_options key" do
|
371
|
+
typhoeus_options = {:a => 2}
|
372
|
+
Faraday.should_receive(:new).with(anything, hash_not_including(:typhoeus_options => typhoeus_options)).and_return(@mock_connection)
|
373
|
+
Koala::HTTPService.make_request("anything", {}, "get", :typhoeus_options => typhoeus_options)
|
374
|
+
end
|
375
|
+
end
|
376
|
+
|
377
|
+
describe ":ca_path" do
|
378
|
+
it "sets any ca_path into options[:ssl]" do
|
379
|
+
ca_path = :foo
|
380
|
+
Faraday.should_receive(:new).with(anything, hash_including(:ssl => hash_including(:ca_path => ca_path))).and_return(@mock_connection)
|
381
|
+
Koala::HTTPService.make_request("anything", {}, "get", :ca_path => ca_path)
|
382
|
+
end
|
383
|
+
|
384
|
+
it "deletes the ca_path key" do
|
385
|
+
ca_path = :foo
|
386
|
+
Faraday.should_receive(:new).with(anything, hash_not_including(:ca_path => ca_path)).and_return(@mock_connection)
|
387
|
+
Koala::HTTPService.make_request("anything", {}, "get", :ca_path => ca_path)
|
388
|
+
end
|
389
|
+
end
|
390
|
+
|
391
|
+
describe ":ca_file" do
|
392
|
+
it "sets any ca_file into options[:ssl]" do
|
393
|
+
ca_file = :foo
|
394
|
+
Faraday.should_receive(:new).with(anything, hash_including(:ssl => hash_including(:ca_file => ca_file))).and_return(@mock_connection)
|
395
|
+
Koala::HTTPService.make_request("anything", {}, "get", :ca_file => ca_file)
|
396
|
+
end
|
397
|
+
|
398
|
+
it "deletes the ca_file key" do
|
399
|
+
ca_file = :foo
|
400
|
+
Faraday.should_receive(:new).with(anything, hash_not_including(:ca_file => ca_file)).and_return(@mock_connection)
|
401
|
+
Koala::HTTPService.make_request("anything", {}, "get", :ca_file => ca_file)
|
402
|
+
end
|
403
|
+
end
|
404
|
+
|
405
|
+
describe ":verify_mode" do
|
406
|
+
it "sets any verify_mode into options[:ssl]" do
|
407
|
+
verify_mode = :foo
|
408
|
+
Faraday.should_receive(:new).with(anything, hash_including(:ssl => hash_including(:verify_mode => verify_mode))).and_return(@mock_connection)
|
409
|
+
Koala::HTTPService.make_request("anything", {}, "get", :verify_mode => verify_mode)
|
410
|
+
end
|
411
|
+
|
412
|
+
it "deletes the verify_mode key" do
|
413
|
+
verify_mode = :foo
|
414
|
+
Faraday.should_receive(:new).with(anything, hash_not_including(:verify_mode => verify_mode)).and_return(@mock_connection)
|
415
|
+
Koala::HTTPService.make_request("anything", {}, "get", :verify_mode => verify_mode)
|
416
|
+
end
|
417
|
+
end
|
418
|
+
end
|
419
|
+
end
|
420
|
+
end
|