@@ -198,6 +198,50 @@ func TestSessionManager_Load(T *testing.T) {
198198 t .Error ("returned context is unexpectedly nil" )
199199 }
200200 })
201+
202+ T .Run ("with token hashing" , func (t * testing.T ) {
203+ s := New ()
204+ s .HashTokenInStore = true
205+ s .IdleTimeout = time .Hour * 24
206+
207+ expectedToken := "example"
208+ expectedExpiry := time .Now ().Add (time .Hour )
209+
210+ initialCtx := context .WithValue (context .Background (), s .contextKey , & sessionData {
211+ deadline : expectedExpiry ,
212+ token : expectedToken ,
213+ values : map [string ]interface {}{
214+ "blah" : "blah" ,
215+ },
216+ mu : sync.Mutex {},
217+ })
218+
219+ actualToken , actualExpiry , err := s .Commit (initialCtx )
220+ if expectedToken != actualToken {
221+ t .Errorf ("expected token to equal %q, but received %q" , expectedToken , actualToken )
222+ }
223+ if expectedExpiry != actualExpiry {
224+ t .Errorf ("expected expiry to equal %v, but received %v" , expectedExpiry , actualExpiry )
225+ }
226+ if err != nil {
227+ t .Errorf ("unexpected error returned: %v" , err )
228+ }
229+
230+ retrievedCtx , err := s .Load (context .Background (), expectedToken )
231+ if err != nil {
232+ t .Errorf ("unexpected error returned: %v" , err )
233+ }
234+ retrievedSessionData , ok := retrievedCtx .Value (s .contextKey ).(* sessionData )
235+ if ! ok {
236+ t .Errorf ("unexpected data in retrieved context" )
237+ } else if retrievedSessionData .token != expectedToken {
238+ t .Errorf ("expected token in context's session data data to equal %v, but received %v" , expectedToken , retrievedSessionData .token )
239+ }
240+
241+ if err := s .Destroy (retrievedCtx ); err != nil {
242+ t .Errorf ("unexpected error returned: %v" , err )
243+ }
244+ })
201245}
202246
203247func TestSessionManager_Commit (T * testing.T ) {
@@ -351,52 +395,6 @@ func TestSessionManager_Commit(T *testing.T) {
351395 })
352396}
353397
354- func TestTokenHashing (T * testing.T ) {
355- T .Run ("with token hashing" , func (t * testing.T ) {
356- s := New ()
357- s .HashTokenInStore = true
358- s .IdleTimeout = time .Hour * 24
359-
360- expectedToken := "example"
361- expectedExpiry := time .Now ().Add (time .Hour )
362-
363- initialCtx := context .WithValue (context .Background (), s .contextKey , & sessionData {
364- deadline : expectedExpiry ,
365- token : expectedToken ,
366- values : map [string ]interface {}{
367- "blah" : "blah" ,
368- },
369- mu : sync.Mutex {},
370- })
371-
372- actualToken , actualExpiry , err := s .Commit (initialCtx )
373- if expectedToken != actualToken {
374- t .Errorf ("expected token to equal %q, but received %q" , expectedToken , actualToken )
375- }
376- if expectedExpiry != actualExpiry {
377- t .Errorf ("expected expiry to equal %v, but received %v" , expectedExpiry , actualExpiry )
378- }
379- if err != nil {
380- t .Errorf ("unexpected error returned: %v" , err )
381- }
382-
383- retrievedCtx , err := s .Load (context .Background (), expectedToken )
384- if err != nil {
385- t .Errorf ("unexpected error returned: %v" , err )
386- }
387- retrievedSessionData , ok := retrievedCtx .Value (s .contextKey ).(* sessionData )
388- if ! ok {
389- t .Errorf ("unexpected data in retrieved context" )
390- } else if retrievedSessionData .token != expectedToken {
391- t .Errorf ("expected token in context's session data data to equal %v, but received %v" , expectedToken , retrievedSessionData .token )
392- }
393-
394- if err := s .Destroy (retrievedCtx ); err != nil {
395- t .Errorf ("unexpected error returned: %v" , err )
396- }
397- })
398- }
399-
400398func TestPut (t * testing.T ) {
401399 t .Parallel ()
402400
0 commit comments