geoloqi 0.9.8 → 0.9.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -15,4 +15,4 @@ module Geoloqi
15
15
  !client_secret.nil? && !client_secret.empty?
16
16
  end
17
17
  end
18
- end
18
+ end
@@ -78,7 +78,7 @@ module Geoloqi
78
78
 
79
79
  # expires_at is likely incorrect. I'm chopping 5 seconds
80
80
  # off to allow for a more graceful failover.
81
- auth['expires_at'] = ((Time.now + auth['expires_in'].to_i)-5).rfc2822
81
+ auth['expires_at'] = auth_expires_at auth['expires_in']
82
82
  self.auth = auth
83
83
  self.auth
84
84
  end
@@ -93,13 +93,19 @@ module Geoloqi
93
93
 
94
94
  # expires_at is likely incorrect. I'm chopping 5 seconds
95
95
  # off to allow for a more graceful failover.
96
- auth['expires_at'] = ((Time.now + auth['expires_in'].to_i)-5).rfc2822
96
+ auth['expires_at'] = auth_expires_at auth['expires_in']
97
97
  self.auth = auth
98
98
  self.auth
99
99
  end
100
100
 
101
101
  private
102
102
 
103
+ def auth_expires_at(expires_in=nil)
104
+ # expires_at is likely incorrect. I'm chopping 5 seconds
105
+ # off to allow for a more graceful failover.
106
+ expires_in.to_i.zero? ? nil : ((Time.now + expires_in.to_i)-5).rfc2822
107
+ end
108
+
103
109
  def headers
104
110
  headers = {'Content-Type' => 'application/json', 'User-Agent' => "geoloqi-ruby #{Geoloqi.version}", 'Accept' => 'application/json'}
105
111
  headers['Authorization'] = "OAuth #{access_token}" if access_token
@@ -1,5 +1,5 @@
1
1
  module Geoloqi
2
2
  def self.version
3
- '0.9.8'
3
+ '0.9.9'
4
4
  end
5
5
  end
data/spec/geoloqi_spec.rb CHANGED
@@ -195,6 +195,27 @@ describe Geoloqi::Session do
195
195
 
196
196
  expect { (5..10).include? (Time.rfc2822(response[:expires_at]) - (Time.now+86400)).abs }
197
197
  end
198
+
199
+ it 'does not refresh when never expires' do
200
+ WebMock.disable_net_connect!
201
+ begin
202
+ response = @session.get_auth '1234', 'http://neverexpires.example.com/'
203
+ ensure
204
+ WebMock.allow_net_connect!
205
+ end
206
+
207
+ expect { @session.auth[:expires_in] == '0' }
208
+ expect { @session.auth[:expires_at].nil? }
209
+
210
+ WebMock.disable_net_connect!
211
+ begin
212
+ response = @session.get 'account/username'
213
+ ensure
214
+ WebMock.allow_net_connect!
215
+ end
216
+ expect { @session.auth[:access_token] == 'access_token1234' }
217
+ expect { response['username'] == 'bulbasaurrulzok' }
218
+ end
198
219
  end
199
220
 
200
221
  describe 'with config and expired auth' do
@@ -221,6 +242,18 @@ end
221
242
 
222
243
  include WebMock::API
223
244
 
245
+ stub_request(:post, "https://api.geoloqi.com/1/oauth/token").
246
+ with(:body => {:client_id => ARGV[0],
247
+ :client_secret => ARGV[1],
248
+ :code => "1234",
249
+ :grant_type => "authorization_code",
250
+ :redirect_uri => "http://neverexpires.example.com/"}.to_json).
251
+ to_return(:status => 200,
252
+ :body => {:access_token => 'access_token1234',
253
+ :scope => nil,
254
+ :expires_in => '0',
255
+ :refresh_token => 'never_expires'}.to_json)
256
+
224
257
  stub_request(:post, "https://api.geoloqi.com/1/oauth/token").
225
258
  with(:body => {:client_id => ARGV[0],
226
259
  :client_secret => ARGV[1],
@@ -244,6 +277,11 @@ stub_request(:post, "https://api.geoloqi.com/1/oauth/token").
244
277
  :expires_in => '5000',
245
278
  :refresh_token => 'refresh_token4567'}.to_json)
246
279
 
280
+ stub_request(:get, "https://api.geoloqi.com/1/account/username").
281
+ with(:headers => {'Authorization'=>'OAuth access_token1234'}).
282
+ to_return(:status => 200,
283
+ :body => {'username' => 'bulbasaurrulzok'}.to_json)
284
+
247
285
  stub_request(:get, "https://api.geoloqi.com/1/account/username").
248
286
  with(:headers => {'Authorization'=>'OAuth access_token4567'}).
249
287
  to_return(:status => 200,
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: geoloqi
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.9.8
5
+ version: 0.9.9
6
6
  platform: ruby
7
7
  authors:
8
8
  - Kyle Drake
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2011-06-24 00:00:00 -07:00
14
+ date: 2011-07-06 00:00:00 -07:00
15
15
  default_executable:
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency