1
0
mirror of https://github.com/MontFerret/ferret.git synced 2025-03-19 21:28:32 +02:00
ferret/pkg/drivers/cookies_test.go
Tim Voronov d55bce325c
Bugfix/#597 headers panic (#598)
* Remodeled HTTPHeaders

* Remodeled HTTPCookies
2021-03-26 12:01:00 -04:00

66 lines
1.5 KiB
Go

package drivers_test
import (
"fmt"
"testing"
"time"
. "github.com/smartystreets/goconvey/convey"
"github.com/wI2L/jettison"
"github.com/MontFerret/ferret/pkg/drivers"
)
func TestHTTPCookies(t *testing.T) {
Convey("HTTPCookies", t, func() {
Convey(".MarshalJSON", func() {
Convey("Should serialize cookies", func() {
expires := time.Now()
headers := drivers.NewHTTPCookiesWith(map[string]drivers.HTTPCookie{
"Session": {
Name: "Session",
Value: "asdfg",
Path: "/",
Domain: "www.google.com",
Expires: expires,
MaxAge: 0,
Secure: true,
HTTPOnly: true,
SameSite: drivers.SameSiteLaxMode,
},
})
out, err := headers.MarshalJSON()
t, e := expires.MarshalJSON()
So(e, ShouldBeNil)
expected := fmt.Sprintf(`{"Session":{"domain":"www.google.com","expires":%s,"http_only":true,"max_age":0,"name":"Session","path":"/","same_site":"Lax","secure":true,"value":"asdfg"}}`, string(t))
So(err, ShouldBeNil)
So(string(out), ShouldEqual, expected)
})
Convey("Should set proper values", func() {
headers := drivers.NewHTTPCookies()
headers.Set(drivers.HTTPCookie{
Name: "Authorization",
Value: "e40b7d5eff464a4fb51efed2d1a19a24",
Path: "/",
Domain: "www.google.com",
Expires: time.Now(),
MaxAge: 0,
Secure: false,
HTTPOnly: false,
SameSite: 0,
})
_, err := jettison.MarshalOpts(headers, jettison.NoHTMLEscaping())
So(err, ShouldBeNil)
})
})
})
}