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

Function Test_Bind_Header

bind_test.go:685–757  ·  view source on GitHub ↗

go test -run Test_Bind_Header -v

(t *testing.T)

Source from the content-addressed store, hash-verified

683
684// go test -run Test_Bind_Header -v
685func Test_Bind_Header(t *testing.T) {
686 t.Parallel()
687 app := New()
688 c := app.AcquireCtx(&fasthttp.RequestCtx{})
689
690 type Header struct {
691 Name string
692 Hobby []string
693 ID int
694 }
695 c.Request().SetBody([]byte(``))
696 c.Request().Header.SetContentType("")
697
698 c.Request().Header.Add("id", "1")
699 c.Request().Header.Add("Name", "John Doe")
700 c.Request().Header.Add("Hobby", "golang,fiber")
701 q := new(Header)
702 require.NoError(t, c.Bind().Header(q))
703 require.Len(t, q.Hobby, 1)
704
705 c.Request().Header.Del("hobby")
706 c.Request().Header.Add("Hobby", "golang,fiber,go")
707 q = new(Header)
708 require.NoError(t, c.Bind().Header(q))
709 require.Len(t, q.Hobby, 1)
710
711 empty := new(Header)
712 c.Request().Header.Del("hobby")
713 require.NoError(t, c.Bind().Query(empty))
714 require.Empty(t, empty.Hobby)
715
716 type Header2 struct {
717 Name string
718 Hobby string
719 FavouriteDrinks []string
720 Empty []string
721 Alloc []string
722 No []int64
723 ID int
724 Bool bool
725 }
726
727 c.Request().Header.Add("id", "2")
728 c.Request().Header.Add("Name", "Jane Doe")
729 c.Request().Header.Del("hobby")
730 c.Request().Header.Add("Hobby", "go,fiber")
731 c.Request().Header.Add("favouriteDrinks", "milo,coke,pepsi")
732 c.Request().Header.Add("alloc", "")
733 c.Request().Header.Add("no", "1")
734
735 h2 := new(Header2)
736 h2.Bool = true
737 h2.Name = helloWorld
738 require.NoError(t, c.Bind().Header(h2))
739 require.Equal(t, "go,fiber", h2.Hobby)
740 require.True(t, h2.Bool)
741 require.Equal(t, "Jane Doe", h2.Name) // check value get overwritten
742 require.Equal(t, []string{"milo,coke,pepsi"}, h2.FavouriteDrinks)

Callers

nothing calls this directly

Calls 10

AcquireCtxMethod · 0.80
NewFunction · 0.70
RequestMethod · 0.65
AddMethod · 0.65
BindMethod · 0.65
LenMethod · 0.65
DelMethod · 0.65
QueryMethod · 0.65
ErrorMethod · 0.65
HeaderMethod · 0.45

Tested by

no test coverage detected