open_auth2 0.0.8

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.
@@ -0,0 +1,37 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :post
5
+ uri: https://accounts.google.com:443/o/oauth2/token
6
+ body:
7
+ headers:
8
+ content-type:
9
+ - application/x-www-form-urlencoded
10
+ accept:
11
+ - application/json
12
+ response: !ruby/struct:VCR::Response
13
+ status: !ruby/struct:VCR::ResponseStatus
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ cache-control:
18
+ - no-cache, no-store, max-age=0, must-revalidate
19
+ pragma:
20
+ - no-cache
21
+ expires:
22
+ - Fri, 01 Jan 1990 00:00:00 GMT
23
+ date:
24
+ - Sat, 03 Mar 2012 00:38:51 GMT
25
+ content-type:
26
+ - application/json
27
+ x-content-type-options:
28
+ - nosniff
29
+ x-frame-options:
30
+ - SAMEORIGIN
31
+ x-xss-protection:
32
+ - 1; mode=block
33
+ server:
34
+ - GSE
35
+ body: ! "{\n \"access_token\" : \"ya29.AHES6ZR2V9Y9vZnTC4YFHChTetjwML1mDLZRSmiBx-XT9g\",\n
36
+ \ \"token_type\" : \"Bearer\",\n \"expires_in\" : 3600\n}"
37
+ http_version: '1.1'
@@ -0,0 +1,59 @@
1
+ require 'open_auth2'
2
+ require 'spec_helper'
3
+
4
+ describe 'Google Client' do
5
+ let(:config) do
6
+ OpenAuth2::Config.new do |c|
7
+ c.provider = :google
8
+ c.access_token = Creds::Google::AccessToken
9
+ c.refresh_token = Creds::Google::RefreshToken
10
+ c.redirect_uri = 'http://localhost:9393/google/callback'
11
+ c.path_prefix = '/calendar/v3'
12
+ end
13
+ end
14
+
15
+ subject { OpenAuth2::Client.new(config) }
16
+
17
+ context '#get' do
18
+ it 'makes private request' do
19
+ VCR.use_cassette('goog/list') do
20
+ request = subject.get(:path => '/users/me/calendarList')
21
+ request.status.should == 200
22
+ end
23
+ end
24
+ end
25
+
26
+ context '#post' do
27
+ let(:post_url) do
28
+ '/calendar/v3/calendars/openauth2@gmail.com/events'
29
+ end
30
+
31
+ let(:body) do
32
+ "{\"summary\":\"From OpenAuth2\",\"start\":{\"dateTime\":\"2012-03-01T10:00:00.000-07:00\"},\"end\":{\"dateTime\":\"2012-03-02T10:25:00.000-07:00\"}}"
33
+ end
34
+
35
+ it 'POST request' do
36
+ content_type = 'application/json'
37
+
38
+ VCR.use_cassette('goog/post') do
39
+ request = subject.post(:path => post_url,
40
+ :body => body,
41
+ :content_type => content_type)
42
+ request.status.should == 200
43
+ end
44
+ end
45
+
46
+ it 'POST request via #run_request' do
47
+ header = {"Content-Type" => "application/json"}
48
+ full_url = "#{post_url}?access_token=#{Creds::Google::AccessToken}"
49
+
50
+ VCR.use_cassette('goog/post') do
51
+ request = subject.run_request(:verb => :post,
52
+ :path => full_url,
53
+ :body => body,
54
+ :header => header)
55
+ request.status.should == 200
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,87 @@
1
+ require 'open_auth2'
2
+ require 'spec_helper'
3
+
4
+ describe 'Google Token' do
5
+ let(:config) do
6
+ OpenAuth2::Config.new do |c|
7
+ c.provider = :google
8
+ c.client_id = Creds::Google::ClientId
9
+ c.client_secret = Creds::Google::ClientSecret
10
+ c.code = Creds::Google::Code
11
+ c.redirect_uri = 'http://localhost:9393/google/callback'
12
+ c.scope = ['https://www.googleapis.com/auth/calendar']
13
+ end
14
+ end
15
+
16
+ subject do
17
+ OpenAuth2::Token.new(config)
18
+ end
19
+
20
+ context '#build_code_url' do
21
+ it 'returns url' do
22
+ url = "https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=77848792642.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A9393%2Fgoogle%2Fcallback&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar&approval_prompt=force&access_type=offline"
23
+
24
+ params = {:approval_prompt => 'force', :access_type => 'offline'}
25
+ subject.build_code_url(params).should == url
26
+ end
27
+ end
28
+
29
+ context '#get' do
30
+ let(:get_token) do
31
+ VCR.use_cassette('goog/access_token') do
32
+ subject.get
33
+ end
34
+ end
35
+
36
+ let(:time) do
37
+ Time.local(2012, 12, 21)
38
+ end
39
+
40
+ before do
41
+ Timecop.freeze(time) do
42
+ get_token
43
+ end
44
+ end
45
+
46
+ it 'requests OAuth server for access token' do
47
+ get_token.status.should == 200
48
+ end
49
+
50
+ it 'sets #access_token' do
51
+ subject.access_token.should == Creds::Google::AccessToken
52
+ end
53
+
54
+ it 'sets #refresh_token' do
55
+ subject.refresh_token.should == Creds::Google::RefreshToken
56
+ end
57
+
58
+ it 'sets #token_arrived_at' do
59
+ subject.token_arrived_at.should == time
60
+ end
61
+
62
+ it 'returns false for #token_expired?' do
63
+ subject.token_expired?.should == true
64
+ end
65
+ end
66
+
67
+ context '#refresh' do
68
+ let(:refresh_token) do
69
+ config.configure do |c|
70
+ c.refresh_token = Creds::Google::RefreshToken
71
+ end
72
+
73
+ VCR.use_cassette('goog/refresh_token') do
74
+ subject.refresh
75
+ end
76
+ end
77
+
78
+ it 'requests OAuth server to refresh access token' do
79
+ refresh_token.status.should == 200
80
+ end
81
+
82
+ it 'sets new #access_token' do
83
+ refresh_token
84
+ subject.access_token.should == Creds::Google::NewAccessToken
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,13 @@
1
+ if ENV['COVERAGE']
2
+ require 'simplecov'
3
+ SimpleCov.start
4
+ end
5
+
6
+ require 'vcr'
7
+ require 'timecop'
8
+ require 'fixtures/creds'
9
+
10
+ VCR.config do |c|
11
+ c.cassette_library_dir = 'spec/fixtures/vcr'
12
+ c.stub_with :fakeweb
13
+ end
@@ -0,0 +1,23 @@
1
+ require 'open_auth2'
2
+ require 'spec_helper'
3
+
4
+ describe OpenAuth2::Token do
5
+ let(:config) do
6
+ OpenAuth2::Config.new do |c|
7
+ c.provider = :facebook
8
+ end
9
+ end
10
+
11
+ subject { OpenAuth2::Token.new(config) }
12
+
13
+ context '#initialize' do
14
+ it 'accepts config as argument' do
15
+ subject = described_class.new(config)
16
+ subject.config.should == config
17
+ end
18
+
19
+ it 'sets @faraday_url' do
20
+ subject.faraday_url.should == 'https://graph.facebook.com'
21
+ end
22
+ end
23
+ end
metadata ADDED
@@ -0,0 +1,236 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: open_auth2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.8
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - sent-hil
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-10-22 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: faraday
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '0.7'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '0.7'
30
+ - !ruby/object:Gem::Dependency
31
+ name: activesupport
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '3.1'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '3.1'
46
+ - !ruby/object:Gem::Dependency
47
+ name: json
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rake
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: '0.9'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: '0.9'
78
+ - !ruby/object:Gem::Dependency
79
+ name: rspec
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
85
+ version: '2.8'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: '2.8'
94
+ - !ruby/object:Gem::Dependency
95
+ name: vcr
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - '='
100
+ - !ruby/object:Gem::Version
101
+ version: 1.11.3
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - '='
108
+ - !ruby/object:Gem::Version
109
+ version: 1.11.3
110
+ - !ruby/object:Gem::Dependency
111
+ name: fakeweb
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: '1.3'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: '1.3'
126
+ - !ruby/object:Gem::Dependency
127
+ name: timecop
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ~>
132
+ - !ruby/object:Gem::Version
133
+ version: '0.3'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: '0.3'
142
+ description: OpenAuth2 is a simple OAuth2 client.
143
+ email:
144
+ - me@sent-hil.com
145
+ executables: []
146
+ extensions: []
147
+ extra_rdoc_files: []
148
+ files:
149
+ - Gemfile
150
+ - License
151
+ - Rakefile
152
+ - Readme.markdown
153
+ - Spec.markdown
154
+ - examples/fb.rb
155
+ - examples/google.rb
156
+ - lib/open_auth2.rb
157
+ - lib/open_auth2/client.rb
158
+ - lib/open_auth2/config.rb
159
+ - lib/open_auth2/connection.rb
160
+ - lib/open_auth2/delegate_to_config.rb
161
+ - lib/open_auth2/provider.rb
162
+ - lib/open_auth2/provider/base.rb
163
+ - lib/open_auth2/provider/default.rb
164
+ - lib/open_auth2/provider/facebook.rb
165
+ - lib/open_auth2/provider/google.rb
166
+ - lib/open_auth2/token.rb
167
+ - lib/open_auth2/version.rb
168
+ - open_auth2.gemspec
169
+ - spec/client_spec.rb
170
+ - spec/config_spec.rb
171
+ - spec/facebook/client_spec.rb
172
+ - spec/facebook/token_spec.rb
173
+ - spec/fixtures/creds.rb
174
+ - spec/fixtures/vcr/fb/access_token.yml
175
+ - spec/fixtures/vcr/fb/cocacola.yml
176
+ - spec/fixtures/vcr/fb/me.yml
177
+ - spec/fixtures/vcr/fb/post.yml
178
+ - spec/fixtures/vcr/fb/refresh_token.yml
179
+ - spec/fixtures/vcr/goog/access_token.yml
180
+ - spec/fixtures/vcr/goog/list.yml
181
+ - spec/fixtures/vcr/goog/post.yml
182
+ - spec/fixtures/vcr/goog/refresh_token.yml
183
+ - spec/google/client_spec.rb
184
+ - spec/google/token_spec.rb
185
+ - spec/spec_helper.rb
186
+ - spec/token_spec.rb
187
+ homepage: https://github.com/sent-hil/OpenAuth2
188
+ licenses: []
189
+ post_install_message:
190
+ rdoc_options: []
191
+ require_paths:
192
+ - lib
193
+ required_ruby_version: !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ! '>='
197
+ - !ruby/object:Gem::Version
198
+ version: '0'
199
+ segments:
200
+ - 0
201
+ hash: 1597151657867498836
202
+ required_rubygems_version: !ruby/object:Gem::Requirement
203
+ none: false
204
+ requirements:
205
+ - - ! '>='
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
208
+ segments:
209
+ - 0
210
+ hash: 1597151657867498836
211
+ requirements: []
212
+ rubyforge_project: OpenAuth2
213
+ rubygems_version: 1.8.24
214
+ signing_key:
215
+ specification_version: 3
216
+ summary: OpenAuth2 is a simple OAuth2 client written on top of Faraday in Ruby. The
217
+ goal is a simple, well documented, easy to use interface for all your OAuth2 needs.
218
+ test_files:
219
+ - spec/client_spec.rb
220
+ - spec/config_spec.rb
221
+ - spec/facebook/client_spec.rb
222
+ - spec/facebook/token_spec.rb
223
+ - spec/fixtures/creds.rb
224
+ - spec/fixtures/vcr/fb/access_token.yml
225
+ - spec/fixtures/vcr/fb/cocacola.yml
226
+ - spec/fixtures/vcr/fb/me.yml
227
+ - spec/fixtures/vcr/fb/post.yml
228
+ - spec/fixtures/vcr/fb/refresh_token.yml
229
+ - spec/fixtures/vcr/goog/access_token.yml
230
+ - spec/fixtures/vcr/goog/list.yml
231
+ - spec/fixtures/vcr/goog/post.yml
232
+ - spec/fixtures/vcr/goog/refresh_token.yml
233
+ - spec/google/client_spec.rb
234
+ - spec/google/token_spec.rb
235
+ - spec/spec_helper.rb
236
+ - spec/token_spec.rb