gds-sso 9.3.0 → 9.4.0
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/Gemfile +3 -4
- data/README.md +13 -5
- data/Rakefile +6 -2
- data/lib/gds-sso/lint/user_spec.rb +52 -0
- data/lib/gds-sso/version.rb +1 -1
- data/spec/controller/api_user_controller_spec.rb +19 -13
- data/spec/internal/app/models/user.rb +0 -2
- data/spec/internal/config/routes.rb +2 -2
- data/spec/internal/db/combustion_test.sqlite +0 -0
- data/spec/internal/log/test.log +1967 -201
- data/spec/spec_helper.rb +2 -7
- data/spec/unit/session_serialisation_spec.rb +8 -9
- data/spec/unit/user_spec.rb +34 -0
- metadata +25 -8
data/spec/spec_helper.rb
CHANGED
@@ -1,20 +1,15 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'bundler'
|
3
|
-
|
4
1
|
# Yes, we really do want to turn off the test environment check here.
|
5
2
|
# Bad things happen if we don't ;-)
|
6
3
|
ENV['GDS_SSO_STRATEGY'] = 'real'
|
7
4
|
|
8
|
-
|
9
|
-
|
10
|
-
require 'capybara/rspec'
|
5
|
+
require 'bundler/setup'
|
11
6
|
require 'combustion'
|
7
|
+
require 'capybara/rspec'
|
12
8
|
|
13
9
|
Combustion.initialize! :all
|
14
10
|
|
15
11
|
require 'rspec/rails'
|
16
12
|
require 'capybara/rails'
|
17
|
-
|
18
13
|
require 'mechanize'
|
19
14
|
require 'capybara/mechanize'
|
20
15
|
|
@@ -2,15 +2,14 @@ require 'spec_helper'
|
|
2
2
|
require 'active_record'
|
3
3
|
|
4
4
|
describe Warden::SessionSerializer do
|
5
|
-
class
|
5
|
+
class SerializableUser
|
6
6
|
include GDS::SSO::User
|
7
|
-
|
8
7
|
end
|
9
8
|
|
10
9
|
before :each do
|
11
10
|
@old_user_model = GDS::SSO::Config.user_model
|
12
|
-
GDS::SSO::Config.user_model =
|
13
|
-
@user = double("
|
11
|
+
GDS::SSO::Config.user_model = SerializableUser
|
12
|
+
@user = double("SerializableUser", uid: 1234)
|
14
13
|
@serializer = Warden::SessionSerializer.new(nil)
|
15
14
|
end
|
16
15
|
after :each do
|
@@ -36,7 +35,7 @@ describe Warden::SessionSerializer do
|
|
36
35
|
|
37
36
|
describe "deserialize a user" do
|
38
37
|
it "should return the user if the timestamp is current and a Time" do
|
39
|
-
expect(
|
38
|
+
expect(SerializableUser).to receive(:where).with(:uid => 1234, :remotely_signed_out => false).and_return(double(:first => :a_user))
|
40
39
|
|
41
40
|
result = @serializer.deserialize [1234, Time.now.utc - GDS::SSO::Config.auth_valid_for + 3600]
|
42
41
|
|
@@ -44,7 +43,7 @@ describe Warden::SessionSerializer do
|
|
44
43
|
end
|
45
44
|
|
46
45
|
it "should return the user if the timestamp is current and is an ISO 8601 string" do
|
47
|
-
expect(
|
46
|
+
expect(SerializableUser).to receive(:where).with(:uid => 1234, :remotely_signed_out => false).and_return(double(:first => :a_user))
|
48
47
|
|
49
48
|
result = @serializer.deserialize [1234, (Time.now.utc - GDS::SSO::Config.auth_valid_for + 3600).iso8601]
|
50
49
|
|
@@ -52,7 +51,7 @@ describe Warden::SessionSerializer do
|
|
52
51
|
end
|
53
52
|
|
54
53
|
it "should return nil if the timestamp is out of date" do
|
55
|
-
expect(
|
54
|
+
expect(SerializableUser).not_to receive(:where)
|
56
55
|
|
57
56
|
result = @serializer.deserialize [1234, Time.now.utc - GDS::SSO::Config.auth_valid_for - 3600]
|
58
57
|
|
@@ -60,7 +59,7 @@ describe Warden::SessionSerializer do
|
|
60
59
|
end
|
61
60
|
|
62
61
|
it "should return nil for a user without a timestamp" do
|
63
|
-
expect(
|
62
|
+
expect(SerializableUser).not_to receive(:where)
|
64
63
|
|
65
64
|
result = @serializer.deserialize 1234
|
66
65
|
|
@@ -68,7 +67,7 @@ describe Warden::SessionSerializer do
|
|
68
67
|
end
|
69
68
|
|
70
69
|
it "should return nil for a user with a badly formatted timestamp" do
|
71
|
-
expect(
|
70
|
+
expect(SerializableUser).not_to receive(:where)
|
72
71
|
|
73
72
|
result = @serializer.deserialize [1234, 'this is not a timestamp']
|
74
73
|
|
data/spec/unit/user_spec.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'gds-sso/user'
|
3
|
+
require 'gds-sso/lint/user_spec'
|
4
|
+
|
5
|
+
require 'ostruct'
|
3
6
|
|
4
7
|
describe GDS::SSO::User do
|
5
8
|
before :each do
|
@@ -16,4 +19,35 @@ describe GDS::SSO::User do
|
|
16
19
|
expected = {'uid' => 'abcde', 'name' => 'Matt Patterson', 'email' => 'matt@alphagov.co.uk', "permissions" => [], "organisation_slug" => nil}
|
17
20
|
expect(GDS::SSO::User.user_params_from_auth_hash(@auth_hash)).to eq(expected)
|
18
21
|
end
|
22
|
+
|
23
|
+
context "making sure that the lint spec is valid" do
|
24
|
+
class TestUser < OpenStruct
|
25
|
+
include GDS::SSO::User
|
26
|
+
|
27
|
+
def self.where(opts)
|
28
|
+
[]
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.create!(options, scope = {})
|
32
|
+
new(options)
|
33
|
+
end
|
34
|
+
|
35
|
+
def update_attribute(key, value)
|
36
|
+
send("#{key}=".to_sym, value)
|
37
|
+
end
|
38
|
+
|
39
|
+
def update_attributes(options)
|
40
|
+
options.each do |key, value|
|
41
|
+
update_attribute(key, value)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def remotely_signed_out?
|
46
|
+
remotely_signed_out
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
let(:described_class) { TestUser }
|
51
|
+
it_behaves_like "a gds-sso user class"
|
52
|
+
end
|
19
53
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gds-sso
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 9.
|
4
|
+
version: 9.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2014-
|
13
|
+
date: 2014-09-03 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
@@ -211,7 +211,7 @@ dependencies:
|
|
211
211
|
requirements:
|
212
212
|
- - '='
|
213
213
|
- !ruby/object:Gem::Version
|
214
|
-
version: 0.5.
|
214
|
+
version: 0.5.2
|
215
215
|
type: :development
|
216
216
|
prerelease: false
|
217
217
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -219,7 +219,7 @@ dependencies:
|
|
219
219
|
requirements:
|
220
220
|
- - '='
|
221
221
|
- !ruby/object:Gem::Version
|
222
|
-
version: 0.5.
|
222
|
+
version: 0.5.2
|
223
223
|
- !ruby/object:Gem::Dependency
|
224
224
|
name: gem_publisher
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|
@@ -243,7 +243,7 @@ dependencies:
|
|
243
243
|
requirements:
|
244
244
|
- - '='
|
245
245
|
- !ruby/object:Gem::Version
|
246
|
-
version: 1.3.
|
246
|
+
version: 1.3.9
|
247
247
|
type: :development
|
248
248
|
prerelease: false
|
249
249
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -251,7 +251,7 @@ dependencies:
|
|
251
251
|
requirements:
|
252
252
|
- - '='
|
253
253
|
- !ruby/object:Gem::Version
|
254
|
-
version: 1.3.
|
254
|
+
version: 1.3.9
|
255
255
|
- !ruby/object:Gem::Dependency
|
256
256
|
name: timecop
|
257
257
|
requirement: !ruby/object:Gem::Requirement
|
@@ -268,6 +268,22 @@ dependencies:
|
|
268
268
|
- - '='
|
269
269
|
- !ruby/object:Gem::Version
|
270
270
|
version: 0.3.5
|
271
|
+
- !ruby/object:Gem::Dependency
|
272
|
+
name: wwtd
|
273
|
+
requirement: !ruby/object:Gem::Requirement
|
274
|
+
none: false
|
275
|
+
requirements:
|
276
|
+
- - ! '>='
|
277
|
+
- !ruby/object:Gem::Version
|
278
|
+
version: '0'
|
279
|
+
type: :development
|
280
|
+
prerelease: false
|
281
|
+
version_requirements: !ruby/object:Gem::Requirement
|
282
|
+
none: false
|
283
|
+
requirements:
|
284
|
+
- - ! '>='
|
285
|
+
- !ruby/object:Gem::Version
|
286
|
+
version: '0'
|
271
287
|
description: Client for GDS' OAuth 2-based SSO
|
272
288
|
email:
|
273
289
|
- matt@constituentparts.com
|
@@ -289,6 +305,7 @@ files:
|
|
289
305
|
- lib/gds-sso/config.rb
|
290
306
|
- lib/gds-sso/failure_app.rb
|
291
307
|
- lib/gds-sso/warden_config.rb
|
308
|
+
- lib/gds-sso/lint/user_spec.rb
|
292
309
|
- lib/gds-sso/user.rb
|
293
310
|
- lib/gds-sso/api_access.rb
|
294
311
|
- lib/gds-sso.rb
|
@@ -332,7 +349,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
332
349
|
version: '0'
|
333
350
|
segments:
|
334
351
|
- 0
|
335
|
-
hash:
|
352
|
+
hash: 21293373726415033
|
336
353
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
337
354
|
none: false
|
338
355
|
requirements:
|
@@ -341,7 +358,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
341
358
|
version: '0'
|
342
359
|
segments:
|
343
360
|
- 0
|
344
|
-
hash:
|
361
|
+
hash: 21293373726415033
|
345
362
|
requirements: []
|
346
363
|
rubyforge_project: gds-sso
|
347
364
|
rubygems_version: 1.8.23
|