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

Function Test_Ctx_Queries

ctx_test.go:8736–8782  ·  view source on GitHub ↗

go test -run Test_Ctx_Queries -v

(t *testing.T)

Source from the content-addressed store, hash-verified

8734
8735// go test -run Test_Ctx_Queries -v
8736func Test_Ctx_Queries(t *testing.T) {
8737 t.Parallel()
8738 app := New()
8739 c := app.AcquireCtx(&fasthttp.RequestCtx{})
8740
8741 c.Request().SetBody([]byte(``))
8742 c.Request().Header.SetContentType("")
8743 c.Request().URI().SetQueryString("id=1&name=tom&hobby=basketball,football&favouriteDrinks=milo,coke,pepsi&alloc=&no=1&field1=value1&field1=value2&field2=value3&list_a=1&list_a=2&list_a=3&list_b[]=1&list_b[]=2&list_b[]=3&list_c=1,2,3")
8744
8745 queries := c.Queries()
8746 require.Equal(t, "1", queries["id"])
8747 require.Equal(t, "tom", queries["name"])
8748 require.Equal(t, "basketball,football", queries["hobby"])
8749 require.Equal(t, "milo,coke,pepsi", queries["favouriteDrinks"])
8750 require.Empty(t, queries["alloc"])
8751 require.Equal(t, "1", queries["no"])
8752 require.Equal(t, "value2", queries["field1"])
8753 require.Equal(t, "value3", queries["field2"])
8754 require.Equal(t, "3", queries["list_a"])
8755 require.Equal(t, "3", queries["list_b[]"])
8756 require.Equal(t, "1,2,3", queries["list_c"])
8757
8758 c.Request().URI().SetQueryString("filters.author.name=John&filters.category.name=Technology&filters[customer][name]=Alice&filters[status]=pending")
8759
8760 queries = c.Queries()
8761 require.Equal(t, "John", queries["filters.author.name"])
8762 require.Equal(t, "Technology", queries["filters.category.name"])
8763 require.Equal(t, "Alice", queries["filters[customer][name]"])
8764 require.Equal(t, "pending", queries["filters[status]"])
8765
8766 c.Request().URI().SetQueryString("tags=apple,orange,banana&filters[tags]=apple,orange,banana&filters[category][name]=fruits&filters.tags=apple,orange,banana&filters.category.name=fruits")
8767
8768 queries = c.Req().Queries()
8769 require.Equal(t, "apple,orange,banana", queries["tags"])
8770 require.Equal(t, "apple,orange,banana", queries["filters[tags]"])
8771 require.Equal(t, "fruits", queries["filters[category][name]"])
8772 require.Equal(t, "apple,orange,banana", queries["filters.tags"])
8773 require.Equal(t, "fruits", queries["filters.category.name"])
8774
8775 c.Request().URI().SetQueryString("filters[tags][0]=apple&filters[tags][1]=orange&filters[tags][2]=banana&filters[category][name]=fruits")
8776
8777 queries = c.Queries()
8778 require.Equal(t, "apple", queries["filters[tags][0]"])
8779 require.Equal(t, "orange", queries["filters[tags][1]"])
8780 require.Equal(t, "banana", queries["filters[tags][2]"])
8781 require.Equal(t, "fruits", queries["filters[category][name]"])
8782}
8783
8784// go test -v -run=^$ -bench=Benchmark_Ctx_Queries -benchmem -count=4
8785func Benchmark_Ctx_Queries(b *testing.B) {

Callers

nothing calls this directly

Calls 6

AcquireCtxMethod · 0.80
URIMethod · 0.80
NewFunction · 0.70
RequestMethod · 0.65
QueriesMethod · 0.65
ReqMethod · 0.65

Tested by

no test coverage detected