func TestUserSession(t *testing.T) { userStore := store{kUserId} sessionStore := newSessionStoreWithUserId(kSessionId, kUserId) r := requestWithCookie(kSessionCookieName, kSessionId) us, err := session_util.NewUserSession( sessionStore, r, kSessionCookieName, func(s *sessions.Session) session_util.UserSession { return newUserSession(s) }, userStore, errNoSuchId) if err != nil { t.Fatalf("An error happened getting userSession: %v", err) } defer context.Clear(r) myUserSession := us.(*userSession) if output := myUserSession.User; *output != kUserId { t.Errorf("Expected %v, got %v", kUserId, *output) } if myUserSession != session_util.GetUserSession(r) { t.Error("User session not stored with request.") } }
// GetUserSession returns the session associated with the request, r. It // can only be called after successful completion of NewUserSession. func GetUserSession(r *http.Request) *UserSession { return session_util.GetUserSession(r).(*UserSession) }