MCPcopy
hub / github.com/gofiber/fiber / Test_Bind_Cookie_Schema

Function Test_Bind_Cookie_Schema

bind_test.go:2057–2152  ·  view source on GitHub ↗

go test -run Test_Bind_Cookie_Schema -v

(t *testing.T)

Source from the content-addressed store, hash-verified

2055
2056// go test -run Test_Bind_Cookie_Schema -v
2057func Test_Bind_Cookie_Schema(t *testing.T) {
2058 t.Parallel()
2059
2060 app := New()
2061 c := app.AcquireCtx(&fasthttp.RequestCtx{})
2062
2063 type Cookie1 struct {
2064 Name string `cookie:"Name,required"`
2065 Nested struct {
2066 Age int `cookie:"Age"`
2067 } `cookie:"Nested,required"`
2068 }
2069 c.Request().SetBody([]byte(``))
2070 c.Request().Header.SetContentType("")
2071
2072 c.Request().Header.SetCookie("Name", "tom")
2073 c.Request().Header.SetCookie("Nested.Age", "10")
2074 q := new(Cookie1)
2075 require.NoError(t, c.Bind().Cookie(q))
2076
2077 c.Request().Header.DelCookie("Name")
2078 q = new(Cookie1)
2079 err := c.Bind().Cookie(q)
2080 require.Error(t, err)
2081 require.Equal(t, "bind \"Name\" from cookie: Name is empty", err.Error())
2082 require.ErrorAs(t, err, &MultiError{})
2083
2084 c.Request().Header.SetCookie("Name", "tom")
2085 c.Request().Header.DelCookie("Nested.Age")
2086 c.Request().Header.SetCookie("Nested.Agex", "10")
2087 q = new(Cookie1)
2088 require.NoError(t, c.Bind().Cookie(q))
2089
2090 c.Request().Header.DelCookie("Nested.Agex")
2091 q = new(Cookie1)
2092 err = c.Bind().Cookie(q)
2093 require.Error(t, err)
2094 require.Equal(t, "bind \"Nested\" from cookie: Nested is empty", err.Error())
2095 require.ErrorAs(t, err, &MultiError{})
2096
2097 c.Request().Header.DelCookie("Nested.Agex")
2098 c.Request().Header.DelCookie("Name")
2099
2100 type Cookie2 struct {
2101 Name string `cookie:"Name"`
2102 Nested struct {
2103 Age int `cookie:"Age,required"`
2104 } `cookie:"Nested"`
2105 }
2106
2107 c.Request().Header.SetCookie("Name", "tom")
2108 c.Request().Header.SetCookie("Nested.Age", "10")
2109
2110 h2 := new(Cookie2)
2111 require.NoError(t, c.Bind().Cookie(h2))
2112
2113 c.Request().Header.DelCookie("Name")
2114 h2 = new(Cookie2)

Callers

nothing calls this directly

Calls 7

AcquireCtxMethod · 0.80
NewFunction · 0.70
RequestMethod · 0.65
CookieMethod · 0.65
BindMethod · 0.65
ErrorMethod · 0.65
SetCookieMethod · 0.45

Tested by

no test coverage detected