mirror of
https://github.com/MontFerret/ferret.git
synced 2025-03-19 21:28:32 +02:00
66 lines
1.5 KiB
Go
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)
|
|
})
|
|
})
|
|
})
|
|
}
|