Run persistent tests with multiple option groups
This commit is contained in:
		
							parent
							
								
									42f14a41d9
								
							
						
					
					
						commit
						bc3d75a2ed
					
				|  | @ -90,7 +90,46 @@ var _ = Describe("NewSessionStore", func() { | ||||||
| 		}) | 		}) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	SessionStoreInterfaceTests := func() { | 	// The following should only be for server stores
 | ||||||
|  | 	PersistentSessionStoreTests := func() { | ||||||
|  | 		Context("when Clear is called on a persistent store", func() { | ||||||
|  | 			var loadedAfterClear *sessionsapi.SessionState | ||||||
|  | 			BeforeEach(func() { | ||||||
|  | 				req := httptest.NewRequest("GET", "http://example.com/", nil) | ||||||
|  | 				saveResp := httptest.NewRecorder() | ||||||
|  | 				err := ss.Save(saveResp, req, session) | ||||||
|  | 				Expect(err).ToNot(HaveOccurred()) | ||||||
|  | 
 | ||||||
|  | 				resultCookies := saveResp.Result().Cookies() | ||||||
|  | 				for _, c := range resultCookies { | ||||||
|  | 					request.AddCookie(c) | ||||||
|  | 				} | ||||||
|  | 				err = ss.Clear(response, request) | ||||||
|  | 				Expect(err).ToNot(HaveOccurred()) | ||||||
|  | 
 | ||||||
|  | 				loadReq := httptest.NewRequest("GET", "http://example.com/", nil) | ||||||
|  | 				for _, c := range resultCookies { | ||||||
|  | 					loadReq.AddCookie(c) | ||||||
|  | 				} | ||||||
|  | 
 | ||||||
|  | 				loadedAfterClear, err = ss.Load(loadReq) | ||||||
|  | 				// If we have cleared the session, Load should fail
 | ||||||
|  | 				Expect(err).To(HaveOccurred()) | ||||||
|  | 			}) | ||||||
|  | 
 | ||||||
|  | 			It("sets a `set-cookie` header in the response", func() { | ||||||
|  | 				Expect(response.Header().Get("Set-Cookie")).ToNot(BeEmpty()) | ||||||
|  | 			}) | ||||||
|  | 
 | ||||||
|  | 			It("attempting to Load returns an empty session", func() { | ||||||
|  | 				Expect(loadedAfterClear).To(BeNil()) | ||||||
|  | 			}) | ||||||
|  | 
 | ||||||
|  | 			CheckCookieOptions() | ||||||
|  | 		}) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	SessionStoreInterfaceTests := func(persistent bool) { | ||||||
| 		Context("when Save is called", func() { | 		Context("when Save is called", func() { | ||||||
| 			BeforeEach(func() { | 			BeforeEach(func() { | ||||||
| 				err := ss.Save(response, request, session) | 				err := ss.Save(response, request, session) | ||||||
|  | @ -167,48 +206,13 @@ var _ = Describe("NewSessionStore", func() { | ||||||
| 				} | 				} | ||||||
| 			}) | 			}) | ||||||
| 		}) | 		}) | ||||||
|  | 
 | ||||||
|  | 		if persistent { | ||||||
|  | 			PersistentSessionStoreTests() | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// The following should only be for server stores
 | 	RunSessionTests := func(persistent bool) { | ||||||
| 	PersistentSessionStoreTests := func() { |  | ||||||
| 		Context("when Clear is called on a persistent store", func() { |  | ||||||
| 			var loadedAfterClear *sessionsapi.SessionState |  | ||||||
| 			BeforeEach(func() { |  | ||||||
| 				req := httptest.NewRequest("GET", "http://example.com/", nil) |  | ||||||
| 				saveResp := httptest.NewRecorder() |  | ||||||
| 				err := ss.Save(saveResp, req, session) |  | ||||||
| 				Expect(err).ToNot(HaveOccurred()) |  | ||||||
| 
 |  | ||||||
| 				resultCookies := saveResp.Result().Cookies() |  | ||||||
| 				for _, c := range resultCookies { |  | ||||||
| 					request.AddCookie(c) |  | ||||||
| 				} |  | ||||||
| 				err = ss.Clear(response, request) |  | ||||||
| 				Expect(err).ToNot(HaveOccurred()) |  | ||||||
| 
 |  | ||||||
| 				loadReq := httptest.NewRequest("GET", "http://example.com/", nil) |  | ||||||
| 				for _, c := range resultCookies { |  | ||||||
| 					loadReq.AddCookie(c) |  | ||||||
| 				} |  | ||||||
| 
 |  | ||||||
| 				loadedAfterClear, err = ss.Load(loadReq) |  | ||||||
| 				// If we have cleared the session, Load should fail
 |  | ||||||
| 				Expect(err).To(HaveOccurred()) |  | ||||||
| 			}) |  | ||||||
| 
 |  | ||||||
| 			It("sets a `set-cookie` header in the response", func() { |  | ||||||
| 				Expect(response.Header().Get("Set-Cookie")).ToNot(BeEmpty()) |  | ||||||
| 			}) |  | ||||||
| 
 |  | ||||||
| 			It("attempting to Load returns an empty session", func() { |  | ||||||
| 				Expect(loadedAfterClear).To(BeNil()) |  | ||||||
| 			}) |  | ||||||
| 
 |  | ||||||
| 			CheckCookieOptions() |  | ||||||
| 		}) |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	RunSessionTests := func() { |  | ||||||
| 		Context("with default options", func() { | 		Context("with default options", func() { | ||||||
| 			BeforeEach(func() { | 			BeforeEach(func() { | ||||||
| 				var err error | 				var err error | ||||||
|  | @ -216,7 +220,7 @@ var _ = Describe("NewSessionStore", func() { | ||||||
| 				Expect(err).ToNot(HaveOccurred()) | 				Expect(err).ToNot(HaveOccurred()) | ||||||
| 			}) | 			}) | ||||||
| 
 | 
 | ||||||
| 			SessionStoreInterfaceTests() | 			SessionStoreInterfaceTests(persistent) | ||||||
| 		}) | 		}) | ||||||
| 
 | 
 | ||||||
| 		Context("with non-default options", func() { | 		Context("with non-default options", func() { | ||||||
|  | @ -236,7 +240,7 @@ var _ = Describe("NewSessionStore", func() { | ||||||
| 				Expect(err).ToNot(HaveOccurred()) | 				Expect(err).ToNot(HaveOccurred()) | ||||||
| 			}) | 			}) | ||||||
| 
 | 
 | ||||||
| 			SessionStoreInterfaceTests() | 			SessionStoreInterfaceTests(persistent) | ||||||
| 		}) | 		}) | ||||||
| 
 | 
 | ||||||
| 		Context("with a cipher", func() { | 		Context("with a cipher", func() { | ||||||
|  | @ -254,19 +258,7 @@ var _ = Describe("NewSessionStore", func() { | ||||||
| 				Expect(err).ToNot(HaveOccurred()) | 				Expect(err).ToNot(HaveOccurred()) | ||||||
| 			}) | 			}) | ||||||
| 
 | 
 | ||||||
| 			SessionStoreInterfaceTests() | 			SessionStoreInterfaceTests(persistent) | ||||||
| 		}) |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	RunPersistentSessionStoreTests := func() { |  | ||||||
| 		Context("with default options", func() { |  | ||||||
| 			BeforeEach(func() { |  | ||||||
| 				var err error |  | ||||||
| 				ss, err = sessions.NewSessionStore(opts, cookieOpts) |  | ||||||
| 				Expect(err).ToNot(HaveOccurred()) |  | ||||||
| 			}) |  | ||||||
| 
 |  | ||||||
| 			PersistentSessionStoreTests() |  | ||||||
| 		}) | 		}) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -309,7 +301,7 @@ var _ = Describe("NewSessionStore", func() { | ||||||
| 		}) | 		}) | ||||||
| 
 | 
 | ||||||
| 		Context("the cookie.SessionStore", func() { | 		Context("the cookie.SessionStore", func() { | ||||||
| 			RunSessionTests() | 			RunSessionTests(false) | ||||||
| 		}) | 		}) | ||||||
| 	}) | 	}) | ||||||
| 
 | 
 | ||||||
|  | @ -330,8 +322,7 @@ var _ = Describe("NewSessionStore", func() { | ||||||
| 		}) | 		}) | ||||||
| 
 | 
 | ||||||
| 		Context("the redis.SessionStore", func() { | 		Context("the redis.SessionStore", func() { | ||||||
| 			RunSessionTests() | 			RunSessionTests(true) | ||||||
| 			RunPersistentSessionStoreTests() |  | ||||||
| 		}) | 		}) | ||||||
| 	}) | 	}) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue