rack-oauth2 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -17,5 +17,6 @@ tmtags
17
17
  coverage*
18
18
  rdoc
19
19
  pkg
20
+ Gemfile.lock
20
21
 
21
22
  ## PROJECT::SPECIFIC
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.1
1
+ 1.0.2
@@ -89,7 +89,7 @@ module Rack
89
89
  end
90
90
 
91
91
  def handle_success_response(response)
92
- token_hash = MultiJson.load(response.body).with_indifferent_access
92
+ token_hash = parse_json response.body
93
93
  case token_hash[:token_type].try(:downcase)
94
94
  when 'bearer'
95
95
  AccessToken::Bearer.new(token_hash)
@@ -100,17 +100,22 @@ module Rack
100
100
  else
101
101
  raise 'Unknown Token Type'
102
102
  end
103
- rescue MultiJson::DecodeError
103
+ rescue MultiJson::LoadError
104
104
  # NOTE: Facebook support (They don't use JSON as token response)
105
105
  AccessToken::Legacy.new Rack::Utils.parse_nested_query(response.body).with_indifferent_access
106
106
  end
107
107
 
108
108
  def handle_error_response(response)
109
- error = MultiJson.load(response.body).with_indifferent_access
109
+ error = parse_json response.body
110
110
  raise Error.new(response.status, error)
111
- rescue MultiJson::DecodeError
111
+ rescue MultiJson::LoadError
112
112
  raise Error.new(response.status, :error => 'Unknown', :error_description => response.body)
113
113
  end
114
+
115
+ def parse_json(raw_json)
116
+ # MultiJson.parse('') returns nil when using MultiJson::Adapters::JsonGem
117
+ MultiJson.load(raw_json).try(:with_indifferent_access) || {}
118
+ end
114
119
  end
115
120
  end
116
121
  end
File without changes
@@ -228,6 +228,22 @@ describe Rack::OAuth2::Client do
228
228
  expect { client.access_token! }.to raise_error Rack::OAuth2::Client::Error
229
229
  end
230
230
  end
231
+
232
+ context 'when no body given' do
233
+ context 'when error given' do
234
+ before do
235
+ mock_response(
236
+ :post,
237
+ 'https://server.example.com/oauth2/token',
238
+ 'blank',
239
+ :status => 400
240
+ )
241
+ end
242
+ it do
243
+ expect { client.access_token! }.to raise_error Rack::OAuth2::Client::Error
244
+ end
245
+ end
246
+ end
231
247
  end
232
248
 
233
249
  context 'when no host info' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-oauth2
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-08 00:00:00.000000000 Z
12
+ date: 2013-02-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
@@ -185,7 +185,6 @@ files:
185
185
  - .rspec
186
186
  - .travis.yml
187
187
  - Gemfile
188
- - Gemfile.lock
189
188
  - LICENSE
190
189
  - README.rdoc
191
190
  - Rakefile
@@ -238,6 +237,7 @@ files:
238
237
  - rack-oauth2.gemspec
239
238
  - spec/helpers/time.rb
240
239
  - spec/helpers/webmock_helper.rb
240
+ - spec/mock_response/blank
241
241
  - spec/mock_response/errors/invalid_request.json
242
242
  - spec/mock_response/resources/fake.txt
243
243
  - spec/mock_response/tokens/_Bearer.json
@@ -296,9 +296,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
296
296
  - - ! '>='
297
297
  - !ruby/object:Gem::Version
298
298
  version: '0'
299
- segments:
300
- - 0
301
- hash: 1898578761038848884
302
299
  required_rubygems_version: !ruby/object:Gem::Requirement
303
300
  none: false
304
301
  requirements:
@@ -307,13 +304,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
307
304
  version: 1.3.6
308
305
  requirements: []
309
306
  rubyforge_project:
310
- rubygems_version: 1.8.24
307
+ rubygems_version: 1.8.23
311
308
  signing_key:
312
309
  specification_version: 3
313
310
  summary: OAuth 2.0 Server & Client Library - Both Bearer and MAC token type are supported
314
311
  test_files:
315
312
  - spec/helpers/time.rb
316
313
  - spec/helpers/webmock_helper.rb
314
+ - spec/mock_response/blank
317
315
  - spec/mock_response/errors/invalid_request.json
318
316
  - spec/mock_response/resources/fake.txt
319
317
  - spec/mock_response/tokens/_Bearer.json
data/Gemfile.lock DELETED
@@ -1,59 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- rack-oauth2 (1.0.1)
5
- activesupport (>= 2.3)
6
- attr_required (>= 0.0.5)
7
- httpclient (>= 2.2.0.2)
8
- i18n
9
- multi_json (>= 1.3.6)
10
- rack (>= 1.1)
11
-
12
- GEM
13
- remote: http://rubygems.org/
14
- specs:
15
- activesupport (3.2.11)
16
- i18n (~> 0.6)
17
- multi_json (~> 1.0)
18
- addressable (2.3.2)
19
- attr_required (0.0.5)
20
- bouncy-castle-java (1.5.0146.1)
21
- configatron (2.9.1)
22
- yamler (>= 0.1.0)
23
- cover_me (1.2.0)
24
- configatron
25
- hashie
26
- crack (0.3.2)
27
- diff-lcs (1.1.3)
28
- hashie (1.2.0)
29
- httpclient (2.3.2)
30
- i18n (0.6.1)
31
- jruby-openssl (0.8.2)
32
- bouncy-castle-java (>= 1.5.0146.1)
33
- multi_json (1.5.0)
34
- rack (1.5.1)
35
- rake (10.0.3)
36
- rspec (2.12.0)
37
- rspec-core (~> 2.12.0)
38
- rspec-expectations (~> 2.12.0)
39
- rspec-mocks (~> 2.12.0)
40
- rspec-core (2.12.2)
41
- rspec-expectations (2.12.1)
42
- diff-lcs (~> 1.1.3)
43
- rspec-mocks (2.12.1)
44
- webmock (1.9.0)
45
- addressable (>= 2.2.7)
46
- crack (>= 0.1.7)
47
- yamler (0.1.0)
48
-
49
- PLATFORMS
50
- java
51
- ruby
52
-
53
- DEPENDENCIES
54
- cover_me (>= 1.2.0)
55
- jruby-openssl (>= 0.7)
56
- rack-oauth2!
57
- rake (>= 0.8)
58
- rspec (>= 2)
59
- webmock (>= 1.6.2)