Home / Function/ Test_Ctx_Host_TrustedProxy() — fiber Function Reference

Test_Ctx_Host_TrustedProxy() — fiber Function Reference

Architecture documentation for the Test_Ctx_Host_TrustedProxy() function in ctx_test.go from the fiber codebase.

Entity Profile

Dependency Diagram

graph TD
  60cb36bb_400f_beec_43fd_08c4405548e7["Test_Ctx_Host_TrustedProxy()"]
  7b3d4933_5ae3_f84d_ff6d_0cb34e268026["ctx_test.go"]
  60cb36bb_400f_beec_43fd_08c4405548e7 -->|defined in| 7b3d4933_5ae3_f84d_ff6d_0cb34e268026
  style 60cb36bb_400f_beec_43fd_08c4405548e7 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

ctx_test.go lines 2444–2506

func Test_Ctx_Host_TrustedProxy(t *testing.T) {
	t.Parallel()
	{
		app := New(Config{TrustProxy: true, TrustProxyConfig: TrustProxyConfig{Proxies: []string{"0.0.0.0", "0.8.0.1"}}})
		c := app.AcquireCtx(&fasthttp.RequestCtx{})
		c.Request().SetRequestURI("http://google.com/test")
		c.Request().Header.Set(HeaderXForwardedHost, "google1.com")
		require.Equal(t, "google1.com", c.Host())
		app.ReleaseCtx(c)
	}
	t.Run("TrimWhitespaceFromForwardedHost", func(t *testing.T) {
		t.Parallel()
		testCases := []struct {
			name          string
			forwardedHost string
			expectedHost  string
		}{
			{
				name:          "leading whitespace with comma",
				forwardedHost: " example.com, proxy1",
				expectedHost:  "example.com",
			},
			{
				name:          "trailing whitespace with comma",
				forwardedHost: "example.com , proxy1",
				expectedHost:  "example.com",
			},
			{
				name:          "leading and trailing whitespace with comma",
				forwardedHost: "  example.com  , proxy1",
				expectedHost:  "example.com",
			},
			{
				name:          "no whitespace with comma",
				forwardedHost: "example.com, proxy1",
				expectedHost:  "example.com",
			},
			{
				name:          "single value with whitespace",
				forwardedHost: "  example.com  ",
				expectedHost:  "example.com",
			},
			{
				name:          "leading comma",
				forwardedHost: ",example.com",
				expectedHost:  "",
			},
		}

		app := New(Config{TrustProxy: true, TrustProxyConfig: TrustProxyConfig{Proxies: []string{"0.0.0.0", "0.8.0.1"}}})

		for _, tc := range testCases {
			t.Run(tc.name, func(t *testing.T) {
				t.Parallel()
				c := app.AcquireCtx(&fasthttp.RequestCtx{})
				defer app.ReleaseCtx(c)
				c.Request().SetRequestURI("http://google.com/test")
				c.Request().Header.Set(HeaderXForwardedHost, tc.forwardedHost)
				require.Equal(t, tc.expectedHost, c.Host())
			})
		}
	})
}

Domain

Subdomains

Defined In

Frequently Asked Questions

What does Test_Ctx_Host_TrustedProxy() do?
Test_Ctx_Host_TrustedProxy() is a function in the fiber codebase, defined in ctx_test.go.
Where is Test_Ctx_Host_TrustedProxy() defined?
Test_Ctx_Host_TrustedProxy() is defined in ctx_test.go at line 2444.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free