rack-oauth2 1.0.1 → 1.0.2

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/.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)