@@ -27,6 +27,7 @@ var _ = Describe("NewSessionStore", func() {
2727 var request *http.Request
2828 var response *httptest.ResponseRecorder
2929 var session *sessionsapi.SessionState
30+ var ss sessionsapi.SessionStore
3031
3132 CheckCookieOptions := func() {
3233 Context("the cookies returned", func() {
@@ -72,52 +73,54 @@ var _ = Describe("NewSessionStore", func() {
7273 })
7374 }
7475
75− RunCookieTests := func() {
76− var ss sessionsapi.SessionStore
77−
78− Context("with default options", func() {
76+ SessionStoreInterfaceTests := func() {
77+ Context("when SaveSession is called", func() {
7978 BeforeEach(func() {
80− var err error
81− ss, err = sessions.NewSessionStore(opts, cookieOpts)
79+ err := ss.SaveSession(response, request, session)
8280 Expect(err).ToNot(HaveOccurred())
8381 })
8482
85− Context("when SaveSession is called", func() {
86− BeforeEach(func() {
87− err := ss.SaveSession(response, request, session)
88− Expect(err).ToNot(HaveOccurred())
89− })
83+ It("sets a `set-cookie` header in the response", func() {
84+ Expect(response.Header().Get("set-cookie")).ToNot(BeEmpty())
85+ })
9086
91− It("sets a `set-cookie` header in the response", func() {
92− Expect(response.Header().Get("set-cookie")).ToNot(BeEmpty())
93− })
87+ CheckCookieOptions()
88+ })
9489
95− CheckCookieOptions()
90+ Context("when ClearSession is called", func() {
91+ BeforeEach(func() {
92+ cookie := cookies.MakeCookie(request,
93+ cookieOpts.CookieName,
94+ "foo",
95+ cookieOpts.CookiePath,
96+ cookieOpts.CookieDomain,
97+ cookieOpts.CookieHTTPOnly,
98+ cookieOpts.CookieSecure,
99+ cookieOpts.CookieExpire,
100+ time.Now(),
101+ )
102+ request.AddCookie(cookie)
103+ err := ss.ClearSession(response, request)
104+ Expect(err).ToNot(HaveOccurred())
96105 })
97106
98− Context("when ClearSession is called", func() {
99− BeforeEach(func() {
100− cookie := cookies.MakeCookie(request,
101− cookieOpts.CookieName,
102− "foo",
103− cookieOpts.CookiePath,
104− cookieOpts.CookieDomain,
105− cookieOpts.CookieHTTPOnly,
106− cookieOpts.CookieSecure,
107− cookieOpts.CookieExpire,
108− time.Now(),
109− )
110− request.AddCookie(cookie)
111− err := ss.ClearSession(response, request)
112− Expect(err).ToNot(HaveOccurred())
113− })
114−
115− It("sets a `set-cookie` header in the response", func() {
116− Expect(response.Header().Get("set-cookie")).ToNot(BeEmpty())
117− })
118−
119− CheckCookieOptions()
107+ It("sets a `set-cookie` header in the response", func() {
108+ Expect(response.Header().Get("Set-Cookie")).ToNot(BeEmpty())
120109 })
110+
111+ CheckCookieOptions()
112+ })
113+ }
114+
115+ RunCookieTests := func() {
116+ Context("with default options", func() {
117+ BeforeEach(func() {
118+ var err error
119+ ss, err = sessions.NewSessionStore(opts, cookieOpts)
120+ Expect(err).ToNot(HaveOccurred())
121+ })
122+
123+ SessionStoreInterfaceTests()
121124 })
122125
123126 Context("with non-default options", func() {
@@ -137,46 +140,13 @@ var _ = Describe("NewSessionStore", func() {
137140 Expect(err).ToNot(HaveOccurred())
138141 })
139142
140− Context("when SaveSession is called", func() {
141− BeforeEach(func() {
142− err := ss.SaveSession(response, request, session)
143− Expect(err).ToNot(HaveOccurred())
144− })
145−
146− It("sets a `set-cookie` header in the response", func() {
147− Expect(response.Header().Get("set-cookie")).ToNot(BeEmpty())
148− })
143+ SessionStoreInterfaceTests()
149144
150− CheckCookieOptions()
151− })
152−
153− Context("when ClearSession is called", func() {
154− BeforeEach(func() {
155− cookie := cookies.MakeCookie(request,
156− cookieOpts.CookieName,
157− "foo",
158− cookieOpts.CookiePath,
159− cookieOpts.CookieDomain,
160− cookieOpts.CookieHTTPOnly,
161− cookieOpts.CookieSecure,
162− cookieOpts.CookieExpire,
163− time.Now(),
164− )
165− request.AddCookie(cookie)
166− err := ss.ClearSession(response, request)
167− Expect(err).ToNot(HaveOccurred())
168− })
169−
170− It("sets a `set-cookie` header in the response", func() {
171− Expect(response.Header().Get("Set-Cookie")).ToNot(BeEmpty())
172− })
173−
174− CheckCookieOptions()
175− })
176145 })
177146 }
178147
179148 BeforeEach(func() {
149+ ss = nil
180150 opts = &options.SessionOptions{}
181151
182152 // Set default options in CookieOptions