github.com/rjeczalik/buffalo@v0.11.1/cookies_test.go (about) 1 package buffalo 2 3 import ( 4 "net/http" 5 "net/http/httptest" 6 "testing" 7 "time" 8 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestCookies_Get(t *testing.T) { 13 r := require.New(t) 14 req := httptest.NewRequest("POST", "/", nil) 15 req.Header.Set("Cookie", "name=Arthur Dent; answer=42") 16 17 c := Cookies{req, nil} 18 19 v, err := c.Get("name") 20 r.NoError(err) 21 r.Equal("Arthur Dent", v) 22 23 v, err = c.Get("answer") 24 r.NoError(err) 25 r.Equal("42", v) 26 27 _, err = c.Get("unknown") 28 r.EqualError(err, http.ErrNoCookie.Error()) 29 } 30 31 func TestCookies_Set(t *testing.T) { 32 r := require.New(t) 33 res := httptest.NewRecorder() 34 35 c := Cookies{&http.Request{}, res} 36 37 c.Set("name", "Rob Pike", time.Hour*24) 38 39 h := res.Header().Get("Set-Cookie") 40 r.Equal("name=\"Rob Pike\"; Max-Age=86400", h) 41 } 42 43 func TestCookies_SetWithExpirationTime(t *testing.T) { 44 r := require.New(t) 45 res := httptest.NewRecorder() 46 47 c := Cookies{&http.Request{}, res} 48 49 e := time.Date(2017, 7, 29, 19, 28, 45, 0, time.UTC) 50 c.SetWithExpirationTime("name", "Rob Pike", e) 51 52 h := res.Header().Get("Set-Cookie") 53 r.Equal("name=\"Rob Pike\"; Expires=Sat, 29 Jul 2017 19:28:45 GMT", h) 54 } 55 56 func TestCookies_Delete(t *testing.T) { 57 r := require.New(t) 58 res := httptest.NewRecorder() 59 60 c := Cookies{&http.Request{}, res} 61 62 c.Delete("remove-me") 63 64 h := res.Header().Get("Set-Cookie") 65 r.Equal("remove-me=v; Expires=Thu, 01 Jan 1970 00:00:00 GMT", h) 66 }