go test -run Test_Bind_Cookie_Schema -v
(t *testing.T)
| 2055 | |
| 2056 | // go test -run Test_Bind_Cookie_Schema -v |
| 2057 | func 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) |