diff --git a/context.go b/context.go index 4bf79860..a636f7aa 100644 --- a/context.go +++ b/context.go @@ -349,13 +349,13 @@ func (c *Context) SetCookie( c.Writer.Header().Add("Set-Cookie", cookie.String()) } -func (c *Context) GetCookie(name string) string { +func (c *Context) GetCookie(name string) (string, error) { cookie, err := c.Request.Cookie(name) if err != nil { - return "" + return "", err } val, _ := url.QueryUnescape(cookie.Value) - return val + return val, nil } func (c *Context) Render(code int, r render.Render) { diff --git a/context_test.go b/context_test.go index 18e54600..c6bb591f 100644 --- a/context_test.go +++ b/context_test.go @@ -248,20 +248,18 @@ func TestContextPostFormMultipart(t *testing.T) { } func TestContextSetCookie(t *testing.T) { - c, w, _ := createTestContext() + c, _, _ := createTestContext() c.SetCookie("user", "gin", 1, "/", "localhost", true, true) - c.SetCookie("user", "gin", int32(1), "/", "localhost", 1) - c.SetCookie("user", "gin", int64(1)) - c.Request, _ = http.NewRequest("GET", "/set", nil) - assert.Equal(t, c.GetCookie("Set-Cookie"), "user=gin; Path=/; Domain=localhost; Max-Age=1; HttpOnly; Secure") + assert.Equal(t, c.Writer.Header().Get("Set-Cookie"), "user=gin; Path=/; Domain=localhost; Max-Age=1; HttpOnly; Secure") } func TestContextGetCookie(t *testing.T) { - c, w, _ := createTestContext() + c, _, _ := createTestContext() c.Request, _ = http.NewRequest("GET", "/get", nil) c.Request.Header.Set("Cookie", "user=gin") - assert.Equal(t, c.GetCookie("Cookie"), "gin") + cookie, _ := c.GetCookie("user") + assert.Equal(t, cookie, "gin") } // Tests that the response is serialized as JSON