omniauth-oauthio 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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