github.com/travisturner/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  }