MCPcopy
hub / github.com/gin-gonic/gin / TestContextInitQueryCache

Function TestContextInitQueryCache

context_test.go:761–801  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

759}
760
761func TestContextInitQueryCache(t *testing.T) {
762 validURL, err := url.Parse("https://github.com/gin-gonic/gin/pull/3969?key=value&otherkey=othervalue")
763 require.NoError(t, err)
764
765 tests := []struct {
766 testName string
767 testContext *Context
768 expectedQueryCache url.Values
769 }{
770 {
771 testName: "queryCache should remain unchanged if already not nil",
772 testContext: &Context{
773 queryCache: url.Values{"a": []string{"b"}},
774 Request: &http.Request{URL: validURL}, // valid request for evidence that values weren't extracted
775 },
776 expectedQueryCache: url.Values{"a": []string{"b"}},
777 },
778 {
779 testName: "queryCache should be empty when Request is nil",
780 testContext: &Context{Request: nil}, // explicit nil for readability
781 expectedQueryCache: url.Values{},
782 },
783 {
784 testName: "queryCache should be empty when Request.URL is nil",
785 testContext: &Context{Request: &http.Request{URL: nil}}, // explicit nil for readability
786 expectedQueryCache: url.Values{},
787 },
788 {
789 testName: "queryCache should be populated when it not yet populated and Request + Request.URL are non nil",
790 testContext: &Context{Request: &http.Request{URL: validURL}}, // explicit nil for readability
791 expectedQueryCache: url.Values{"key": []string{"value"}, "otherkey": []string{"othervalue"}},
792 },
793 }
794
795 for _, test := range tests {
796 t.Run(test.testName, func(t *testing.T) {
797 test.testContext.initQueryCache()
798 assert.Equal(t, test.expectedQueryCache, test.testContext.queryCache)
799 })
800 }
801}
802
803func TestContextDefaultQueryOnEmptyRequest(t *testing.T) {
804 c, _ := CreateTestContext(httptest.NewRecorder()) // here c.Request == nil

Callers

nothing calls this directly

Calls 2

RunMethod · 0.80
initQueryCacheMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…