koala 1.11.1 → 2.0.0rc1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 44887034b965ebbac49df6389117a3482918a215
4
- data.tar.gz: 0e49cb623168d97da705aed316df81eb7a1dfebf
3
+ metadata.gz: 01598f2db0d23da8cbd84470160a9cba1084716f
4
+ data.tar.gz: a6f806ca786838e52ed397491302183e9d9baf49
5
5
  SHA512:
6
- metadata.gz: 27f94913be28e196b58ff0934611007025f9374b0f08c3925dc6ce66670493f6dc06c7c6907c22b437765215435fd177b7f858c288466dfa1aa424eae3107344
7
- data.tar.gz: f58743aef73431532ca4a8e206ede00abaf43522b5c1e6638f4cd8e4d2a74277661ca1a20f2911fb3aac57309879c10be66561e5b5d30dbbdd5c07664da564f9
6
+ metadata.gz: b37d3eeff4c01d7258cbbe100d2a782c21b2e67a9f0e15d8d42beb896a5b20480757b8a8aab7527255180a635099ac84f7a96057f687d989c0f1103c1bfcb7f3
7
+ data.tar.gz: 57a67e64453cfb7b5778e5b87d1dfeebbcdb4f9dcad369e0c1a5d6e83915531feaa26e72a6eb3671becca3dbdd516cc94b0eec29d4b30455134098073d9e0e0a
data/changelog.md CHANGED
@@ -1,5 +1,24 @@
1
+ v2.0.0
2
+ ======
3
+
4
+ Koala 2.0 is not a major refactor, but rather a set of small, mostly internal
5
+ refactors:
6
+
7
+ * BatchAPI now reads both access token and app secret from the original API
8
+ instance (thanks, lukeasrodgers!)
9
+ * Remove legacy interfaces (deprecated since 1.2)
10
+ * API#search (which Facebook doesn't support anymore)
11
+ * TestUser#graph\_api and RealtimeUpdates#graph\_api (use #api instead)
12
+ * Various HTTP options (see diff for deprecation warnings/upgrade
13
+ instructions for each method)
14
+ * NetHTTPService and TyphoeusHTTPService (see diff for deprecation
15
+ warnings/upgrade instructions)
16
+ * OAuth methods for dealing with session tokens (which Facebook stopped
17
+ providing)
18
+ * OAuth#get\_user\_from\_cookies (use get\_user\_info\_from\_cookies instead)
19
+
1
20
  v.1.11.1
2
- =======
21
+ ========
3
22
 
4
23
  Bug fixes:
5
24
  * Properly import Facebook error attributes (thanks, isra17!)
@@ -14,7 +33,7 @@ Updated features:
14
33
 
15
34
  Bug fixes:
16
35
  * Fixed bug in GraphCollection URL versioning (thanks, deviousdodo and jankowy!)
17
- * TestUsers#create_network now properly handles options (thanks, crx!)
36
+ * TestUsers#create\_network now properly handles options (thanks, crx!)
18
37
 
19
38
  Documentation improvements:
20
39
  * Updated gem version (thanks, thomasklemm!)
data/lib/koala.rb CHANGED
@@ -53,18 +53,10 @@ module Koala
53
53
  end
54
54
 
55
55
  # @private
56
- # For current HTTPServices, switch the service as expected.
57
- # For deprecated services (Typhoeus and Net::HTTP), print a warning and set the default Faraday adapter appropriately.
56
+ # Switch the HTTP service -- mostly used for testing.
58
57
  def self.http_service=(service)
59
- if service.respond_to?(:deprecated_interface)
60
- # if this is a deprecated module, support the old interface
61
- # by changing the default adapter so the right library is used
62
- # we continue to use the single HTTPService module for everything
63
- service.deprecated_interface
64
- else
65
- # if it's a real http_service, use it
66
- @http_service = service
67
- end
58
+ # if it's a real http_service, use it
59
+ @http_service = service
68
60
  end
69
61
 
70
62
  # An convenenient alias to Koala.http_service.make_request.
data/lib/koala/api.rb CHANGED
@@ -109,6 +109,4 @@ module Koala
109
109
  end
110
110
  end
111
111
 
112
- require 'koala/api/graph_batch_api'
113
- # legacy support for old pre-1.2 API interfaces
114
- require 'koala/api/legacy'
112
+ require 'koala/api/graph_batch_api'
@@ -300,20 +300,6 @@ module Koala
300
300
  graph_call("#{id}/likes", {}, "delete", options, &block)
301
301
  end
302
302
 
303
- # Search for a given query among visible Facebook objects.
304
- # See {http://developers.facebook.com/docs/reference/api/#searching Facebook documentation} for more information.
305
- #
306
- # @param search_terms the query to search for
307
- # @param args additional arguments, such as type, fields, etc.
308
- # @param options (see #get_object)
309
- # @param block (see Koala::Facebook::API#api)
310
- #
311
- # @return [Koala::Facebook::API::GraphCollection] an array of search results
312
- def search(search_terms, args = {}, options = {}, &block)
313
- args.merge!({:q => search_terms}) unless search_terms.nil?
314
- graph_call("search", args, "get", options, &block)
315
- end
316
-
317
303
  # Convenience Methods
318
304
  # In general, we're trying to avoid adding convenience methods to Koala
319
305
  # except to support cases where the Facebook API requires non-standard input
@@ -469,7 +455,7 @@ module Koala
469
455
  # @return an array of results from your batch calls (as if you'd made them individually),
470
456
  # arranged in the same order they're made.
471
457
  def batch(http_options = {}, &block)
472
- batch_client = GraphBatchAPI.new(access_token, self)
458
+ batch_client = GraphBatchAPI.new(self)
473
459
  if block
474
460
  yield batch_client
475
461
  batch_client.execute(http_options)
@@ -9,8 +9,8 @@ module Koala
9
9
  include GraphAPIMethods
10
10
 
11
11
  attr_reader :original_api
12
- def initialize(access_token, api)
13
- super(access_token)
12
+ def initialize(api)
13
+ super(api.access_token, api.app_secret)
14
14
  @original_api = api
15
15
  end
16
16
 
@@ -81,7 +81,7 @@ module Koala
81
81
  params = args.inject({}) {|hash, kv| hash[kv.first.to_s] = kv.last.is_a?(UploadableIO) ? kv.last.to_upload_io : kv.last; hash}
82
82
 
83
83
  # figure out our options for this request
84
- request_options = {:params => (verb == "get" ? params : {})}.merge(http_options || {}).merge(process_options(options))
84
+ request_options = {:params => (verb == "get" ? params : {})}.merge(http_options || {}).merge(options)
85
85
  request_options[:use_ssl] = true if args["access_token"] # require https if there's a token
86
86
  if request_options[:use_ssl]
87
87
  ssl = (request_options[:ssl] ||= {})
@@ -135,128 +135,11 @@ module Koala
135
135
  !!(match && match[1])
136
136
  end
137
137
 
138
- # deprecations
139
- # not elegant or compact code, but temporary
140
-
141
- # @private
142
- def self.always_use_ssl
143
- Koala::Utils.deprecate("HTTPService.always_use_ssl is now HTTPService.http_options[:use_ssl]; always_use_ssl will be removed in a future version.")
144
- http_options[:use_ssl]
145
- end
146
-
147
- # @private
148
- def self.always_use_ssl=(value)
149
- Koala::Utils.deprecate("HTTPService.always_use_ssl is now HTTPService.http_options[:use_ssl]; always_use_ssl will be removed in a future version.")
150
- http_options[:use_ssl] = value
151
- end
152
-
153
- # @private
154
- def self.timeout
155
- Koala::Utils.deprecate("HTTPService.timeout is now HTTPService.http_options[:timeout]; .timeout will be removed in a future version.")
156
- http_options[:timeout]
157
- end
158
-
159
- # @private
160
- def self.timeout=(value)
161
- Koala::Utils.deprecate("HTTPService.timeout is now HTTPService.http_options[:timeout]; .timeout will be removed in a future version.")
162
- http_options[:timeout] = value
163
- end
164
-
165
- # @private
166
- def self.proxy
167
- Koala::Utils.deprecate("HTTPService.proxy is now HTTPService.http_options[:proxy]; .proxy will be removed in a future version.")
168
- http_options[:proxy]
169
- end
170
-
171
- # @private
172
- def self.proxy=(value)
173
- Koala::Utils.deprecate("HTTPService.proxy is now HTTPService.http_options[:proxy]; .proxy will be removed in a future version.")
174
- http_options[:proxy] = value
175
- end
176
-
177
- # @private
178
- def self.ca_path
179
- Koala::Utils.deprecate("HTTPService.ca_path is now (HTTPService.http_options[:ssl] ||= {})[:ca_path]; .ca_path will be removed in a future version.")
180
- (http_options[:ssl] || {})[:ca_path]
181
- end
182
-
183
- # @private
184
- def self.ca_path=(value)
185
- Koala::Utils.deprecate("HTTPService.ca_path is now (HTTPService.http_options[:ssl] ||= {})[:ca_path]; .ca_path will be removed in a future version.")
186
- (http_options[:ssl] ||= {})[:ca_path] = value
187
- end
188
-
189
- # @private
190
- def self.ca_file
191
- Koala::Utils.deprecate("HTTPService.ca_file is now (HTTPService.http_options[:ssl] ||= {})[:ca_file]; .ca_file will be removed in a future version.")
192
- (http_options[:ssl] || {})[:ca_file]
193
- end
194
-
195
- # @private
196
- def self.ca_file=(value)
197
- Koala::Utils.deprecate("HTTPService.ca_file is now (HTTPService.http_options[:ssl] ||= {})[:ca_file]; .ca_file will be removed in a future version.")
198
- (http_options[:ssl] ||= {})[:ca_file] = value
199
- end
200
-
201
- # @private
202
- def self.verify_mode
203
- Koala::Utils.deprecate("HTTPService.verify_mode is now (HTTPService.http_options[:ssl] ||= {})[:verify_mode]; .verify_mode will be removed in a future version.")
204
- (http_options[:ssl] || {})[:verify_mode]
205
- end
206
-
207
- # @private
208
- def self.verify_mode=(value)
209
- Koala::Utils.deprecate("HTTPService.verify_mode is now (HTTPService.http_options[:ssl] ||= {})[:verify_mode]; .verify_mode will be removed in a future version.")
210
- (http_options[:ssl] ||= {})[:verify_mode] = value
211
- end
212
-
213
138
  private
214
139
 
215
- def self.process_options(options)
216
- if typhoeus_options = options.delete(:typhoeus_options)
217
- Koala::Utils.deprecate("typhoeus_options should now be included directly in the http_options hash. Support for this key will be removed in a future version.")
218
- options = options.merge(typhoeus_options)
219
- end
220
-
221
- if ca_file = options.delete(:ca_file)
222
- Koala::Utils.deprecate("http_options[:ca_file] should now be passed inside (http_options[:ssl] = {}) -- that is, http_options[:ssl][:ca_file]. Support for this key will be removed in a future version.")
223
- (options[:ssl] ||= {})[:ca_file] = ca_file
224
- end
225
-
226
- if ca_path = options.delete(:ca_path)
227
- Koala::Utils.deprecate("http_options[:ca_path] should now be passed inside (http_options[:ssl] = {}) -- that is, http_options[:ssl][:ca_path]. Support for this key will be removed in a future version.")
228
- (options[:ssl] ||= {})[:ca_path] = ca_path
229
- end
230
-
231
- if verify_mode = options.delete(:verify_mode)
232
- Koala::Utils.deprecate("http_options[:verify_mode] should now be passed inside (http_options[:ssl] = {}) -- that is, http_options[:ssl][:verify_mode]. Support for this key will be removed in a future version.")
233
- (options[:ssl] ||= {})[:verify_mode] = verify_mode
234
- end
235
-
236
- options
237
- end
238
-
239
140
  def self.faraday_options(options)
240
141
  valid_options = [:request, :proxy, :ssl, :builder, :url, :parallel_manager, :params, :headers, :builder_class]
241
142
  Hash[ options.select { |key,value| valid_options.include?(key) } ]
242
143
  end
243
144
  end
244
-
245
- # @private
246
- module TyphoeusService
247
- def self.deprecated_interface
248
- # support old-style interface with a warning
249
- Koala::Utils.deprecate("the TyphoeusService module is deprecated; to use Typhoeus, set Faraday.default_adapter = :typhoeus. Enabling Typhoeus for all Faraday connections.")
250
- Faraday.default_adapter = :typhoeus
251
- end
252
- end
253
-
254
- # @private
255
- module NetHTTPService
256
- def self.deprecated_interface
257
- # support old-style interface with a warning
258
- Koala::Utils.deprecate("the NetHTTPService module is deprecated; to use Net::HTTP, set Faraday.default_adapter = :net_http. Enabling Net::HTTP for all Faraday connections.")
259
- Faraday.default_adapter = :net_http
260
- end
261
- end
262
145
  end
data/lib/koala/oauth.rb CHANGED
@@ -40,26 +40,6 @@ module Koala
40
40
  end
41
41
  alias_method :get_user_info_from_cookie, :get_user_info_from_cookies
42
42
 
43
- # Parses the cookie set Facebook's JavaScript SDK and returns only the user ID.
44
- #
45
- # @note (see #get_user_info_from_cookie)
46
- #
47
- # @param (see #get_user_info_from_cookie)
48
- #
49
- # @return the authenticated user's Facebook ID, or nil.
50
- def get_user_from_cookies(cookies)
51
- Koala::Utils.deprecate("Due to Facebook changes, you can only redeem an OAuth code once; it is therefore recommended not to use this method, as it will consume the code without providing you the access token. See https://developers.facebook.com/roadmap/completed-changes/#december-2012.")
52
- if signed_cookie = cookies["fbsr_#{@app_id}"]
53
- if components = parse_signed_request(signed_cookie)
54
- components["user_id"]
55
- end
56
- elsif info = get_user_info_from_cookies(cookies)
57
- # Parsing unsigned cookie
58
- info["uid"]
59
- end
60
- end
61
- alias_method :get_user_from_cookie, :get_user_from_cookies
62
-
63
43
  # URLs
64
44
 
65
45
  # Builds an OAuth URL, where users will be prompted to log in and for any desired permissions.
@@ -180,7 +160,6 @@ module Koala
180
160
  get_token_from_server({:code => code, :redirect_uri => options[:redirect_uri] || @oauth_callback_url}, false, options)
181
161
  end
182
162
 
183
-
184
163
  # Fetches the access token (ignoring expiration and other info) from Facebook.
185
164
  # Useful when you've received an OAuth code using the server-side authentication process.
186
165
  # @see get_access_token_info
@@ -272,41 +251,6 @@ module Koala
272
251
  envelope
273
252
  end
274
253
 
275
- # Old session key code
276
-
277
- # @deprecated Facebook no longer provides session keys.
278
- def get_token_info_from_session_keys(sessions, options = {})
279
- Koala::Utils.deprecate("Facebook no longer provides session keys. The relevant OAuth methods will be removed in the next release.")
280
-
281
- # fetch the OAuth tokens from Facebook
282
- response = fetch_token_string({
283
- :type => 'client_cred',
284
- :sessions => sessions.join(",")
285
- }, true, "exchange_sessions", options)
286
-
287
- # Facebook returns an empty body in certain error conditions
288
- if response == ""
289
- raise BadFacebookResponse.new(200, '', "get_token_from_session_key received an error (empty response body) for sessions #{sessions.inspect}!")
290
- end
291
-
292
- MultiJson.load(response)
293
- end
294
-
295
- # @deprecated (see #get_token_info_from_session_keys)
296
- def get_tokens_from_session_keys(sessions, options = {})
297
- # get the original hash results
298
- results = get_token_info_from_session_keys(sessions, options)
299
- # now recollect them as just the access tokens
300
- results.collect { |r| r ? r["access_token"] : nil }
301
- end
302
-
303
- # @deprecated (see #get_token_info_from_session_keys)
304
- def get_token_from_session_key(session, options = {})
305
- # convenience method for a single key
306
- # gets the overlaoded strings automatically
307
- get_tokens_from_session_keys([session], options)[0]
308
- end
309
-
310
254
  protected
311
255
 
312
256
  def get_token_from_server(args, post = false, options = {})
@@ -141,12 +141,6 @@ module Koala
141
141
  def subscription_path
142
142
  @subscription_path ||= "#{@app_id}/subscriptions"
143
143
  end
144
-
145
- # @private
146
- def graph_api
147
- Koala::Utils.deprecate("the TestUsers.graph_api accessor is deprecated and will be removed in a future version; please use .api instead.")
148
- @api
149
- end
150
144
  end
151
145
  end
152
146
  end
@@ -183,13 +183,6 @@ module Koala
183
183
  def test_user_accounts_path
184
184
  @test_user_accounts_path ||= "/#{@app_id}/accounts/test-users"
185
185
  end
186
-
187
- # @private
188
- # Legacy accessor for before GraphAPI was unified into API
189
- def graph_api
190
- Koala::Utils.deprecate("the TestUsers.graph_api accessor is deprecated and will be removed in a future version; please use .api instead.")
191
- @api
192
- end
193
186
  end # TestUserMethods
194
187
  end # Facebook
195
188
  end # Koala
data/lib/koala/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Koala
2
- VERSION = "1.11.1"
2
+ VERSION = "2.0.0rc1"
3
3
  end
data/readme.md CHANGED
@@ -65,7 +65,7 @@ Koala.config.api_version = "v2.0"
65
65
 
66
66
  The response of most requests is the JSON data returned from the Facebook servers as a Hash.
67
67
 
68
- When retrieving data that returns an array of results (for example, when calling `API#get_connections` or `API#search`)
68
+ When retrieving data that returns an array of results (for example, when calling `API#get_connections`)
69
69
  a GraphCollection object will be returned, which makes it easy to page through the results:
70
70
 
71
71
  ```ruby
@@ -56,7 +56,7 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
56
56
  @uploadable_io = double("UploadableIO 1")
57
57
 
58
58
  @batch_queue = []
59
- allow(Koala::Facebook::GraphAPI).to receive(:batch_calls).and_return(@batch_queue)
59
+ allow(Koala::Facebook::API).to receive(:batch_calls).and_return(@batch_queue)
60
60
 
61
61
  allow(Koala::UploadableIO).to receive(:new).with(@binary).and_return(@uploadable_io)
62
62
  allow(Koala::UploadableIO).to receive(:binary_content?).and_return(false)
@@ -245,7 +245,7 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
245
245
  allow(@uploadable_io).to receive(:is_a?).with(Koala::UploadableIO).and_return(true)
246
246
 
247
247
  @batch_queue = []
248
- allow(Koala::Facebook::GraphAPI).to receive(:batch_calls).and_return(@batch_queue)
248
+ allow(Koala::Facebook::API).to receive(:batch_calls).and_return(@batch_queue)
249
249
 
250
250
  @args[:method] = "post" # files are always post
251
251
  end
@@ -297,6 +297,19 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
297
297
  end
298
298
  end
299
299
 
300
+ context 'with appsecret_proof and app_secret' do
301
+ it "includes the app_secret in the API call" do
302
+ access_token = "foo"
303
+ app_secret = "baz"
304
+ app_secret_digest = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new("sha256"), app_secret, access_token)
305
+ expect(Koala).to receive(:make_request).with(anything, hash_including("access_token" => access_token, "appsecret_proof" => app_secret_digest), anything, anything).and_return(@fake_response)
306
+ Koala::Facebook::API.new(access_token, app_secret).batch do |batch_api|
307
+ batch_api.get_object('me')
308
+ batch_api.get_object('me', {}, {'access_token' => 'bar'})
309
+ end
310
+ end
311
+ end
312
+
300
313
  it "sets args['batch'] to a json'd map of all the batch params" do
301
314
  access_token = "bar"
302
315
  op = Koala::Facebook::GraphBatchAPI::BatchOperation.new(:access_token => access_token, :method => :get, :url => "/")
@@ -401,170 +401,4 @@ describe Koala::HTTPService do
401
401
  expect(Koala::HTTPService.path_contains_api_version?('/anything')).to be false
402
402
  end
403
403
  end
404
-
405
- describe "deprecated options" do
406
- before :each do
407
- allow(Koala::HTTPService).to receive(:http_options).and_return({})
408
- @service = Koala.http_service
409
- end
410
-
411
- after :each do
412
- Koala.http_service = @service
413
- end
414
-
415
- {
416
- :timeout => :timeout,
417
- :always_use_ssl => :use_ssl,
418
- :proxy => :proxy
419
- }.each_pair do |deprecated_method, parameter|
420
- describe ".#{deprecated_method}" do
421
- context "read" do
422
- it "reads http_options[:#{parameter}]" do
423
- value = "foo"
424
- Koala::HTTPService.http_options[parameter] = value
425
- expect(Koala::HTTPService.send(deprecated_method)).to eq(value)
426
- end
427
-
428
- it "generates a deprecation warning" do
429
- expect(Koala::Utils).to receive(:deprecate)
430
- Koala::HTTPService.send(deprecated_method)
431
- end
432
- end
433
-
434
- context "write" do
435
- it "writes to http_options[:#{parameter}]" do
436
- Koala::HTTPService.http_options[parameter] = nil
437
- value = "foo"
438
- Koala::HTTPService.send(:"#{deprecated_method}=", value)
439
- expect(Koala::HTTPService.http_options[parameter]).to eq(value)
440
- end
441
-
442
- it "generates a deprecation warning" do
443
- expect(Koala::Utils).to receive(:deprecate)
444
- Koala::HTTPService.send(:"#{deprecated_method}=", 2)
445
- end
446
- end
447
- end
448
- end
449
-
450
- # ssl options
451
- [:ca_path, :ca_file, :verify_mode].each do |deprecated_method|
452
- describe ".#{deprecated_method}" do
453
- context "read" do
454
- it "reads http_options[:ssl][:#{deprecated_method}] if http_options[:ssl]" do
455
- value = "foo"
456
- Koala::HTTPService.http_options[:ssl] = {deprecated_method => value}
457
- expect(Koala::HTTPService.send(deprecated_method)).to eq(value)
458
- end
459
-
460
- it "returns nil if http_options[:ssl] is not defined" do
461
- expect(Koala::HTTPService.send(deprecated_method)).to be_nil
462
- end
463
-
464
- it "generates a deprecation warning" do
465
- expect(Koala::Utils).to receive(:deprecate)
466
- Koala::HTTPService.send(deprecated_method)
467
- end
468
- end
469
-
470
- context "write" do
471
- it "defines http_options[:ssl] if not defined" do
472
- Koala::HTTPService.http_options[:ssl] = nil
473
- value = "foo"
474
- Koala::HTTPService.send(:"#{deprecated_method}=", value)
475
- expect(Koala::HTTPService.http_options[:ssl]).to be_a(Hash)
476
- end
477
-
478
- it "writes to http_options[:ssl][:#{deprecated_method}]" do
479
- value = "foo"
480
- Koala::HTTPService.send(:"#{deprecated_method}=", value)
481
- expect(Koala::HTTPService.http_options[:ssl]).to be_a(Hash)
482
- expect(Koala::HTTPService.http_options[:ssl][deprecated_method]).to eq(value)
483
- end
484
-
485
- it "does not redefine http_options[:ssl] if already defined" do
486
- hash = {:a => 2}
487
- Koala::HTTPService.http_options[:ssl] = hash
488
- Koala::HTTPService.send(:"#{deprecated_method}=", 3)
489
- expect(Koala::HTTPService.http_options[:ssl]).to include(hash)
490
- end
491
-
492
- it "generates a deprecation warning" do
493
- expect(Koala::Utils).to receive(:deprecate)
494
- Koala::HTTPService.send(:"#{deprecated_method}=", 2)
495
- end
496
- end
497
- end
498
- end
499
-
500
- describe "per-request options" do
501
- before :each do
502
- # Setup stubs for make_request to execute without exceptions
503
- @mock_body = double('Typhoeus response body')
504
- @mock_headers_hash = double({:value => "headers hash"})
505
- @mock_http_response = double("Faraday Response", :status => 200, :headers => @mock_headers_hash, :body => @mock_body)
506
-
507
- @mock_connection = double("Faraday connection")
508
- allow(@mock_connection).to receive(:get).and_return(@mock_http_response)
509
- allow(@mock_connection).to receive(:post).and_return(@mock_http_response)
510
- allow(Faraday).to receive(:new).and_return(@mock_connection)
511
- end
512
-
513
- describe ":typhoeus_options" do
514
- it "merges any typhoeus_options into options" do
515
- typhoeus_options = {:proxy => "http://user:password@example.org/" }
516
- expect(Faraday).to receive(:new).with(anything, hash_including(typhoeus_options)).and_return(@mock_connection)
517
- Koala::HTTPService.make_request("anything", {}, "get", :typhoeus_options => typhoeus_options)
518
- end
519
-
520
- it "deletes the typhoeus_options key" do
521
- typhoeus_options = {:proxy => "http://user:password@example.org/" }
522
- expect(Faraday).to receive(:new).with(anything, hash_not_including(:typhoeus_options => typhoeus_options)).and_return(@mock_connection)
523
- Koala::HTTPService.make_request("anything", {}, "get", :typhoeus_options => typhoeus_options)
524
- end
525
- end
526
-
527
- describe ":ca_path" do
528
- it "sets any ca_path into options[:ssl]" do
529
- ca_path = :foo
530
- expect(Faraday).to receive(:new).with(anything, hash_including(:ssl => hash_including(:ca_path => ca_path))).and_return(@mock_connection)
531
- Koala::HTTPService.make_request("anything", {}, "get", :ca_path => ca_path)
532
- end
533
-
534
- it "deletes the ca_path key" do
535
- ca_path = :foo
536
- expect(Faraday).to receive(:new).with(anything, hash_not_including(:ca_path => ca_path)).and_return(@mock_connection)
537
- Koala::HTTPService.make_request("anything", {}, "get", :ca_path => ca_path)
538
- end
539
- end
540
-
541
- describe ":ca_file" do
542
- it "sets any ca_file into options[:ssl]" do
543
- ca_file = :foo
544
- expect(Faraday).to receive(:new).with(anything, hash_including(:ssl => hash_including(:ca_file => ca_file))).and_return(@mock_connection)
545
- Koala::HTTPService.make_request("anything", {}, "get", :ca_file => ca_file)
546
- end
547
-
548
- it "deletes the ca_file key" do
549
- ca_file = :foo
550
- expect(Faraday).to receive(:new).with(anything, hash_not_including(:ca_file => ca_file)).and_return(@mock_connection)
551
- Koala::HTTPService.make_request("anything", {}, "get", :ca_file => ca_file)
552
- end
553
- end
554
-
555
- describe ":verify_mode" do
556
- it "sets any verify_mode into options[:ssl]" do
557
- verify_mode = :foo
558
- expect(Faraday).to receive(:new).with(anything, hash_including(:ssl => hash_including(:verify_mode => verify_mode))).and_return(@mock_connection)
559
- Koala::HTTPService.make_request("anything", {}, "get", :verify_mode => verify_mode)
560
- end
561
-
562
- it "deletes the verify_mode key" do
563
- verify_mode = :foo
564
- expect(Faraday).to receive(:new).with(anything, hash_not_including(:verify_mode => verify_mode)).and_return(@mock_connection)
565
- Koala::HTTPService.make_request("anything", {}, "get", :verify_mode => verify_mode)
566
- end
567
- end
568
- end
569
- end
570
404
  end