mirror of
https://github.com/gin-gonic/gin.git
synced 2025-05-22 20:49:23 +08:00
feat(context): add SetCookieStruct (#4215)
This commit is contained in:
parent
f348e695ed
commit
cc76014ea3
@ -3127,6 +3127,7 @@ func TestContextNext(t *testing.T) {
|
|||||||
func TestContextSetCookieStruct(t *testing.T) {
|
func TestContextSetCookieStruct(t *testing.T) {
|
||||||
c, _ := CreateTestContext(httptest.NewRecorder())
|
c, _ := CreateTestContext(httptest.NewRecorder())
|
||||||
c.SetSameSite(http.SameSiteLaxMode)
|
c.SetSameSite(http.SameSiteLaxMode)
|
||||||
|
var setCookie string
|
||||||
|
|
||||||
// Basic cookie settings
|
// Basic cookie settings
|
||||||
cookie := &http.Cookie{
|
cookie := &http.Cookie{
|
||||||
@ -3139,7 +3140,14 @@ func TestContextSetCookieStruct(t *testing.T) {
|
|||||||
HttpOnly: true,
|
HttpOnly: true,
|
||||||
}
|
}
|
||||||
c.SetCookieStruct(cookie)
|
c.SetCookieStruct(cookie)
|
||||||
assert.Equal(t, "user=gin; Path=/; Domain=localhost; Max-Age=1; HttpOnly; Secure; SameSite=Lax", c.Writer.Header().Get("Set-Cookie"))
|
setCookie = c.Writer.Header().Get("Set-Cookie")
|
||||||
|
assert.Contains(t, setCookie, "user=gin")
|
||||||
|
assert.Contains(t, setCookie, "Path=/")
|
||||||
|
assert.Contains(t, setCookie, "Domain=localhost")
|
||||||
|
assert.Contains(t, setCookie, "Max-Age=1")
|
||||||
|
assert.Contains(t, setCookie, "HttpOnly")
|
||||||
|
assert.Contains(t, setCookie, "Secure")
|
||||||
|
assert.Contains(t, setCookie, "SameSite=Lax")
|
||||||
|
|
||||||
// Test that when Path is empty, "/" is automatically set
|
// Test that when Path is empty, "/" is automatically set
|
||||||
cookie = &http.Cookie{
|
cookie = &http.Cookie{
|
||||||
@ -3152,7 +3160,14 @@ func TestContextSetCookieStruct(t *testing.T) {
|
|||||||
HttpOnly: true,
|
HttpOnly: true,
|
||||||
}
|
}
|
||||||
c.SetCookieStruct(cookie)
|
c.SetCookieStruct(cookie)
|
||||||
assert.Equal(t, "user=gin; Path=/; Domain=localhost; Max-Age=1; HttpOnly; Secure; SameSite=Lax", c.Writer.Header().Get("Set-Cookie"))
|
setCookie = c.Writer.Header().Get("Set-Cookie")
|
||||||
|
assert.Contains(t, setCookie, "user=gin")
|
||||||
|
assert.Contains(t, setCookie, "Path=/")
|
||||||
|
assert.Contains(t, setCookie, "Domain=localhost")
|
||||||
|
assert.Contains(t, setCookie, "Max-Age=1")
|
||||||
|
assert.Contains(t, setCookie, "HttpOnly")
|
||||||
|
assert.Contains(t, setCookie, "Secure")
|
||||||
|
assert.Contains(t, setCookie, "SameSite=Lax")
|
||||||
|
|
||||||
// Test additional cookie attributes (Expires)
|
// Test additional cookie attributes (Expires)
|
||||||
expireTime := time.Now().Add(24 * time.Hour)
|
expireTime := time.Now().Add(24 * time.Hour)
|
||||||
@ -3168,7 +3183,7 @@ func TestContextSetCookieStruct(t *testing.T) {
|
|||||||
c.SetCookieStruct(cookie)
|
c.SetCookieStruct(cookie)
|
||||||
|
|
||||||
// Since the Expires value varies by time, partially verify with Contains
|
// Since the Expires value varies by time, partially verify with Contains
|
||||||
setCookie := c.Writer.Header().Get("Set-Cookie")
|
setCookie = c.Writer.Header().Get("Set-Cookie")
|
||||||
assert.Contains(t, setCookie, "user=gin")
|
assert.Contains(t, setCookie, "user=gin")
|
||||||
assert.Contains(t, setCookie, "Path=/")
|
assert.Contains(t, setCookie, "Path=/")
|
||||||
assert.Contains(t, setCookie, "Domain=localhost")
|
assert.Contains(t, setCookie, "Domain=localhost")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user