From d1c9d876fe4fbe841e2eba89e157e982291094fc Mon Sep 17 00:00:00 2001 From: Notealot <714804968@qq.com> Date: Tue, 26 Oct 2021 23:30:29 +0800 Subject: [PATCH] Add more tests for validateHeader() --- gin_test.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gin_test.go b/gin_test.go index 21c43d15..5e3a6d50 100644 --- a/gin_test.go +++ b/gin_test.go @@ -657,5 +657,34 @@ func assertRoutePresent(t *testing.T, gotRoutes RoutesInfo, wantRoute RouteInfo) t.Errorf("route not found: %v", wantRoute) } +func TestEngineValidateHeader(t *testing.T) { + _, e := CreateTestContext(httptest.NewRecorder()) + _ = e.SetTrustedProxies([]string{"30.30.30.30", "40.40.40.40"}) + + { + // normal legal header + header := "123.123.123.123, 30.30.30.30, 40.40.40.40" + ip, ok := e.validateHeader(header) + assert.Equal(t, true, ok) + assert.Equal(t, "123.123.123.123", ip) + } + + { + // partial legal header + header := "50.50.50.50, 123.123.123.123, 30.30.30.30" + ip, ok := e.validateHeader(header) + assert.Equal(t, true, ok) + assert.Equal(t, "123.123.123.123", ip) + } + + { + // illegal header + header := "123.123.123.123, 30.30.30.30, 256.255.255.255" + ip, ok := e.validateHeader(header) + assert.Equal(t, false, ok) + assert.Empty(t, ip) + } +} + func handlerTest1(c *Context) {} func handlerTest2(c *Context) {}