@@ -1,4 +1,4 @@
1−package providers
1+package sessions_test
@@ -6,6 +6,7 @@ import (
8 "github.com/pusher/oauth2_proxy/cookie"
8 "github.com/pusher/oauth2_proxy/cookie"
9+ "github.com/pusher/oauth2_proxy/pkg/apis/sessions"
9 "github.com/stretchr/testify/assert"
10 "github.com/stretchr/testify/assert"
@@ -17,7 +18,7 @@ func TestSessionStateSerialization(t *testing.T) {
17 assert.Equal(t, nil, err)
18 assert.Equal(t, nil, err)
18 c2, err := cookie.NewCipher([]byte(altSecret))
19 c2, err := cookie.NewCipher([]byte(altSecret))
19 assert.Equal(t, nil, err)
20 assert.Equal(t, nil, err)
20− s := &SessionState{
21+ s := &sessions.SessionState{
21 Email: "user@domain.com",
22 Email: "user@domain.com",
22 AccessToken: "token1234",
23 AccessToken: "token1234",
23 IDToken: "rawtoken1234",
24 IDToken: "rawtoken1234",
@@ -27,7 +28,7 @@ func TestSessionStateSerialization(t *testing.T) {
27 encoded, err := s.EncodeSessionState(c)
28 encoded, err := s.EncodeSessionState(c)
28 assert.Equal(t, nil, err)
29 assert.Equal(t, nil, err)
30− ss, err := DecodeSessionState(encoded, c)
31+ ss, err := sessions.DecodeSessionState(encoded, c)
31 t.Logf("%#v", ss)
32 t.Logf("%#v", ss)
32 assert.Equal(t, nil, err)
33 assert.Equal(t, nil, err)
33 assert.Equal(t, "user@domain.com", ss.User)
34 assert.Equal(t, "user@domain.com", ss.User)
@@ -38,7 +39,7 @@ func TestSessionStateSerialization(t *testing.T) {
38 assert.Equal(t, s.RefreshToken, ss.RefreshToken)
39 assert.Equal(t, s.RefreshToken, ss.RefreshToken)
40 // ensure a different cipher can't decode properly (ie: it gets gibberish)
41 // ensure a different cipher can't decode properly (ie: it gets gibberish)
41− ss, err = DecodeSessionState(encoded, c2)
42+ ss, err = sessions.DecodeSessionState(encoded, c2)
42 t.Logf("%#v", ss)
43 t.Logf("%#v", ss)
43 assert.Equal(t, nil, err)
44 assert.Equal(t, nil, err)
44 assert.NotEqual(t, "user@domain.com", ss.User)
45 assert.NotEqual(t, "user@domain.com", ss.User)
@@ -54,7 +55,7 @@ func TestSessionStateSerializationWithUser(t *testing.T) {
54 assert.Equal(t, nil, err)
55 assert.Equal(t, nil, err)
55 c2, err := cookie.NewCipher([]byte(altSecret))
56 c2, err := cookie.NewCipher([]byte(altSecret))
56 assert.Equal(t, nil, err)
57 assert.Equal(t, nil, err)
57− s := &SessionState{
58+ s := &sessions.SessionState{
58 User: "just-user",
59 User: "just-user",
59 Email: "user@domain.com",
60 Email: "user@domain.com",
60 AccessToken: "token1234",
61 AccessToken: "token1234",
@@ -64,7 +65,7 @@ func TestSessionStateSerializationWithUser(t *testing.T) {
64 encoded, err := s.EncodeSessionState(c)
65 encoded, err := s.EncodeSessionState(c)
65 assert.Equal(t, nil, err)
66 assert.Equal(t, nil, err)
67− ss, err := DecodeSessionState(encoded, c)
68+ ss, err := sessions.DecodeSessionState(encoded, c)
68 t.Logf("%#v", ss)
69 t.Logf("%#v", ss)
69 assert.Equal(t, nil, err)
70 assert.Equal(t, nil, err)
70 assert.Equal(t, s.User, ss.User)
71 assert.Equal(t, s.User, ss.User)
@@ -74,7 +75,7 @@ func TestSessionStateSerializationWithUser(t *testing.T) {
74 assert.Equal(t, s.RefreshToken, ss.RefreshToken)
75 assert.Equal(t, s.RefreshToken, ss.RefreshToken)
76 // ensure a different cipher can't decode properly (ie: it gets gibberish)
77 // ensure a different cipher can't decode properly (ie: it gets gibberish)
77− ss, err = DecodeSessionState(encoded, c2)
78+ ss, err = sessions.DecodeSessionState(encoded, c2)
78 t.Logf("%#v", ss)
79 t.Logf("%#v", ss)
79 assert.Equal(t, nil, err)
80 assert.Equal(t, nil, err)
80 assert.NotEqual(t, s.User, ss.User)
81 assert.NotEqual(t, s.User, ss.User)
@@ -85,7 +86,7 @@ func TestSessionStateSerializationWithUser(t *testing.T) {
87func TestSessionStateSerializationNoCipher(t *testing.T) {
88func TestSessionStateSerializationNoCipher(t *testing.T) {
88− s := &SessionState{
89+ s := &sessions.SessionState{
89 Email: "user@domain.com",
90 Email: "user@domain.com",
90 AccessToken: "token1234",
91 AccessToken: "token1234",
91 ExpiresOn: time.Now().Add(time.Duration(1) * time.Hour),
92 ExpiresOn: time.Now().Add(time.Duration(1) * time.Hour),
@@ -95,7 +96,7 @@ func TestSessionStateSerializationNoCipher(t *testing.T) {
95 assert.Equal(t, nil, err)
96 assert.Equal(t, nil, err)
97 // only email should have been serialized
98 // only email should have been serialized
98− ss, err := DecodeSessionState(encoded, nil)
99+ ss, err := sessions.DecodeSessionState(encoded, nil)
99 assert.Equal(t, nil, err)
100 assert.Equal(t, nil, err)
100 assert.Equal(t, "user@domain.com", ss.User)
101 assert.Equal(t, "user@domain.com", ss.User)
101 assert.Equal(t, s.Email, ss.Email)
102 assert.Equal(t, s.Email, ss.Email)
@@ -104,7 +105,7 @@ func TestSessionStateSerializationNoCipher(t *testing.T) {
106func TestSessionStateSerializationNoCipherWithUser(t *testing.T) {
107func TestSessionStateSerializationNoCipherWithUser(t *testing.T) {
107− s := &SessionState{
108+ s := &sessions.SessionState{
108 User: "just-user",
109 User: "just-user",
109 Email: "user@domain.com",
110 Email: "user@domain.com",
110 AccessToken: "token1234",
111 AccessToken: "token1234",
@@ -115,7 +116,7 @@ func TestSessionStateSerializationNoCipherWithUser(t *testing.T) {
115 assert.Equal(t, nil, err)
116 assert.Equal(t, nil, err)
117 // only email should have been serialized
118 // only email should have been serialized
118− ss, err := DecodeSessionState(encoded, nil)
119+ ss, err := sessions.DecodeSessionState(encoded, nil)
119 assert.Equal(t, nil, err)
120 assert.Equal(t, nil, err)
120 assert.Equal(t, s.User, ss.User)
121 assert.Equal(t, s.User, ss.User)
121 assert.Equal(t, s.Email, ss.Email)
122 assert.Equal(t, s.Email, ss.Email)
@@ -124,18 +125,18 @@ func TestSessionStateSerializationNoCipherWithUser(t *testing.T) {
126func TestExpired(t *testing.T) {
127func TestExpired(t *testing.T) {
127− s := &SessionState{ExpiresOn: time.Now().Add(time.Duration(-1) * time.Minute)}
128+ s := &sessions.SessionState{ExpiresOn: time.Now().Add(time.Duration(-1) * time.Minute)}
128 assert.Equal(t, true, s.IsExpired())
129 assert.Equal(t, true, s.IsExpired())
130− s = &SessionState{ExpiresOn: time.Now().Add(time.Duration(1) * time.Minute)}
131+ s = &sessions.SessionState{ExpiresOn: time.Now().Add(time.Duration(1) * time.Minute)}
131 assert.Equal(t, false, s.IsExpired())
132 assert.Equal(t, false, s.IsExpired())
133− s = &SessionState{}
134+ s = &sessions.SessionState{}
134 assert.Equal(t, false, s.IsExpired())
135 assert.Equal(t, false, s.IsExpired())
137type testCase struct {
138type testCase struct {
138− SessionState
139+ sessions.SessionState
139 Encoded string
140 Encoded string
140 Cipher *cookie.Cipher
141 Cipher *cookie.Cipher
141 Error bool
142 Error bool
@@ -150,14 +151,14 @@ func TestEncodeSessionState(t *testing.T) {
151 testCases := []testCase{
152 testCases := []testCase{
153− SessionState: SessionState{
154+ SessionState: sessions.SessionState{
154 Email: "user@domain.com",
155 Email: "user@domain.com",
155 User: "just-user",
156 User: "just-user",
157 Encoded: `{"Email":"user@domain.com","User":"just-user"}`,
158 Encoded: `{"Email":"user@domain.com","User":"just-user"}`,
160− SessionState: SessionState{
161+ SessionState: sessions.SessionState{
161 Email: "user@domain.com",
162 Email: "user@domain.com",
162 User: "just-user",
163 User: "just-user",
163 AccessToken: "token1234",
164 AccessToken: "token1234",
@@ -171,7 +172,7 @@ func TestEncodeSessionState(t *testing.T) {
172 for i, tc := range testCases {
173 for i, tc := range testCases {
173 encoded, err := tc.EncodeSessionState(tc.Cipher)
174 encoded, err := tc.EncodeSessionState(tc.Cipher)
174− t.Logf("i:%d Encoded:%#v SessionState:%#v Error:%#v", i, encoded, tc.SessionState, err)
175+ t.Logf("i:%d Encoded:%#vsessions.SessionState:%#v Error:%#v", i, encoded, tc.SessionState, err)
175 if tc.Error {
176 if tc.Error {
176 assert.Error(t, err)
177 assert.Error(t, err)
177 assert.Empty(t, encoded)
178 assert.Empty(t, encoded)
@@ -182,7 +183,7 @@ func TestEncodeSessionState(t *testing.T) {
185−// TestDecodeSessionState tests DecodeSessionState with the test vector
186+// TestDecodeSessionState testssessions.DecodeSessionState with the test vector
186func TestDecodeSessionState(t *testing.T) {
187func TestDecodeSessionState(t *testing.T) {
187 e := time.Now().Add(time.Duration(1) * time.Hour)
188 e := time.Now().Add(time.Duration(1) * time.Hour)
188 eJSON, _ := e.MarshalJSON()
189 eJSON, _ := e.MarshalJSON()
@@ -194,34 +195,34 @@ func TestDecodeSessionState(t *testing.T) {
195 testCases := []testCase{
196 testCases := []testCase{
197− SessionState: SessionState{
198+ SessionState: sessions.SessionState{
198 Email: "user@domain.com",
199 Email: "user@domain.com",
199 User: "just-user",
200 User: "just-user",
201 Encoded: `{"Email":"user@domain.com","User":"just-user"}`,
202 Encoded: `{"Email":"user@domain.com","User":"just-user"}`,
204− SessionState: SessionState{
205+ SessionState: sessions.SessionState{
205 Email: "user@domain.com",
206 Email: "user@domain.com",
206 User: "user@domain.com",
207 User: "user@domain.com",
208 Encoded: `{"Email":"user@domain.com"}`,
209 Encoded: `{"Email":"user@domain.com"}`,
211− SessionState: SessionState{
212+ SessionState: sessions.SessionState{
212 User: "just-user",
213 User: "just-user",
214 Encoded: `{"User":"just-user"}`,
215 Encoded: `{"User":"just-user"}`,
217− SessionState: SessionState{
218+ SessionState: sessions.SessionState{
218 Email: "user@domain.com",
219 Email: "user@domain.com",
219 User: "just-user",
220 User: "just-user",
221 Encoded: fmt.Sprintf(`{"Email":"user@domain.com","User":"just-user","AccessToken":"I6s+ml+/MldBMgHIiC35BTKTh57skGX24w==","IDToken":"xojNdyyjB1HgYWh6XMtXY/Ph5eCVxa1cNsklJw==","RefreshToken":"qEX0x6RmASxo4dhlBG6YuRs9Syn/e9sHu/+K","ExpiresOn":%s}`, eString),
222 Encoded: fmt.Sprintf(`{"Email":"user@domain.com","User":"just-user","AccessToken":"I6s+ml+/MldBMgHIiC35BTKTh57skGX24w==","IDToken":"xojNdyyjB1HgYWh6XMtXY/Ph5eCVxa1cNsklJw==","RefreshToken":"qEX0x6RmASxo4dhlBG6YuRs9Syn/e9sHu/+K","ExpiresOn":%s}`, eString),
224− SessionState: SessionState{
225+ SessionState: sessions.SessionState{
225 Email: "user@domain.com",
226 Email: "user@domain.com",
226 User: "just-user",
227 User: "just-user",
227 AccessToken: "token1234",
228 AccessToken: "token1234",
@@ -233,7 +234,7 @@ func TestDecodeSessionState(t *testing.T) {
233 Cipher: c,
234 Cipher: c,
236− SessionState: SessionState{
237+ SessionState: sessions.SessionState{
237 Email: "user@domain.com",
238 Email: "user@domain.com",
238 User: "just-user",
239 User: "just-user",
@@ -251,7 +252,7 @@ func TestDecodeSessionState(t *testing.T) {
251 Error: true,
252 Error: true,
254− SessionState: SessionState{
255+ SessionState: sessions.SessionState{
255 User: "just-user",
256 User: "just-user",
256 Email: "user@domain.com",
257 Email: "user@domain.com",
@@ -272,7 +273,7 @@ func TestDecodeSessionState(t *testing.T) {
272 Error: true,
273 Error: true,
275− SessionState: SessionState{
276+ SessionState: sessions.SessionState{
276 Email: "user@domain.com",
277 Email: "user@domain.com",
277 User: "just-user",
278 User: "just-user",
278 AccessToken: "token1234",
279 AccessToken: "token1234",
@@ -283,7 +284,7 @@ func TestDecodeSessionState(t *testing.T) {
283 Cipher: c,
284 Cipher: c,
286− SessionState: SessionState{
287+ SessionState: sessions.SessionState{
287 Email: "user@domain.com",
288 Email: "user@domain.com",
288 User: "just-user",
289 User: "just-user",
289 AccessToken: "token1234",
290 AccessToken: "token1234",
@@ -297,8 +298,8 @@ func TestDecodeSessionState(t *testing.T) {
299 for i, tc := range testCases {
300 for i, tc := range testCases {
300− ss, err := DecodeSessionState(tc.Encoded, tc.Cipher)
301+ ss, err := sessions.DecodeSessionState(tc.Encoded, tc.Cipher)
301− t.Logf("i:%d Encoded:%#v SessionState:%#v Error:%#v", i, tc.Encoded, ss, err)
302+ t.Logf("i:%d Encoded:%#vsessions.SessionState:%#v Error:%#v", i, tc.Encoded, ss, err)
302 if tc.Error {
303 if tc.Error {
303 assert.Error(t, err)
304 assert.Error(t, err)
304 assert.Nil(t, ss)
305 assert.Nil(t, ss)