go test -run Test_Ctx_Is
(t *testing.T)
| 3956 | |
| 3957 | // go test -run Test_Ctx_Is |
| 3958 | func Test_Ctx_Is(t *testing.T) { |
| 3959 | t.Parallel() |
| 3960 | app := New() |
| 3961 | c := app.AcquireCtx(&fasthttp.RequestCtx{}) |
| 3962 | |
| 3963 | c.Request().Header.Set(HeaderContentType, MIMETextHTML+"; boundary=something") |
| 3964 | require.True(t, c.Is(".html")) |
| 3965 | require.True(t, c.Is("html")) |
| 3966 | require.False(t, c.Is("json")) |
| 3967 | require.False(t, c.Is(".json")) |
| 3968 | require.False(t, c.Is("")) |
| 3969 | require.False(t, c.Is(".foooo")) |
| 3970 | |
| 3971 | c.Request().Header.Set(HeaderContentType, MIMEApplicationJSONCharsetUTF8) |
| 3972 | require.False(t, c.Is("html")) |
| 3973 | require.True(t, c.Is("json")) |
| 3974 | require.True(t, c.Is(".json")) |
| 3975 | |
| 3976 | c.Request().Header.Set(HeaderContentType, " application/json;charset=UTF-8") |
| 3977 | require.False(t, c.Is("html")) |
| 3978 | require.True(t, c.Is("json")) |
| 3979 | require.True(t, c.Is(".json")) |
| 3980 | |
| 3981 | c.Request().Header.Set(HeaderContentType, MIMEApplicationXMLCharsetUTF8) |
| 3982 | require.False(t, c.Is("html")) |
| 3983 | require.True(t, c.Is("xml")) |
| 3984 | require.True(t, c.Is(".xml")) |
| 3985 | |
| 3986 | c.Request().Header.Set(HeaderContentType, MIMETextPlain) |
| 3987 | require.False(t, c.Is("html")) |
| 3988 | require.True(t, c.Is("txt")) |
| 3989 | require.True(t, c.Is(".txt")) |
| 3990 | |
| 3991 | // case-insensitive and trimmed |
| 3992 | c.Request().Header.Set(HeaderContentType, "APPLICATION/JSON; charset=utf-8") |
| 3993 | require.True(t, c.Is("json")) |
| 3994 | require.True(t, c.Is(".json")) |
| 3995 | |
| 3996 | // mismatched subtype should not match |
| 3997 | c.Request().Header.Set(HeaderContentType, "application/json+xml") |
| 3998 | require.False(t, c.Is("json")) |
| 3999 | require.False(t, c.Is(".json")) |
| 4000 | } |
| 4001 | |
| 4002 | // go test -v -run=^$ -bench=Benchmark_Ctx_Is -benchmem -count=4 |
| 4003 | func Benchmark_Ctx_Is(b *testing.B) { |
nothing calls this directly
no test coverage detected