oauth2 0.4.1 → 0.5.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/.autotest +1 -0
- data/.gitignore +4 -1
- data/.travis.yml +1 -3
- data/Gemfile +1 -1
- data/README.md +62 -57
- data/Rakefile +3 -1
- data/lib/oauth2.rb +3 -9
- data/lib/oauth2/access_token.rb +122 -24
- data/lib/oauth2/client.rb +115 -74
- data/lib/oauth2/error.rb +17 -0
- data/lib/oauth2/response.rb +90 -0
- data/lib/oauth2/strategy/auth_code.rb +32 -0
- data/lib/oauth2/strategy/base.rb +7 -29
- data/lib/oauth2/strategy/password.rb +16 -27
- data/lib/oauth2/version.rb +1 -1
- data/oauth2.gemspec +23 -21
- data/spec/helper.rb +13 -0
- data/spec/oauth2/access_token_spec.rb +99 -45
- data/spec/oauth2/client_spec.rb +81 -69
- data/spec/oauth2/response_spec.rb +90 -0
- data/spec/oauth2/strategy/auth_code_spec.rb +88 -0
- data/spec/oauth2/strategy/base_spec.rb +1 -1
- data/spec/oauth2/strategy/password_spec.rb +7 -7
- metadata +114 -90
- data/CHANGELOG.md +0 -21
- data/lib/oauth2/response_object.rb +0 -58
- data/lib/oauth2/strategy/web_server.rb +0 -58
- data/spec/oauth2/strategy/web_server_spec.rb +0 -138
- data/spec/spec_helper.rb +0 -11
metadata
CHANGED
@@ -1,109 +1,134 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: oauth2
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.5.0
|
4
5
|
prerelease:
|
5
|
-
version: 0.4.1
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Michael Bleigh
|
9
|
+
- Erik Michaels-Ober
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
prerelease: false
|
18
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
13
|
+
date: 2011-07-29 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rake
|
17
|
+
requirement: &70092424464720 !ruby/object:Gem::Requirement
|
19
18
|
none: false
|
20
|
-
requirements:
|
19
|
+
requirements:
|
21
20
|
- - ~>
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 0.
|
24
|
-
type: :
|
25
|
-
version_requirements: *id001
|
26
|
-
- !ruby/object:Gem::Dependency
|
27
|
-
name: multi_json
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0.9'
|
23
|
+
type: :development
|
28
24
|
prerelease: false
|
29
|
-
|
25
|
+
version_requirements: *70092424464720
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: rdoc
|
28
|
+
requirement: &70092424463940 !ruby/object:Gem::Requirement
|
30
29
|
none: false
|
31
|
-
requirements:
|
32
|
-
- -
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version:
|
35
|
-
type: :
|
36
|
-
version_requirements: *id002
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: json_pure
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '3.6'
|
34
|
+
type: :development
|
39
35
|
prerelease: false
|
40
|
-
|
36
|
+
version_requirements: *70092424463940
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: rspec
|
39
|
+
requirement: &70092424463400 !ruby/object:Gem::Requirement
|
41
40
|
none: false
|
42
|
-
requirements:
|
41
|
+
requirements:
|
43
42
|
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version:
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: '2.6'
|
46
45
|
type: :development
|
47
|
-
version_requirements: *id003
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: rake
|
50
46
|
prerelease: false
|
51
|
-
|
47
|
+
version_requirements: *70092424463400
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: simplecov
|
50
|
+
requirement: &70092424462900 !ruby/object:Gem::Requirement
|
52
51
|
none: false
|
53
|
-
requirements:
|
52
|
+
requirements:
|
54
53
|
- - ~>
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version:
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0.4'
|
57
56
|
type: :development
|
58
|
-
version_requirements: *id004
|
59
|
-
- !ruby/object:Gem::Dependency
|
60
|
-
name: simplecov
|
61
57
|
prerelease: false
|
62
|
-
|
58
|
+
version_requirements: *70092424462900
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: yard
|
61
|
+
requirement: &70092424462440 !ruby/object:Gem::Requirement
|
63
62
|
none: false
|
64
|
-
requirements:
|
63
|
+
requirements:
|
65
64
|
- - ~>
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version:
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0.7'
|
68
67
|
type: :development
|
69
|
-
version_requirements: *id005
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: rspec
|
72
68
|
prerelease: false
|
73
|
-
|
69
|
+
version_requirements: *70092424462440
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: ZenTest
|
72
|
+
requirement: &70092424461860 !ruby/object:Gem::Requirement
|
74
73
|
none: false
|
75
|
-
requirements:
|
74
|
+
requirements:
|
76
75
|
- - ~>
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version:
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '4.5'
|
79
78
|
type: :development
|
80
|
-
version_requirements: *id006
|
81
|
-
- !ruby/object:Gem::Dependency
|
82
|
-
name: ZenTest
|
83
79
|
prerelease: false
|
84
|
-
|
80
|
+
version_requirements: *70092424461860
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: multi_xml
|
83
|
+
requirement: &70092424461480 !ruby/object:Gem::Requirement
|
85
84
|
none: false
|
86
|
-
requirements:
|
87
|
-
- -
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version:
|
85
|
+
requirements:
|
86
|
+
- - ! '>='
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
90
89
|
type: :development
|
91
|
-
|
92
|
-
|
93
|
-
|
90
|
+
prerelease: false
|
91
|
+
version_requirements: *70092424461480
|
92
|
+
- !ruby/object:Gem::Dependency
|
93
|
+
name: faraday
|
94
|
+
requirement: &70092424460880 !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
96
|
+
requirements:
|
97
|
+
- - ! '>='
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: 0.6.1
|
100
|
+
- - <
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0.8'
|
103
|
+
type: :runtime
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: *70092424460880
|
106
|
+
- !ruby/object:Gem::Dependency
|
107
|
+
name: multi_json
|
108
|
+
requirement: &70092424460060 !ruby/object:Gem::Requirement
|
109
|
+
none: false
|
110
|
+
requirements:
|
111
|
+
- - ~>
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: 1.0.0
|
114
|
+
type: :runtime
|
115
|
+
prerelease: false
|
116
|
+
version_requirements: *70092424460060
|
117
|
+
description: A Ruby wrapper for the OAuth 2.0 protocol built with a similar style
|
118
|
+
to the original OAuth gem.
|
119
|
+
email:
|
120
|
+
- michael@intridea.com
|
121
|
+
- sferik@gmail.com
|
94
122
|
executables: []
|
95
|
-
|
96
123
|
extensions: []
|
97
|
-
|
98
124
|
extra_rdoc_files: []
|
99
|
-
|
100
|
-
|
125
|
+
files:
|
126
|
+
- .autotest
|
101
127
|
- .document
|
102
128
|
- .gemtest
|
103
129
|
- .gitignore
|
104
130
|
- .rspec
|
105
131
|
- .travis.yml
|
106
|
-
- CHANGELOG.md
|
107
132
|
- Gemfile
|
108
133
|
- LICENSE.md
|
109
134
|
- README.md
|
@@ -111,50 +136,49 @@ files:
|
|
111
136
|
- lib/oauth2.rb
|
112
137
|
- lib/oauth2/access_token.rb
|
113
138
|
- lib/oauth2/client.rb
|
114
|
-
- lib/oauth2/
|
139
|
+
- lib/oauth2/error.rb
|
140
|
+
- lib/oauth2/response.rb
|
141
|
+
- lib/oauth2/strategy/auth_code.rb
|
115
142
|
- lib/oauth2/strategy/base.rb
|
116
143
|
- lib/oauth2/strategy/password.rb
|
117
|
-
- lib/oauth2/strategy/web_server.rb
|
118
144
|
- lib/oauth2/version.rb
|
119
145
|
- oauth2.gemspec
|
146
|
+
- spec/helper.rb
|
120
147
|
- spec/oauth2/access_token_spec.rb
|
121
148
|
- spec/oauth2/client_spec.rb
|
149
|
+
- spec/oauth2/response_spec.rb
|
150
|
+
- spec/oauth2/strategy/auth_code_spec.rb
|
122
151
|
- spec/oauth2/strategy/base_spec.rb
|
123
152
|
- spec/oauth2/strategy/password_spec.rb
|
124
|
-
- spec/oauth2/strategy/web_server_spec.rb
|
125
|
-
- spec/spec_helper.rb
|
126
153
|
homepage: http://github.com/intridea/oauth2
|
127
154
|
licenses: []
|
128
|
-
|
129
155
|
post_install_message:
|
130
156
|
rdoc_options: []
|
131
|
-
|
132
|
-
require_paths:
|
157
|
+
require_paths:
|
133
158
|
- lib
|
134
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
159
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
135
160
|
none: false
|
136
|
-
requirements:
|
137
|
-
- -
|
138
|
-
- !ruby/object:Gem::Version
|
139
|
-
version:
|
140
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
161
|
+
requirements:
|
162
|
+
- - ! '>='
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: '0'
|
165
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
141
166
|
none: false
|
142
|
-
requirements:
|
143
|
-
- -
|
144
|
-
- !ruby/object:Gem::Version
|
167
|
+
requirements:
|
168
|
+
- - ! '>='
|
169
|
+
- !ruby/object:Gem::Version
|
145
170
|
version: 1.3.6
|
146
171
|
requirements: []
|
147
|
-
|
148
172
|
rubyforge_project:
|
149
|
-
rubygems_version: 1.
|
173
|
+
rubygems_version: 1.8.5.1
|
150
174
|
signing_key:
|
151
175
|
specification_version: 3
|
152
176
|
summary: A Ruby wrapper for the OAuth 2.0 protocol.
|
153
|
-
test_files:
|
177
|
+
test_files:
|
178
|
+
- spec/helper.rb
|
154
179
|
- spec/oauth2/access_token_spec.rb
|
155
180
|
- spec/oauth2/client_spec.rb
|
181
|
+
- spec/oauth2/response_spec.rb
|
182
|
+
- spec/oauth2/strategy/auth_code_spec.rb
|
156
183
|
- spec/oauth2/strategy/base_spec.rb
|
157
184
|
- spec/oauth2/strategy/password_spec.rb
|
158
|
-
- spec/oauth2/strategy/web_server_spec.rb
|
159
|
-
- spec/spec_helper.rb
|
160
|
-
has_rdoc:
|
data/CHANGELOG.md
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
# CHANGELOG
|
2
|
-
|
3
|
-
* [0.4.1 - April 20, 2011](https://github.com/intridea/oauth2/compare/v0.4.0...v0.4.1)
|
4
|
-
* [0.4.0 - April 20, 2011](https://github.com/intridea/oauth2/compare/v0.3.0...v0.4.0)
|
5
|
-
* [0.3.0 - April 8, 2011](https://github.com/intridea/oauth2/compare/v0.2.0...v0.3.0)
|
6
|
-
* [0.2.0 - April 1, 2011](https://github.com/intridea/oauth2/compare/v0.1.1...v0.2.0)
|
7
|
-
* [0.1.1 - January 12, 2011](https://github.com/intridea/oauth2/compare/v0.1.0...v0.1.1)
|
8
|
-
* [0.1.0 - October 13, 2010](https://github.com/intridea/oauth2/compare/v0.0.13...v0.1.0)
|
9
|
-
* [0.0.13 - August 17, 2010](https://github.com/intridea/oauth2/compare/v0.0.12...v0.0.13)
|
10
|
-
* [0.0.12 - August 17, 2010](https://github.com/intridea/oauth2/compare/v0.0.11...v0.0.12)
|
11
|
-
* [0.0.11 - August 17, 2010](https://github.com/intridea/oauth2/compare/v0.0.10...v0.0.11)
|
12
|
-
* [0.0.10 - June 19, 2010](https://github.com/intridea/oauth2/compare/v0.0.9...v0.0.10)
|
13
|
-
* [0.0.9 - June 18, 2010](https://github.com/intridea/oauth2/compare/v0.0.8...v0.0.9)
|
14
|
-
* [0.0.8 - April 27, 2010](https://github.com/intridea/oauth2/compare/v0.0.7...v0.0.8)
|
15
|
-
* [0.0.7 - April 27, 2010](https://github.com/intridea/oauth2/compare/v0.0.6...v0.0.7)
|
16
|
-
* [0.0.6 - April 25, 2010](https://github.com/intridea/oauth2/compare/v0.0.5...v0.0.6)
|
17
|
-
* [0.0.5 - April 23, 2010](https://github.com/intridea/oauth2/compare/v0.0.4...v0.0.5)
|
18
|
-
* [0.0.4 - April 22, 2010](https://github.com/intridea/oauth2/compare/v0.0.3...v0.0.4)
|
19
|
-
* [0.0.3 - April 22, 2010](https://github.com/intridea/oauth2/compare/v0.0.2...v0.0.3)
|
20
|
-
* [0.0.2 - April 22, 2010](https://github.com/intridea/oauth2/compare/v0.0.1...v0.0.2)
|
21
|
-
* [0.0.1 - April 22, 2010](https://github.com/intridea/oauth2/compare/311d9f42e52b832119170d90e818f0f0b0078851...v0.0.1)
|
@@ -1,58 +0,0 @@
|
|
1
|
-
module OAuth2
|
2
|
-
module ResponseObject
|
3
|
-
def self.from(response)
|
4
|
-
object = MultiJson.decode(response.body)
|
5
|
-
|
6
|
-
case object
|
7
|
-
when Array
|
8
|
-
ResponseArray.new(response, object)
|
9
|
-
when Hash
|
10
|
-
ResponseHash.new(response, object)
|
11
|
-
else
|
12
|
-
ResponseString.new(response)
|
13
|
-
end
|
14
|
-
rescue
|
15
|
-
ResponseString.new(response)
|
16
|
-
end
|
17
|
-
|
18
|
-
def self.included(base)
|
19
|
-
base.class_eval do
|
20
|
-
attr_accessor :response
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def headers; response.headers end
|
25
|
-
def status; response.status end
|
26
|
-
end
|
27
|
-
|
28
|
-
class ResponseHash < Hash
|
29
|
-
include ResponseObject
|
30
|
-
|
31
|
-
def initialize(response, hash)
|
32
|
-
self.response = response
|
33
|
-
hash.keys.each{|k| self[k] = hash[k]}
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
class ResponseArray < Array
|
38
|
-
include ResponseObject
|
39
|
-
|
40
|
-
def initialize(response, array)
|
41
|
-
self.response = response
|
42
|
-
super(array)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
# This special String class is returned from HTTP requests
|
47
|
-
# and contains the original full response along with convenience
|
48
|
-
# methods for accessing the HTTP status code and headers. It
|
49
|
-
# is returned from all access token requests.
|
50
|
-
class ResponseString < String
|
51
|
-
include ResponseObject
|
52
|
-
|
53
|
-
def initialize(response)
|
54
|
-
super(response.body.to_s)
|
55
|
-
self.response = response
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
@@ -1,58 +0,0 @@
|
|
1
|
-
require 'multi_json'
|
2
|
-
|
3
|
-
module OAuth2
|
4
|
-
module Strategy
|
5
|
-
class WebServer < Base
|
6
|
-
def authorize_params(options={}) #:nodoc:
|
7
|
-
super(options).merge('response_type' => 'code')
|
8
|
-
end
|
9
|
-
|
10
|
-
# Retrieve an access token given the specified validation code.
|
11
|
-
# Note that you must also provide a <tt>:redirect_uri</tt> option
|
12
|
-
# in order to successfully verify your request for most OAuth 2.0
|
13
|
-
# endpoints.
|
14
|
-
def get_access_token(code, options={})
|
15
|
-
response = @client.request(@client.token_method, @client.access_token_url, access_token_params(code, options))
|
16
|
-
parse_response(response)
|
17
|
-
end
|
18
|
-
|
19
|
-
def refresh_access_token(refresh_token, options={})
|
20
|
-
response = @client.request(@client.token_method, @client.access_token_url, refresh_token_params(refresh_token, options))
|
21
|
-
parse_response(response, refresh_token)
|
22
|
-
end
|
23
|
-
|
24
|
-
def access_token_params(code, options={}) #:nodoc:
|
25
|
-
super(options).merge({
|
26
|
-
'grant_type' => 'authorization_code',
|
27
|
-
'code' => code,
|
28
|
-
})
|
29
|
-
end
|
30
|
-
|
31
|
-
def refresh_token_params(refresh_token, options={}) #:nodoc:
|
32
|
-
super(options).merge({
|
33
|
-
'grant_type' => 'refresh_token',
|
34
|
-
'refresh_token' => refresh_token,
|
35
|
-
})
|
36
|
-
end
|
37
|
-
|
38
|
-
def parse_response(response, refresh_token = nil)
|
39
|
-
if response.is_a? Hash
|
40
|
-
params = response
|
41
|
-
else
|
42
|
-
params = MultiJson.decode(response) rescue nil
|
43
|
-
# the ActiveSupport JSON parser won't cause an exception when
|
44
|
-
# given a formencoded string, so make sure that it was
|
45
|
-
# actually parsed in an Hash. This covers even the case where
|
46
|
-
# it caused an exception since it'll still be nil.
|
47
|
-
params = Rack::Utils.parse_query(response) unless params.is_a? Hash
|
48
|
-
end
|
49
|
-
|
50
|
-
access = params.delete('access_token')
|
51
|
-
refresh = params.delete('refresh_token') || refresh_token
|
52
|
-
# params['expires'] is only for Facebook
|
53
|
-
expires_in = params.delete('expires_in') || params.delete('expires')
|
54
|
-
OAuth2::AccessToken.new(@client, access, refresh, expires_in, params)
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
@@ -1,138 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe OAuth2::Strategy::WebServer do
|
4
|
-
let(:client) do
|
5
|
-
cli = OAuth2::Client.new('abc', 'def', :site => 'http://api.example.com')
|
6
|
-
cli.connection.build do |b|
|
7
|
-
b.adapter :test do |stub|
|
8
|
-
stub.get('/oauth/access_token?client_id=abc&client_secret=def&code=sushi&grant_type=authorization_code') do |env|
|
9
|
-
case @mode
|
10
|
-
when "formencoded"
|
11
|
-
[200, {}, 'expires_in=600&access_token=salmon&refresh_token=trout&extra_param=steve']
|
12
|
-
when "json"
|
13
|
-
[200, {}, '{"expires_in":600,"access_token":"salmon","refresh_token":"trout","extra_param":"steve"}']
|
14
|
-
when "from_facebook"
|
15
|
-
[200, {}, 'expires=600&access_token=salmon&refresh_token=trout&extra_param=steve']
|
16
|
-
end
|
17
|
-
end
|
18
|
-
stub.post('/oauth/access_token', { 'client_id' => 'abc', 'client_secret' => 'def', 'code' => 'sushi', 'grant_type' => 'authorization_code' }) do |env|
|
19
|
-
case @mode
|
20
|
-
when "formencoded"
|
21
|
-
[200, {}, 'expires_in=600&access_token=salmon&refresh_token=trout&extra_param=steve']
|
22
|
-
when "json"
|
23
|
-
[200, {}, '{"expires_in":600,"access_token":"salmon","refresh_token":"trout","extra_param":"steve"}']
|
24
|
-
when "from_facebook"
|
25
|
-
[200, {}, 'expires=600&access_token=salmon&refresh_token=trout&extra_param=steve']
|
26
|
-
end
|
27
|
-
end
|
28
|
-
stub.get('/oauth/access_token?client_id=abc&client_secret=def&grant_type=refresh_token&refresh_token=trout') do |env|
|
29
|
-
case @mode
|
30
|
-
when "formencoded"
|
31
|
-
[200, {}, 'expires_in=600&access_token=tuna']
|
32
|
-
when "json"
|
33
|
-
[200, {}, '{"expires_in":600,"access_token":"tuna"}']
|
34
|
-
end
|
35
|
-
end
|
36
|
-
stub.post('/oauth/access_token', { 'client_id' => 'abc', 'client_secret' => 'def', 'refresh_token' => 'trout', 'grant_type' => 'refresh_token' }) do |env|
|
37
|
-
case @mode
|
38
|
-
when "formencoded"
|
39
|
-
[200, {}, 'expires_in=600&access_token=tuna']
|
40
|
-
when "json"
|
41
|
-
[200, {}, '{"expires_in":600,"access_token":"tuna"}']
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
cli
|
47
|
-
end
|
48
|
-
subject{client.web_server}
|
49
|
-
|
50
|
-
describe '#authorize_url' do
|
51
|
-
it 'should include the client_id' do
|
52
|
-
subject.authorize_url.should be_include('client_id=abc')
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'should include the type' do
|
56
|
-
subject.authorize_url.should be_include('response_type=code')
|
57
|
-
end
|
58
|
-
|
59
|
-
it 'should include passed in options' do
|
60
|
-
cb = 'http://myserver.local/oauth/callback'
|
61
|
-
subject.authorize_url(:redirect_uri => cb).should be_include("redirect_uri=#{Rack::Utils.escape(cb)}")
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
%w(json formencoded from_facebook).each do |mode|
|
66
|
-
[false, true].each do |parse_json|
|
67
|
-
[:get, :post].each do |verb|
|
68
|
-
describe "#get_access_token (#{mode}, token_method=#{verb} parse_json=#{parse_json})" do
|
69
|
-
before do
|
70
|
-
@mode = mode
|
71
|
-
client.json=parse_json
|
72
|
-
client.token_method=verb
|
73
|
-
@access = subject.get_access_token('sushi')
|
74
|
-
end
|
75
|
-
|
76
|
-
it 'returns AccessToken with same Client' do
|
77
|
-
@access.client.should == client
|
78
|
-
end
|
79
|
-
|
80
|
-
it 'returns AccessToken with #token' do
|
81
|
-
@access.token.should == 'salmon'
|
82
|
-
end
|
83
|
-
|
84
|
-
it 'returns AccessToken with #refresh_token' do
|
85
|
-
@access.refresh_token.should == 'trout'
|
86
|
-
end
|
87
|
-
|
88
|
-
it 'returns AccessToken with #expires_in' do
|
89
|
-
@access.expires_in.should == 600
|
90
|
-
end
|
91
|
-
|
92
|
-
it 'returns AccessToken with #expires_at' do
|
93
|
-
@access.expires_at.should be_kind_of(Time)
|
94
|
-
end
|
95
|
-
|
96
|
-
it 'returns AccessToken with params accessible via []' do
|
97
|
-
@access['extra_param'].should == 'steve'
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
%w(json formencoded).each do |mode|
|
105
|
-
[false, true].each do |parse_json|
|
106
|
-
[:get].each do |verb|
|
107
|
-
describe "#refresh_access_token (#{mode}, token_method=#{verb} parse_json=#{parse_json})" do
|
108
|
-
before do
|
109
|
-
@mode = mode
|
110
|
-
client.json=parse_json
|
111
|
-
client.token_method=verb
|
112
|
-
@access = subject.refresh_access_token('trout')
|
113
|
-
end
|
114
|
-
|
115
|
-
it 'returns AccessToken with same Client' do
|
116
|
-
@access.client.should == client
|
117
|
-
end
|
118
|
-
|
119
|
-
it 'returns AccessToken with #token' do
|
120
|
-
@access.token.should == 'tuna'
|
121
|
-
end
|
122
|
-
|
123
|
-
it 'returns AccessToken with #refresh_token' do
|
124
|
-
@access.refresh_token.should == 'trout'
|
125
|
-
end
|
126
|
-
|
127
|
-
it 'returns AccessToken with #expires_in' do
|
128
|
-
@access.expires_in.should == 600
|
129
|
-
end
|
130
|
-
|
131
|
-
it 'returns AccessToken with #expires_at' do
|
132
|
-
@access.expires_at.should be_kind_of(Time)
|
133
|
-
end
|
134
|
-
end
|
135
|
-
end
|
136
|
-
end
|
137
|
-
end
|
138
|
-
end
|