openid_connect 0.3.3 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. data/Gemfile +1 -9
  2. data/Gemfile.lock +8 -11
  3. data/Rakefile +10 -16
  4. data/VERSION +1 -1
  5. data/lib/openid_connect.rb +1 -1
  6. data/lib/openid_connect/access_token.rb +2 -2
  7. data/lib/openid_connect/client.rb +2 -2
  8. data/lib/openid_connect/client/registrar.rb +16 -15
  9. data/lib/openid_connect/discovery/principal.rb +5 -5
  10. data/lib/openid_connect/discovery/provider/config.rb +1 -1
  11. data/lib/openid_connect/discovery/provider/config/resource.rb +4 -3
  12. data/lib/openid_connect/discovery/provider/config/response.rb +41 -1
  13. data/lib/openid_connect/request_object/claimable.rb +2 -2
  14. data/lib/openid_connect/response_object/id_token.rb +1 -1
  15. data/lib/openid_connect/response_object/user_info/open_id.rb +5 -5
  16. data/lib/rack/oauth2/server/authorize/error_with_connect_ext.rb +7 -7
  17. data/lib/rack/oauth2/server/id_token_response.rb +1 -1
  18. data/openid_connect.gemspec +1 -5
  19. data/spec/mock_response/public_keys/jwk.json +7 -0
  20. data/spec/mock_response/public_keys/x509.pem +21 -0
  21. data/spec/openid_connect/access_token_spec.rb +23 -23
  22. data/spec/openid_connect/client/registrar_spec.rb +45 -45
  23. data/spec/openid_connect/client_spec.rb +12 -12
  24. data/spec/openid_connect/connect_object_spec.rb +6 -6
  25. data/spec/openid_connect/debugger/request_filter_spec.rb +1 -1
  26. data/spec/openid_connect/discovery/principal_spec.rb +5 -5
  27. data/spec/openid_connect/discovery/provider/config/response_spec.rb +265 -3
  28. data/spec/openid_connect/discovery/provider/config_spec.rb +11 -0
  29. data/spec/openid_connect/discovery/provider_spec.rb +3 -3
  30. data/spec/openid_connect/request_object_spec.rb +36 -36
  31. data/spec/openid_connect/response_object/id_token_spec.rb +26 -26
  32. data/spec/openid_connect/response_object/user_info/open_id_spec.rb +7 -7
  33. data/spec/rack/oauth2/server/authorize/extension/code_and_id_token_and_token_spec.rb +7 -7
  34. data/spec/rack/oauth2/server/authorize/extension/code_and_id_token_spec.rb +6 -6
  35. data/spec/rack/oauth2/server/authorize/extension/id_token_and_token_spec.rb +7 -7
  36. data/spec/rack/oauth2/server/authorize/extension/id_token_spec.rb +6 -6
  37. data/spec/rack/oauth2/server/token/authorization_code_spec.rb +14 -14
  38. data/spec/rack/oauth2/server/token/refresh_token_spec.rb +13 -13
  39. data/spec/spec_helper.rb +1 -3
  40. metadata +15 -11
@@ -4,14 +4,14 @@ describe OpenIDConnect::AccessToken do
4
4
  subject { access_token }
5
5
  let :client do
6
6
  OpenIDConnect::Client.new(
7
- :identifier => 'client_id',
8
- :host => 'server.example.com'
7
+ identifier:'client_id',
8
+ host: 'server.example.com'
9
9
  )
10
10
  end
11
11
  let :access_token do
12
12
  OpenIDConnect::AccessToken.new(
13
- :access_token => 'access_token',
14
- :client => client
13
+ access_token: 'access_token',
14
+ client: client
15
15
  )
16
16
  end
17
17
 
@@ -22,21 +22,21 @@ describe OpenIDConnect::AccessToken do
22
22
  subject { access_token }
23
23
  let :access_token do
24
24
  OpenIDConnect::AccessToken.new(
25
- :access_token => 'access_token',
26
- :id_token => id_token,
27
- :client => client
25
+ access_token: 'access_token',
26
+ id_token: id_token,
27
+ client: client
28
28
  )
29
29
  end
30
30
 
31
31
  context 'when IdToken object' do
32
32
  let :id_token do
33
33
  OpenIDConnect::ResponseObject::IdToken.new(
34
- :iss => 'https://server.example.com',
35
- :user_id => 'user_id',
36
- :aud => 'client_id',
37
- :nonce => 'nonce',
38
- :exp => 1.week.from_now,
39
- :iat => Time.now
34
+ iss: 'https://server.example.com',
35
+ user_id: 'user_id',
36
+ aud: 'client_id',
37
+ nonce: 'nonce',
38
+ exp: 1.week.from_now,
39
+ iat: Time.now
40
40
  )
41
41
  end
42
42
  its(:id_token) { should be_a OpenIDConnect::ResponseObject::IdToken }
@@ -53,8 +53,8 @@ describe OpenIDConnect::AccessToken do
53
53
  shared_examples_for :access_token_error_handling do
54
54
  context 'when bad_request' do
55
55
  it 'should raise OpenIDConnect::Forbidden' do
56
- mock_json :get, endpoint, 'errors/invalid_request', :HTTP_AUTHORIZATION => 'Bearer access_token', :status => 400, :params => {
57
- :schema => 'openid'
56
+ mock_json :get, endpoint, 'errors/invalid_request', :HTTP_AUTHORIZATION => 'Bearer access_token', status: 400, params: {
57
+ schema: 'openid'
58
58
  } do
59
59
  expect { request }.to raise_error OpenIDConnect::BadRequest
60
60
  end
@@ -63,8 +63,8 @@ describe OpenIDConnect::AccessToken do
63
63
 
64
64
  context 'when unauthorized' do
65
65
  it 'should raise OpenIDConnect::Unauthorized' do
66
- mock_json :get, endpoint, 'errors/invalid_access_token', :HTTP_AUTHORIZATION => 'Bearer access_token', :status => 401, :params => {
67
- :schema => 'openid'
66
+ mock_json :get, endpoint, 'errors/invalid_access_token', :HTTP_AUTHORIZATION => 'Bearer access_token', status: 401, params: {
67
+ schema: 'openid'
68
68
  } do
69
69
  expect { request }.to raise_error OpenIDConnect::Unauthorized
70
70
  end
@@ -73,8 +73,8 @@ describe OpenIDConnect::AccessToken do
73
73
 
74
74
  context 'when forbidden' do
75
75
  it 'should raise OpenIDConnect::Forbidden' do
76
- mock_json :get, endpoint, 'errors/insufficient_scope', :HTTP_AUTHORIZATION => 'Bearer access_token', :status => 403, :params => {
77
- :schema => 'openid'
76
+ mock_json :get, endpoint, 'errors/insufficient_scope', :HTTP_AUTHORIZATION => 'Bearer access_token', status: 403, params: {
77
+ schema: 'openid'
78
78
  } do
79
79
  expect { request }.to raise_error OpenIDConnect::Forbidden
80
80
  end
@@ -83,8 +83,8 @@ describe OpenIDConnect::AccessToken do
83
83
 
84
84
  context 'when unknown' do
85
85
  it 'should raise OpenIDConnect::HttpError' do
86
- mock_json :get, endpoint, 'errors/unknown', :HTTP_AUTHORIZATION => 'Bearer access_token', :status => 500, :params => {
87
- :schema => 'openid'
86
+ mock_json :get, endpoint, 'errors/unknown', :HTTP_AUTHORIZATION => 'Bearer access_token', status: 500, params: {
87
+ schema: 'openid'
88
88
  } do
89
89
  expect { request }.to raise_error OpenIDConnect::HttpError
90
90
  end
@@ -94,8 +94,8 @@ describe OpenIDConnect::AccessToken do
94
94
 
95
95
  describe '#user_info!' do
96
96
  it 'should return OpenIDConnect::ResponseObject::UserInfo::OpenID' do
97
- mock_json :get, client.user_info_uri, 'user_info/openid', :HTTP_AUTHORIZATION => 'Bearer access_token', :params => {
98
- :schema => 'openid'
97
+ mock_json :get, client.user_info_uri, 'user_info/openid', :HTTP_AUTHORIZATION => 'Bearer access_token', params: {
98
+ schema: 'openid'
99
99
  } do
100
100
  access_token.user_info!.should be_a OpenIDConnect::ResponseObject::UserInfo::OpenID
101
101
  end
@@ -5,7 +5,7 @@ describe OpenIDConnect::Client::Registrar do
5
5
  let(:attributes) { minimum_attributes }
6
6
  let(:minimum_attributes) do
7
7
  {
8
- :type => :client_associate
8
+ type: :client_associate
9
9
  }
10
10
  end
11
11
  let(:instance) { OpenIDConnect::Client::Registrar.new(endpoint, attributes) }
@@ -24,8 +24,8 @@ describe OpenIDConnect::Client::Registrar do
24
24
  context 'when client_id given' do
25
25
  let(:attributes) do
26
26
  {
27
- :type => :client_update,
28
- :client_id => 'client.example.com'
27
+ type: :client_update,
28
+ client_id: 'client.example.com'
29
29
  }
30
30
  end
31
31
  it { should be_valid }
@@ -34,7 +34,7 @@ describe OpenIDConnect::Client::Registrar do
34
34
  context 'otherwise' do
35
35
  let(:attributes) do
36
36
  {
37
- :type => :client_update
37
+ type: :client_update
38
38
  }
39
39
  end
40
40
  it { should_not be_valid }
@@ -44,7 +44,7 @@ describe OpenIDConnect::Client::Registrar do
44
44
  context 'otherwise' do
45
45
  let(:attributes) do
46
46
  {
47
- :type => :invalid_type
47
+ type: :invalid_type
48
48
  }
49
49
  end
50
50
  it { should_not be_valid }
@@ -77,7 +77,7 @@ describe OpenIDConnect::Client::Registrar do
77
77
  context 'when sector_identifier_url given' do
78
78
  let(:attributes) do
79
79
  minimum_attributes.merge(
80
- :sector_identifier_url => 'https://client.example.com/sector_identifier.json'
80
+ sector_identifier_url: 'https://client.example.com/sector_identifier.json'
81
81
  )
82
82
  end
83
83
  its(:sector_identifier) { should == 'client.example.com' }
@@ -85,7 +85,7 @@ describe OpenIDConnect::Client::Registrar do
85
85
  context 'when sector_identifier_url is invalid URI' do
86
86
  let(:attributes) do
87
87
  minimum_attributes.merge(
88
- :sector_identifier_url => ':invalid'
88
+ sector_identifier_url: ':invalid'
89
89
  )
90
90
  end
91
91
  its(:sector_identifier) { should be_nil }
@@ -94,8 +94,8 @@ describe OpenIDConnect::Client::Registrar do
94
94
  context 'when redirect_uris given' do
95
95
  let(:attributes) do
96
96
  minimum_attributes.merge(
97
- :sector_identifier_url => 'https://client.example.com/sector_identifier.json',
98
- :redirect_uris => 'https://client2.example.com/callback'
97
+ sector_identifier_url: 'https://client.example.com/sector_identifier.json',
98
+ redirect_uris: 'https://client2.example.com/callback'
99
99
  )
100
100
  end
101
101
  its(:sector_identifier) { should == 'client.example.com' }
@@ -107,7 +107,7 @@ describe OpenIDConnect::Client::Registrar do
107
107
  context 'when single host' do
108
108
  let(:attributes) do
109
109
  minimum_attributes.merge(
110
- :redirect_uris => [
110
+ redirect_uris: [
111
111
  'https://client.example.com/callback/op1',
112
112
  'https://client.example.com/callback/op2'
113
113
  ].join(' ')
@@ -119,7 +119,7 @@ describe OpenIDConnect::Client::Registrar do
119
119
  context 'when multi host' do
120
120
  let(:attributes) do
121
121
  minimum_attributes.merge(
122
- :redirect_uris => [
122
+ redirect_uris: [
123
123
  'https://client1.example.com/callback',
124
124
  'https://client2.example.com/callback'
125
125
  ].join(' ')
@@ -131,7 +131,7 @@ describe OpenIDConnect::Client::Registrar do
131
131
  context 'when invalid URI' do
132
132
  let(:attributes) do
133
133
  minimum_attributes.merge(
134
- :redirect_uris => ':invalid'
134
+ redirect_uris: ':invalid'
135
135
  )
136
136
  end
137
137
  its(:sector_identifier) { should be_nil }
@@ -149,7 +149,7 @@ describe OpenIDConnect::Client::Registrar do
149
149
  context 'when invalid email included' do
150
150
  let(:attributes) do
151
151
  minimum_attributes.merge(
152
- :contacts => [
152
+ contacts: [
153
153
  ':invalid',
154
154
  'nov@matake.jp'
155
155
  ].join(' ')
@@ -161,7 +161,7 @@ describe OpenIDConnect::Client::Registrar do
161
161
  context 'when localhost address included' do
162
162
  let(:attributes) do
163
163
  minimum_attributes.merge(
164
- :contacts => [
164
+ contacts: [
165
165
  'nov@localhost',
166
166
  'nov@matake.jp'
167
167
  ].join(' ')
@@ -173,7 +173,7 @@ describe OpenIDConnect::Client::Registrar do
173
173
  context 'otherwise' do
174
174
  let(:attributes) do
175
175
  minimum_attributes.merge(
176
- :contacts => 'nov@matake.jp'
176
+ contacts: 'nov@matake.jp'
177
177
  )
178
178
  end
179
179
  it { should be_valid }
@@ -185,7 +185,7 @@ describe OpenIDConnect::Client::Registrar do
185
185
  context 'when valid' do
186
186
  let(:attributes) do
187
187
  minimum_attributes.merge(
188
- :redirect_uris => [
188
+ redirect_uris: [
189
189
  'https://client1.example.com/callback',
190
190
  'https://client2.example.com/callback'
191
191
  ].join(' ')
@@ -193,8 +193,8 @@ describe OpenIDConnect::Client::Registrar do
193
193
  end
194
194
  its(:as_json) do
195
195
  should == {
196
- :type => 'client_associate',
197
- :redirect_uris => 'https://client1.example.com/callback https://client2.example.com/callback'
196
+ type: 'client_associate',
197
+ redirect_uris: 'https://client1.example.com/callback https://client2.example.com/callback'
198
198
  }
199
199
  end
200
200
  end
@@ -202,7 +202,7 @@ describe OpenIDConnect::Client::Registrar do
202
202
  context 'otherwise' do
203
203
  let(:attributes) do
204
204
  {
205
- :type => :client_update
205
+ type: :client_update
206
206
  }
207
207
  end
208
208
  it do
@@ -219,8 +219,8 @@ describe OpenIDConnect::Client::Registrar do
219
219
  end
220
220
 
221
221
  it 'should return OpenIDConnect::Client' do
222
- mock_json :post, endpoint, 'client/registered', :params => {
223
- :type => 'client_associate'
222
+ mock_json :post, endpoint, 'client/registered', params: {
223
+ type: 'client_associate'
224
224
  } do
225
225
  client = instance.associate!
226
226
  client.should be_instance_of OpenIDConnect::Client
@@ -232,9 +232,9 @@ describe OpenIDConnect::Client::Registrar do
232
232
 
233
233
  context 'when failed' do
234
234
  it 'should raise OpenIDConnect::Client::Registrar::RegistrationFailed' do
235
- mock_json :post, endpoint, 'errors/unknown', :params => {
236
- :type => 'client_associate'
237
- }, :status => 400 do
235
+ mock_json :post, endpoint, 'errors/unknown', params: {
236
+ type: 'client_associate'
237
+ }, status: 400 do
238
238
  expect do
239
239
  instance.associate!
240
240
  end.to raise_error OpenIDConnect::Client::Registrar::RegistrationFailed
@@ -246,17 +246,17 @@ describe OpenIDConnect::Client::Registrar do
246
246
  describe '#update!' do
247
247
  let(:attributes) do
248
248
  {
249
- :client_id => 'client.example.com',
250
- :client_secret => 'client_secret'
249
+ client_id: 'client.example.com',
250
+ client_secret: 'client_secret'
251
251
  }
252
252
  end
253
253
 
254
254
  it 'should return OpenIDConnect::Client' do
255
- mock_json :post, endpoint, 'client/updated', :params => {
256
- :type => 'client_update',
257
- :client_id => 'client.example.com',
258
- :client_secret => 'client_secret',
259
- :application_name => 'New Name'
255
+ mock_json :post, endpoint, 'client/updated', params: {
256
+ type: 'client_update',
257
+ client_id: 'client.example.com',
258
+ client_secret: 'client_secret',
259
+ application_name: 'New Name'
260
260
  } do
261
261
  instance.application_name = 'New Name'
262
262
  client = instance.update!
@@ -267,11 +267,11 @@ describe OpenIDConnect::Client::Registrar do
267
267
 
268
268
  context 'when failed' do
269
269
  it 'should raise OpenIDConnect::Client::Registrar::RegistrationFailed' do
270
- mock_json :post, endpoint, 'errors/unknown', :params => {
271
- :type => 'client_update',
272
- :client_id => 'client.example.com',
273
- :client_secret => 'client_secret'
274
- }, :status => 400 do
270
+ mock_json :post, endpoint, 'errors/unknown', params: {
271
+ type: 'client_update',
272
+ client_id: 'client.example.com',
273
+ client_secret: 'client_secret'
274
+ }, status: 400 do
275
275
  expect do
276
276
  instance.update!
277
277
  end.to raise_error OpenIDConnect::Client::Registrar::RegistrationFailed
@@ -283,16 +283,16 @@ describe OpenIDConnect::Client::Registrar do
283
283
  describe '#rotate_secret!' do
284
284
  let(:attributes) do
285
285
  {
286
- :client_id => 'client.example.com',
287
- :client_secret => 'client_secret'
286
+ client_id: 'client.example.com',
287
+ client_secret: 'client_secret'
288
288
  }
289
289
  end
290
290
 
291
291
  it 'should return OpenIDConnect::Client' do
292
- mock_json :post, endpoint, 'client/rotated', :params => {
293
- :type => 'rotate_secret',
294
- :client_id => 'client.example.com',
295
- :client_secret => 'client_secret'
292
+ mock_json :post, endpoint, 'client/rotated', params: {
293
+ type: 'rotate_secret',
294
+ client_id: 'client.example.com',
295
+ client_secret: 'client_secret'
296
296
  } do
297
297
  client = instance.rotate_secret!
298
298
  client.should be_instance_of OpenIDConnect::Client
@@ -315,7 +315,7 @@ describe OpenIDConnect::Client::Registrar do
315
315
  context 'otherwise' do
316
316
  let(:attributes) do
317
317
  {
318
- :type => :client_update
318
+ type: :client_update
319
319
  }
320
320
  end
321
321
  it do
@@ -332,13 +332,13 @@ describe OpenIDConnect::Client::Registrar do
332
332
  context 'when access_token given' do
333
333
  let(:attributes) do
334
334
  minimum_attributes.merge(
335
- :access_token => access_token
335
+ access_token: access_token
336
336
  )
337
337
  end
338
338
 
339
339
  context 'when Rack::OAuth2::AccessToken::Bearer given' do
340
340
  let(:access_token) do
341
- Rack::OAuth2::AccessToken::Bearer.new(:access_token => 'access_token')
341
+ Rack::OAuth2::AccessToken::Bearer.new(access_token: 'access_token')
342
342
  end
343
343
  it { should be_instance_of Rack::OAuth2::AccessToken::Bearer }
344
344
  its(:access_token) { should == 'access_token' }
@@ -6,7 +6,7 @@ describe OpenIDConnect::Client do
6
6
  let(:attributes) { required_attributes }
7
7
  let :required_attributes do
8
8
  {
9
- :identifier => 'client_id'
9
+ identifier: 'client_id'
10
10
  }
11
11
  end
12
12
 
@@ -14,7 +14,7 @@ describe OpenIDConnect::Client do
14
14
  context 'when host info is given' do
15
15
  let :attributes do
16
16
  required_attributes.merge(
17
- :host => 'server.example.com'
17
+ host: 'server.example.com'
18
18
  )
19
19
  end
20
20
  its(:authorization_uri) { should include 'https://server.example.com/oauth2/authorize' }
@@ -36,13 +36,13 @@ describe OpenIDConnect::Client do
36
36
  describe '#authorization_uri' do
37
37
  describe 'scope' do
38
38
  subject do
39
- query = URI.parse(client.authorization_uri :scope => scope).query
39
+ query = URI.parse(client.authorization_uri scope: scope).query
40
40
  Rack::Utils.parse_query(query).with_indifferent_access[:scope]
41
41
  end
42
42
  let(:scope) { nil }
43
43
  let :attributes do
44
44
  required_attributes.merge(
45
- :host => 'server.example.com'
45
+ host: 'server.example.com'
46
46
  )
47
47
  end
48
48
 
@@ -67,14 +67,14 @@ describe OpenIDConnect::Client do
67
67
  describe '#access_token!' do
68
68
  let :attributes do
69
69
  required_attributes.merge(
70
- :secret => 'client_secret',
71
- :token_endpoint => 'http://server.example.com/access_tokens'
70
+ secret: 'client_secret',
71
+ token_endpoint: 'http://server.example.com/access_tokens'
72
72
  )
73
73
  end
74
74
  let :protocol_params do
75
75
  {
76
- :grant_type => 'authorization_code',
77
- :code => 'code'
76
+ grant_type: 'authorization_code',
77
+ code: 'code'
78
78
  }
79
79
  end
80
80
  let :header_params do
@@ -90,14 +90,14 @@ describe OpenIDConnect::Client do
90
90
 
91
91
  context 'when bearer token is returned' do
92
92
  it 'should return OpenIDConnect::AccessToken' do
93
- mock_json :post, client.token_endpoint, 'access_token/bearer', :request_header => header_params, :params => protocol_params do
93
+ mock_json :post, client.token_endpoint, 'access_token/bearer', request_header: header_params, params: protocol_params do
94
94
  access_token.should be_a OpenIDConnect::AccessToken
95
95
  end
96
96
  end
97
97
 
98
98
  context 'when id_token is returned' do
99
99
  it 'should include id_token' do
100
- mock_json :post, client.token_endpoint, 'access_token/bearer_with_id_token', :request_header => header_params, :params => protocol_params do
100
+ mock_json :post, client.token_endpoint, 'access_token/bearer_with_id_token', request_header: header_params, params: protocol_params do
101
101
  access_token.id_token.should == 'id_token'
102
102
  end
103
103
  end
@@ -106,7 +106,7 @@ describe OpenIDConnect::Client do
106
106
 
107
107
  context 'when invalid JSON is returned' do
108
108
  it 'should raise OpenIDConnect::Exception' do
109
- mock_json :post, client.token_endpoint, 'access_token/invalid_json', :request_header => header_params, :params => protocol_params do
109
+ mock_json :post, client.token_endpoint, 'access_token/invalid_json', request_header: header_params, params: protocol_params do
110
110
  expect do
111
111
  access_token
112
112
  end.to raise_error OpenIDConnect::Exception, 'Unknown Token Type'
@@ -116,7 +116,7 @@ describe OpenIDConnect::Client do
116
116
 
117
117
  context 'otherwise' do
118
118
  it 'should raise Unexpected Token Type exception' do
119
- mock_json :post, client.token_endpoint, 'access_token/mac', :request_header => header_params, :params => protocol_params do
119
+ mock_json :post, client.token_endpoint, 'access_token/mac', request_header: header_params, params: protocol_params do
120
120
  expect { access_token }.to raise_error OpenIDConnect::Exception, 'Unexpected Token Type: mac'
121
121
  end
122
122
  end
@@ -4,14 +4,14 @@ describe OpenIDConnect::ConnectObject do
4
4
  class OpenIDConnect::ConnectObject::SubClass < OpenIDConnect::ConnectObject
5
5
  attr_required :required
6
6
  attr_optional :optional
7
- validates :required, :inclusion => {:in => ['Required', 'required']}, :length => 1..10
7
+ validates :required, inclusion: {in: ['Required', 'required']}, length: 1..10
8
8
  end
9
9
 
10
10
  subject { instance }
11
11
  let(:klass) { OpenIDConnect::ConnectObject::SubClass }
12
12
  let(:instance) { klass.new attributes }
13
13
  let :attributes do
14
- {:required => 'Required', :optional => 'Optional'}
14
+ {required: 'Required', optional: 'Optional'}
15
15
  end
16
16
 
17
17
  context 'when required attributes are given' do
@@ -22,7 +22,7 @@ describe OpenIDConnect::ConnectObject do
22
22
 
23
23
  context 'otherwise' do
24
24
  let :attributes do
25
- {:required => 'Required'}
25
+ {required: 'Required'}
26
26
  end
27
27
  its(:required) { should == 'Required' }
28
28
  its(:optional) { should == nil }
@@ -32,7 +32,7 @@ describe OpenIDConnect::ConnectObject do
32
32
  context 'otherwise' do
33
33
  context 'when optional attributes are given' do
34
34
  let :attributes do
35
- {:optional => 'Optional'}
35
+ {optional: 'Optional'}
36
36
  end
37
37
  it do
38
38
  expect { klass.new attributes }.to raise_error AttrRequired::AttrMissing
@@ -55,7 +55,7 @@ describe OpenIDConnect::ConnectObject do
55
55
 
56
56
  context 'otherwise' do
57
57
  let :attributes do
58
- {:required => 'Out of List and Too Long'}
58
+ {required: 'Out of List and Too Long'}
59
59
  end
60
60
 
61
61
  it 'should raise OpenIDConnect::ValidationFailed with ActiveModel::Errors owner' do
@@ -76,7 +76,7 @@ describe OpenIDConnect::ConnectObject do
76
76
 
77
77
  context 'otherwise' do
78
78
  let :attributes do
79
- {:required => 'Out of List and Too Long'}
79
+ {required: 'Out of List and Too Long'}
80
80
  end
81
81
 
82
82
  it 'should raise OpenIDConnect::ValidationFailed with ActiveModel::Errors owner' do