github.com/chenbh/concourse/v6@v6.4.2/skymarshal/token/middleware_test.go (about) 1 package token_test 2 3 import ( 4 "time" 5 6 "net/http" 7 "net/http/httptest" 8 9 "github.com/chenbh/concourse/v6/skymarshal/token" 10 . "github.com/onsi/ginkgo" 11 . "github.com/onsi/gomega" 12 ) 13 14 var _ = Describe("Token Middleware", func() { 15 16 var ( 17 err error 18 expiry time.Time 19 r *http.Request 20 w *httptest.ResponseRecorder 21 middleware token.Middleware 22 ) 23 24 BeforeEach(func() { 25 expiry = time.Now().Add(time.Minute) 26 27 r, err = http.NewRequest("GET", "http://example.come", nil) 28 Expect(err).NotTo(HaveOccurred()) 29 30 w = httptest.NewRecorder() 31 32 middleware = token.NewMiddleware(false) 33 }) 34 35 Describe("Auth Tokens", func() { 36 Describe("GetAuthToken", func() { 37 var result string 38 39 BeforeEach(func() { 40 r.AddCookie(&http.Cookie{Name: "skymarshal_auth", Value: "blah"}) 41 }) 42 43 JustBeforeEach(func() { 44 result = middleware.GetAuthToken(r) 45 }) 46 47 It("gets the token from the request", func() { 48 Expect(result).To(Equal("blah")) 49 }) 50 }) 51 52 Describe("SetAuthToken", func() { 53 JustBeforeEach(func() { 54 err = middleware.SetAuthToken(w, "blah", expiry) 55 }) 56 57 It("writes the token to a cookie", func() { 58 cookies := w.Result().Cookies() 59 Expect(cookies).To(HaveLen(1)) 60 61 Expect(cookies[0].Name).To(Equal("skymarshal_auth")) 62 Expect(cookies[0].Expires.Unix()).To(Equal(expiry.Unix())) 63 Expect(cookies[0].Value).To(Equal("blah")) 64 }) 65 }) 66 67 Describe("UnsetAuthToken", func() { 68 JustBeforeEach(func() { 69 middleware.UnsetAuthToken(w) 70 }) 71 72 It("clears the token from the cookie", func() { 73 cookies := w.Result().Cookies() 74 Expect(cookies).To(HaveLen(1)) 75 Expect(cookies[0].Name).To(Equal("skymarshal_auth")) 76 Expect(cookies[0].Value).To(Equal("")) 77 }) 78 }) 79 }) 80 81 Describe("CSRF Tokens", func() { 82 83 Describe("GetCSRFToken", func() { 84 var result string 85 86 BeforeEach(func() { 87 r.AddCookie(&http.Cookie{Name: "skymarshal_csrf", Value: "blah"}) 88 }) 89 90 JustBeforeEach(func() { 91 result = middleware.GetCSRFToken(r) 92 }) 93 94 It("gets the token from the request", func() { 95 Expect(result).To(Equal("blah")) 96 }) 97 }) 98 99 Describe("SetCSRFToken", func() { 100 JustBeforeEach(func() { 101 err = middleware.SetCSRFToken(w, "blah", expiry) 102 }) 103 104 It("writes the token to a cookie", func() { 105 cookies := w.Result().Cookies() 106 Expect(cookies).To(HaveLen(1)) 107 Expect(cookies[0].Name).To(Equal("skymarshal_csrf")) 108 Expect(cookies[0].Expires.Unix()).To(Equal(expiry.Unix())) 109 Expect(cookies[0].Value).To(Equal("blah")) 110 }) 111 }) 112 113 Describe("UnsetCSRFToken", func() { 114 JustBeforeEach(func() { 115 middleware.UnsetCSRFToken(w) 116 }) 117 118 It("clears the token from the cookie", func() { 119 cookies := w.Result().Cookies() 120 Expect(cookies).To(HaveLen(1)) 121 Expect(cookies[0].Name).To(Equal("skymarshal_csrf")) 122 Expect(cookies[0].Value).To(Equal("")) 123 }) 124 }) 125 }) 126 127 Describe("State Tokens", func() { 128 129 Describe("GetStateToken", func() { 130 var result string 131 132 BeforeEach(func() { 133 r.AddCookie(&http.Cookie{Name: "skymarshal_state", Value: "blah"}) 134 }) 135 136 JustBeforeEach(func() { 137 result = middleware.GetStateToken(r) 138 }) 139 140 It("gets the token from the request", func() { 141 Expect(result).To(Equal("blah")) 142 }) 143 }) 144 145 Describe("SetStateToken", func() { 146 JustBeforeEach(func() { 147 err = middleware.SetStateToken(w, "blah", expiry) 148 }) 149 150 It("writes the token to a cookie", func() { 151 cookies := w.Result().Cookies() 152 Expect(cookies).To(HaveLen(1)) 153 Expect(cookies[0].Name).To(Equal("skymarshal_state")) 154 Expect(cookies[0].Expires.Unix()).To(Equal(expiry.Unix())) 155 Expect(cookies[0].Value).To(Equal("blah")) 156 }) 157 }) 158 159 Describe("UnsetStateToken", func() { 160 JustBeforeEach(func() { 161 middleware.UnsetStateToken(w) 162 }) 163 164 It("clears the token from the cookie", func() { 165 cookies := w.Result().Cookies() 166 Expect(cookies).To(HaveLen(1)) 167 Expect(cookies[0].Name).To(Equal("skymarshal_state")) 168 Expect(cookies[0].Value).To(Equal("")) 169 }) 170 }) 171 }) 172 })