omniauth-oauthio 0.1.0

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/test/test.rb ADDED
@@ -0,0 +1,541 @@
1
+ #require 'helper'
2
+ #require 'omniauth-facebook'
3
+ #require 'openssl'
4
+ #require 'base64'
5
+ #
6
+ #class StrategyTest < StrategyTestCase
7
+ # include OauthioStrategyTests
8
+ #end
9
+ #
10
+ #class ClientTest < StrategyTestCase
11
+ # test 'has correct Facebook site' do
12
+ # assert_equal 'https://graph.facebook.com', strategy.client.site
13
+ # end
14
+ #
15
+ # test 'has correct authorize url' do
16
+ # assert_equal 'https://www.facebook.com/dialog/oauth', strategy.client.options[:authorize_url]
17
+ # end
18
+ #
19
+ # test 'has correct token url' do
20
+ # assert_equal '/oauth/access_token', strategy.client.options[:token_url]
21
+ # end
22
+ #end
23
+ #
24
+ #class CallbackUrlTest < StrategyTestCase
25
+ # test "returns the default callback url" do
26
+ # url_base = 'http://auth.request.com'
27
+ # @request.stubs(:url).returns("#{url_base}/some/page")
28
+ # strategy.stubs(:script_name).returns('') # as not to depend on Rack env
29
+ # assert_equal "#{url_base}/auth/facebook/callback", strategy.callback_url
30
+ # end
31
+ #
32
+ # test "returns path from callback_path option" do
33
+ # @options = { :callback_path => "/auth/FB/done"}
34
+ # url_base = 'http://auth.request.com'
35
+ # @request.stubs(:url).returns("#{url_base}/page/path")
36
+ # strategy.stubs(:script_name).returns('') # as not to depend on Rack env
37
+ # assert_equal "#{url_base}/auth/FB/done", strategy.callback_url
38
+ # end
39
+ #
40
+ # test "returns url from callback_url option" do
41
+ # url = 'https://auth.myapp.com/auth/fb/callback'
42
+ # @options = { :callback_url => url }
43
+ # assert_equal url, strategy.callback_url
44
+ # end
45
+ #end
46
+ #
47
+ #class AuthorizeParamsTest < StrategyTestCase
48
+ # test 'includes default scope for email' do
49
+ # assert strategy.authorize_params.is_a?(Hash)
50
+ # assert_equal 'email', strategy.authorize_params[:scope]
51
+ # end
52
+ #
53
+ # test 'includes display parameter from request when present' do
54
+ # @request.stubs(:params).returns({ 'display' => 'touch' })
55
+ # assert strategy.authorize_params.is_a?(Hash)
56
+ # assert_equal 'touch', strategy.authorize_params[:display]
57
+ # end
58
+ #
59
+ # test 'includes auth_type parameter from request when present' do
60
+ # @request.stubs(:params).returns({ 'auth_type' => 'reauthenticate' })
61
+ # assert strategy.authorize_params.is_a?(Hash)
62
+ # assert_equal 'reauthenticate', strategy.authorize_params[:auth_type]
63
+ # end
64
+ #
65
+ # test 'overrides default scope with parameter passed from request' do
66
+ # @request.stubs(:params).returns({ 'scope' => 'email' })
67
+ # assert strategy.authorize_params.is_a?(Hash)
68
+ # assert_equal 'email', strategy.authorize_params[:scope]
69
+ # end
70
+ #end
71
+ #
72
+ #class TokeParamsTest < StrategyTestCase
73
+ # test 'has correct parse strategy' do
74
+ # assert_equal :query, strategy.token_params[:parse]
75
+ # end
76
+ #end
77
+ #
78
+ #class AccessTokenOptionsTest < StrategyTestCase
79
+ # test 'has correct param name by default' do
80
+ # assert_equal 'access_token', strategy.access_token_options[:param_name]
81
+ # end
82
+ #
83
+ # test 'has correct header format by default' do
84
+ # assert_equal 'OAuth %s', strategy.access_token_options[:header_format]
85
+ # end
86
+ #end
87
+ #
88
+ #class UidTest < StrategyTestCase
89
+ # def setup
90
+ # super
91
+ # strategy.stubs(:raw_info).returns({ 'id' => '123' })
92
+ # end
93
+ #
94
+ # test 'returns the id from raw_info' do
95
+ # assert_equal '123', strategy.uid
96
+ # end
97
+ #end
98
+ #
99
+ #class InfoTest < StrategyTestCase
100
+ # test 'returns the secure facebook avatar url when `secure_image_url` option is specified' do
101
+ # @options = { :secure_image_url => true }
102
+ # raw_info = { 'name' => 'Fred Smith', 'id' => '321' }
103
+ # strategy.stubs(:raw_info).returns(raw_info)
104
+ # assert_equal 'https://graph.facebook.com/321/picture', strategy.info['image']
105
+ # end
106
+ #
107
+ # test 'returns the image with size specified in the `image_size` option' do
108
+ # @options = { :image_size => 'normal' }
109
+ # raw_info = { 'name' => 'Fred Smith', 'id' => '321' }
110
+ # strategy.stubs(:raw_info).returns(raw_info)
111
+ # assert_equal 'http://graph.facebook.com/321/picture?type=normal', strategy.info['image']
112
+ # end
113
+ #
114
+ # test 'returns the image with width and height specified in the `image_size` option' do
115
+ # @options = { :image_size => { :width => 123, :height => 987 } }
116
+ # raw_info = { 'name' => 'Fred Smith', 'id' => '321' }
117
+ # strategy.stubs(:raw_info).returns(raw_info)
118
+ # assert_match 'width=123', strategy.info['image']
119
+ # assert_match 'height=987', strategy.info['image']
120
+ # assert_match 'http://graph.facebook.com/321/picture?', strategy.info['image']
121
+ # end
122
+ #end
123
+ #
124
+ #class InfoTestOptionalDataPresent < StrategyTestCase
125
+ # def setup
126
+ # super
127
+ # @raw_info ||= { 'name' => 'Fred Smith' }
128
+ # strategy.stubs(:raw_info).returns(@raw_info)
129
+ # end
130
+ #
131
+ # test 'returns the name' do
132
+ # assert_equal 'Fred Smith', strategy.info['name']
133
+ # end
134
+ #
135
+ # test 'returns the email' do
136
+ # @raw_info['email'] = 'fred@smith.com'
137
+ # assert_equal 'fred@smith.com', strategy.info['email']
138
+ # end
139
+ #
140
+ # test 'returns the username as nickname' do
141
+ # @raw_info['username'] = 'fredsmith'
142
+ # assert_equal 'fredsmith', strategy.info['nickname']
143
+ # end
144
+ #
145
+ # test 'returns the first name' do
146
+ # @raw_info['first_name'] = 'Fred'
147
+ # assert_equal 'Fred', strategy.info['first_name']
148
+ # end
149
+ #
150
+ # test 'returns the last name' do
151
+ # @raw_info['last_name'] = 'Smith'
152
+ # assert_equal 'Smith', strategy.info['last_name']
153
+ # end
154
+ #
155
+ # test 'returns the location name as location' do
156
+ # @raw_info['location'] = { 'id' => '104022926303756', 'name' => 'Palo Alto, California' }
157
+ # assert_equal 'Palo Alto, California', strategy.info['location']
158
+ # end
159
+ #
160
+ # test 'returns bio as description' do
161
+ # @raw_info['bio'] = 'I am great'
162
+ # assert_equal 'I am great', strategy.info['description']
163
+ # end
164
+ #
165
+ # test 'returns the facebook avatar url' do
166
+ # @raw_info['id'] = '321'
167
+ # assert_equal 'http://graph.facebook.com/321/picture', strategy.info['image']
168
+ # end
169
+ #
170
+ # test 'returns the Facebook link as the Facebook url' do
171
+ # @raw_info['link'] = 'http://www.facebook.com/fredsmith'
172
+ # assert_kind_of Hash, strategy.info['urls']
173
+ # assert_equal 'http://www.facebook.com/fredsmith', strategy.info['urls']['Facebook']
174
+ # end
175
+ #
176
+ # test 'returns website url' do
177
+ # @raw_info['website'] = 'https://my-wonderful-site.com'
178
+ # assert_kind_of Hash, strategy.info['urls']
179
+ # assert_equal 'https://my-wonderful-site.com', strategy.info['urls']['Website']
180
+ # end
181
+ #
182
+ # test 'return both Facebook link and website urls' do
183
+ # @raw_info['link'] = 'http://www.facebook.com/fredsmith'
184
+ # @raw_info['website'] = 'https://my-wonderful-site.com'
185
+ # assert_kind_of Hash, strategy.info['urls']
186
+ # assert_equal 'http://www.facebook.com/fredsmith', strategy.info['urls']['Facebook']
187
+ # assert_equal 'https://my-wonderful-site.com', strategy.info['urls']['Website']
188
+ # end
189
+ #
190
+ # test 'returns the positive verified status' do
191
+ # @raw_info['verified'] = true
192
+ # assert strategy.info['verified']
193
+ # end
194
+ #
195
+ # test 'returns the negative verified status' do
196
+ # @raw_info['verified'] = false
197
+ # refute strategy.info['verified']
198
+ # end
199
+ #end
200
+ #
201
+ #class InfoTestOptionalDataNotPresent < StrategyTestCase
202
+ # def setup
203
+ # super
204
+ # @raw_info ||= { 'name' => 'Fred Smith' }
205
+ # strategy.stubs(:raw_info).returns(@raw_info)
206
+ # end
207
+ #
208
+ # test 'has no email key' do
209
+ # refute_has_key 'email', strategy.info
210
+ # end
211
+ #
212
+ # test 'has no nickname key' do
213
+ # refute_has_key 'nickname', strategy.info
214
+ # end
215
+ #
216
+ # test 'has no first name key' do
217
+ # refute_has_key 'first_name', strategy.info
218
+ # end
219
+ #
220
+ # test 'has no last name key' do
221
+ # refute_has_key 'last_name', strategy.info
222
+ # end
223
+ #
224
+ # test 'has no location key' do
225
+ # refute_has_key 'location', strategy.info
226
+ # end
227
+ #
228
+ # test 'has no description key' do
229
+ # refute_has_key 'description', strategy.info
230
+ # end
231
+ #
232
+ # test 'has no urls' do
233
+ # refute_has_key 'urls', strategy.info
234
+ # end
235
+ #
236
+ # test 'has no verified key' do
237
+ # refute_has_key 'verified', strategy.info
238
+ # end
239
+ #end
240
+ #
241
+ #class RawInfoTest < StrategyTestCase
242
+ # def setup
243
+ # super
244
+ # @access_token = stub('Oauthio::AccessToken')
245
+ # @appsecret_proof = 'appsecret_proof'
246
+ # @options = {:appsecret_proof => @appsecret_proof}
247
+ # end
248
+ #
249
+ # test 'performs a GET to https://graph.facebook.com/me' do
250
+ # strategy.stubs(:appsecret_proof).returns(@appsecret_proof)
251
+ # strategy.stubs(:access_token).returns(@access_token)
252
+ # params = {:params => @options}
253
+ # @access_token.expects(:get).with('/me', params).returns(stub_everything('Oauthio::Response'))
254
+ # strategy.raw_info
255
+ # end
256
+ #
257
+ # test 'performs a GET to https://graph.facebook.com/me with locale' do
258
+ # @options.merge!({ :locale => 'cs_CZ' })
259
+ # strategy.stubs(:access_token).returns(@access_token)
260
+ # strategy.stubs(:appsecret_proof).returns(@appsecret_proof)
261
+ # params = {:params => @options}
262
+ # @access_token.expects(:get).with('/me', params).returns(stub_everything('Oauthio::Response'))
263
+ # strategy.raw_info
264
+ # end
265
+ #
266
+ # test 'performs a GET to https://graph.facebook.com/me with info_fields' do
267
+ # @options.merge!({:info_fields => 'about'})
268
+ # strategy.stubs(:access_token).returns(@access_token)
269
+ # strategy.stubs(:appsecret_proof).returns(@appsecret_proof)
270
+ # params = {:params => {:appsecret_proof => @appsecret_proof, :fields => 'about'}}
271
+ # @access_token.expects(:get).with('/me', params).returns(stub_everything('Oauthio::Response'))
272
+ # strategy.raw_info
273
+ # end
274
+ #
275
+ # test 'returns a Hash' do
276
+ # strategy.stubs(:access_token).returns(@access_token)
277
+ # strategy.stubs(:appsecret_proof).returns(@appsecret_proof)
278
+ # raw_response = stub('Faraday::Response')
279
+ # raw_response.stubs(:body).returns('{ "ohai": "thar" }')
280
+ # raw_response.stubs(:status).returns(200)
281
+ # raw_response.stubs(:headers).returns({'Content-Type' => 'application/json' })
282
+ # Oauthio_response = Oauthio::Response.new(raw_response)
283
+ # params = {:params => @options}
284
+ # @access_token.stubs(:get).with('/me', params).returns(Oauthio_response)
285
+ # assert_kind_of Hash, strategy.raw_info
286
+ # assert_equal 'thar', strategy.raw_info['ohai']
287
+ # end
288
+ #
289
+ # test 'returns an empty hash when the response is false' do
290
+ # strategy.stubs(:access_token).returns(@access_token)
291
+ # strategy.stubs(:appsecret_proof).returns(@appsecret_proof)
292
+ # Oauthio_response = stub('Oauthio::Response', :parsed => false)
293
+ # params = {:params => @options}
294
+ # @access_token.stubs(:get).with('/me', params).returns(Oauthio_response)
295
+ # assert_kind_of Hash, strategy.raw_info
296
+ # assert_equal({}, strategy.raw_info)
297
+ # end
298
+ #
299
+ # test 'should not include raw_info in extras hash when skip_info is specified' do
300
+ # @options = { :skip_info => true }
301
+ # strategy.stubs(:raw_info).returns({:foo => 'bar' })
302
+ # refute_has_key 'raw_info', strategy.extra
303
+ # end
304
+ #end
305
+ #
306
+ #class CredentialsTest < StrategyTestCase
307
+ # def setup
308
+ # super
309
+ # @access_token = stub('Oauthio::AccessToken')
310
+ # @access_token.stubs(:token)
311
+ # @access_token.stubs(:expires?)
312
+ # @access_token.stubs(:expires_at)
313
+ # @access_token.stubs(:refresh_token)
314
+ # strategy.stubs(:access_token).returns(@access_token)
315
+ # end
316
+ #
317
+ # test 'returns a Hash' do
318
+ # assert_kind_of Hash, strategy.credentials
319
+ # end
320
+ #
321
+ # test 'returns the token' do
322
+ # @access_token.stubs(:token).returns('123')
323
+ # assert_equal '123', strategy.credentials['token']
324
+ # end
325
+ #
326
+ # test 'returns the expiry status' do
327
+ # @access_token.stubs(:expires?).returns(true)
328
+ # assert strategy.credentials['expires']
329
+ #
330
+ # @access_token.stubs(:expires?).returns(false)
331
+ # refute strategy.credentials['expires']
332
+ # end
333
+ #
334
+ # test 'returns the refresh token and expiry time when expiring' do
335
+ # ten_mins_from_now = (Time.now + 600).to_i
336
+ # @access_token.stubs(:expires?).returns(true)
337
+ # @access_token.stubs(:refresh_token).returns('321')
338
+ # @access_token.stubs(:expires_at).returns(ten_mins_from_now)
339
+ # assert_equal '321', strategy.credentials['refresh_token']
340
+ # assert_equal ten_mins_from_now, strategy.credentials['expires_at']
341
+ # end
342
+ #
343
+ # test 'does not return the refresh token when test is nil and expiring' do
344
+ # @access_token.stubs(:expires?).returns(true)
345
+ # @access_token.stubs(:refresh_token).returns(nil)
346
+ # assert_nil strategy.credentials['refresh_token']
347
+ # refute_has_key 'refresh_token', strategy.credentials
348
+ # end
349
+ #
350
+ # test 'does not return the refresh token when not expiring' do
351
+ # @access_token.stubs(:expires?).returns(false)
352
+ # @access_token.stubs(:refresh_token).returns('XXX')
353
+ # assert_nil strategy.credentials['refresh_token']
354
+ # refute_has_key 'refresh_token', strategy.credentials
355
+ # end
356
+ #end
357
+ #
358
+ #class ExtraTest < StrategyTestCase
359
+ # def setup
360
+ # super
361
+ # @raw_info = { 'name' => 'Fred Smith' }
362
+ # strategy.stubs(:raw_info).returns(@raw_info)
363
+ # end
364
+ #
365
+ # test 'returns a Hash' do
366
+ # assert_kind_of Hash, strategy.extra
367
+ # end
368
+ #
369
+ # test 'contains raw info' do
370
+ # assert_equal({ 'raw_info' => @raw_info }, strategy.extra)
371
+ # end
372
+ #end
373
+ #
374
+ #module SignedRequestHelpers
375
+ # def signed_request(payload, secret)
376
+ # encoded_payload = base64_encode_url(MultiJson.encode(payload))
377
+ # encoded_signature = base64_encode_url(signature(encoded_payload, secret))
378
+ # [encoded_signature, encoded_payload].join('.')
379
+ # end
380
+ #
381
+ # def base64_encode_url(value)
382
+ # Base64.encode64(value).tr('+/', '-_').gsub(/\n/, '')
383
+ # end
384
+ #
385
+ # def signature(payload, secret, algorithm = OpenSSL::Digest::SHA256.new)
386
+ # OpenSSL::HMAC.digest(algorithm, secret, payload)
387
+ # end
388
+ #end
389
+ #
390
+ #module SignedRequestTests
391
+ # class TestCase < StrategyTestCase
392
+ # include SignedRequestHelpers
393
+ # end
394
+ #
395
+ # class CookieAndParamNotPresentTest < TestCase
396
+ # test 'is nil' do
397
+ # assert_nil strategy.send(:signed_request)
398
+ # end
399
+ #
400
+ # test 'throws an error on calling build_access_token' do
401
+ # assert_equal 'must pass either a `code` parameter or a signed request (via `signed_request` parameter or a `fbsr_XXX` cookie)',
402
+ # assert_raises(OmniAuth::Strategies::Facebook::NoAuthorizationCodeError) { strategy.send(:build_access_token) }.message
403
+ # end
404
+ # end
405
+ #
406
+ # class CookiePresentTest < TestCase
407
+ # def setup(algo = nil)
408
+ # super()
409
+ # @payload = {
410
+ # 'algorithm' => algo || 'HMAC-SHA256',
411
+ # 'code' => 'm4c0d3z',
412
+ # 'issued_at' => Time.now.to_i,
413
+ # 'user_id' => '123456'
414
+ # }
415
+ #
416
+ # @request.stubs(:cookies).returns({"fbsr_#{@client_id}" => signed_request(@payload, @client_secret)})
417
+ # end
418
+ #
419
+ # test 'parses the access code out from the cookie' do
420
+ # assert_equal @payload, strategy.send(:signed_request)
421
+ # end
422
+ #
423
+ # test 'throws an error if the algorithm is unknown' do
424
+ # setup('UNKNOWN-ALGO')
425
+ # assert_equal "unknown algorithm: UNKNOWN-ALGO", assert_raises(OmniAuth::Strategies::Facebook::UnknownSignatureAlgorithmError) { strategy.send(:signed_request) }.message
426
+ # end
427
+ # end
428
+ #
429
+ # class ParamPresentTest < TestCase
430
+ # def setup(algo = nil)
431
+ # super()
432
+ # @payload = {
433
+ # 'algorithm' => algo || 'HMAC-SHA256',
434
+ # 'oauth_token' => 'XXX',
435
+ # 'issued_at' => Time.now.to_i,
436
+ # 'user_id' => '123456'
437
+ # }
438
+ #
439
+ # @request.stubs(:params).returns({'signed_request' => signed_request(@payload, @client_secret)})
440
+ # end
441
+ #
442
+ # test 'parses the access code out from the param' do
443
+ # assert_equal @payload, strategy.send(:signed_request)
444
+ # end
445
+ #
446
+ # test 'throws an error if the algorithm is unknown' do
447
+ # setup('UNKNOWN-ALGO')
448
+ # assert_equal "unknown algorithm: UNKNOWN-ALGO", assert_raises(OmniAuth::Strategies::Facebook::UnknownSignatureAlgorithmError) { strategy.send(:signed_request) }.message
449
+ # end
450
+ # end
451
+ #
452
+ # class CookieAndParamPresentTest < TestCase
453
+ # def setup
454
+ # super
455
+ # @payload_from_cookie = {
456
+ # 'algorithm' => 'HMAC-SHA256',
457
+ # 'from' => 'cookie'
458
+ # }
459
+ #
460
+ # @request.stubs(:cookies).returns({"fbsr_#{@client_id}" => signed_request(@payload_from_cookie, @client_secret)})
461
+ #
462
+ # @payload_from_param = {
463
+ # 'algorithm' => 'HMAC-SHA256',
464
+ # 'from' => 'param'
465
+ # }
466
+ #
467
+ # @request.stubs(:params).returns({'signed_request' => signed_request(@payload_from_param, @client_secret)})
468
+ # end
469
+ #
470
+ # test 'picks param over cookie' do
471
+ # assert_equal @payload_from_param, strategy.send(:signed_request)
472
+ # end
473
+ # end
474
+ #
475
+ # class EmptySignedRequestTest < TestCase
476
+ # def setup
477
+ # super
478
+ # @request.stubs(:params).returns({'signed_request' => ''})
479
+ # end
480
+ #
481
+ # test 'empty param' do
482
+ # assert_equal nil, strategy.send(:signed_request)
483
+ # end
484
+ # end
485
+ #
486
+ #end
487
+ #
488
+ #class RequestPhaseWithSignedRequestTest < StrategyTestCase
489
+ # include SignedRequestHelpers
490
+ #
491
+ # def setup
492
+ # super
493
+ #
494
+ # payload = {
495
+ # 'algorithm' => 'HMAC-SHA256',
496
+ # 'oauth_token' => 'm4c0d3z'
497
+ # }
498
+ # @raw_signed_request = signed_request(payload, @client_secret)
499
+ # @request.stubs(:params).returns("signed_request" => @raw_signed_request)
500
+ #
501
+ # strategy.stubs(:callback_url).returns('/')
502
+ # end
503
+ #
504
+ # test 'redirects to callback passing along signed request' do
505
+ # strategy.expects(:redirect).with("/?signed_request=#{Rack::Utils.escape(@raw_signed_request)}").once
506
+ # strategy.request_phase
507
+ # end
508
+ #end
509
+ #
510
+ #module BuildAccessTokenTests
511
+ # class TestCase < StrategyTestCase
512
+ # include SignedRequestHelpers
513
+ # end
514
+ #
515
+ # class ParamsContainSignedRequestWithAccessTokenTest < TestCase
516
+ # def setup
517
+ # super
518
+ #
519
+ # @payload = {
520
+ # 'algorithm' => 'HMAC-SHA256',
521
+ # 'oauth_token' => 'm4c0d3z',
522
+ # 'expires' => Time.now.to_i
523
+ # }
524
+ # @raw_signed_request = signed_request(@payload, @client_secret)
525
+ # @request.stubs(:params).returns({"signed_request" => @raw_signed_request})
526
+ #
527
+ # strategy.stubs(:callback_url).returns('/')
528
+ # end
529
+ #
530
+ # test 'returns a new access token from the signed request' do
531
+ # result = strategy.send(:build_access_token)
532
+ # assert_kind_of ::Oauthio::AccessToken, result
533
+ # assert_equal @payload['oauth_token'], result.token
534
+ # end
535
+ #
536
+ # test 'returns an access token with the correct expiry time' do
537
+ # result = strategy.send(:build_access_token)
538
+ # assert_equal @payload['expires'], result.expires_at
539
+ # end
540
+ # end
541
+ #end
metadata ADDED
@@ -0,0 +1,123 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: omniauth-oauthio
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Jonathan Rowlands
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-08-11 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: omniauth-oauth2
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: minitest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: mocha
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description:
70
+ email:
71
+ - jonrowlands83@gmail.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - ".gitignore"
77
+ - Gemfile
78
+ - LICENSE
79
+ - README.md
80
+ - Rakefile
81
+ - example/Gemfile
82
+ - example/Gemfile.lock
83
+ - example/config.ru
84
+ - lib/oauthio/access_token.rb
85
+ - lib/oauthio/client.rb
86
+ - lib/oauthio/providers/oauthio.rb
87
+ - lib/oauthio/strategy/auth_code.rb
88
+ - lib/omniauth-oauthio.rb
89
+ - lib/omniauth/oauthio.rb
90
+ - lib/omniauth/oauthio/version.rb
91
+ - lib/omniauth/strategies/oauthio.rb
92
+ - omniauth-oauthio.gemspec
93
+ - test/helper.rb
94
+ - test/support/shared_examples.rb
95
+ - test/test.rb
96
+ homepage: https://github.com/jgrowl/omniauth-oauthio
97
+ licenses:
98
+ - MIT
99
+ metadata: {}
100
+ post_install_message:
101
+ rdoc_options: []
102
+ require_paths:
103
+ - lib
104
+ required_ruby_version: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ required_rubygems_version: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ requirements: []
115
+ rubyforge_project:
116
+ rubygems_version: 2.2.2
117
+ signing_key:
118
+ specification_version: 4
119
+ summary: OAuth.io Strategy for OmniAuth
120
+ test_files:
121
+ - test/helper.rb
122
+ - test/support/shared_examples.rb
123
+ - test/test.rb