Home / Function/ Test_Ctx_IPs_With_IP_Validation() — fiber Function Reference

Test_Ctx_IPs_With_IP_Validation() — fiber Function Reference

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

Entity Profile

Dependency Diagram

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

Relationship Graph

Source Code

ctx_test.go lines 3006–3040

func Test_Ctx_IPs_With_IP_Validation(t *testing.T) {
	t.Parallel()
	app := New(Config{EnableIPValidation: true})
	c := app.AcquireCtx(&fasthttp.RequestCtx{})

	// normal happy path test case
	c.Request().Header.Set(HeaderXForwardedFor, "127.0.0.1, 127.0.0.2, 127.0.0.3")
	require.Equal(t, []string{"127.0.0.1", "127.0.0.2", "127.0.0.3"}, c.IPs())

	// inconsistent space formatting
	c.Request().Header.Set(HeaderXForwardedFor, "127.0.0.1,127.0.0.2  ,127.0.0.3")
	require.Equal(t, []string{"127.0.0.1", "127.0.0.2", "127.0.0.3"}, c.IPs())

	// invalid IPs are in the header
	c.Request().Header.Set(HeaderXForwardedFor, "invalid, 127.0.0.1, 127.0.0.2")
	require.Equal(t, []string{"127.0.0.1", "127.0.0.2"}, c.IPs())
	c.Request().Header.Set(HeaderXForwardedFor, "127.0.0.1, invalid, 127.0.0.2")
	require.Equal(t, []string{"127.0.0.1", "127.0.0.2"}, c.IPs())

	// ensure that the ordering of IPs in the header is maintained
	c.Request().Header.Set(HeaderXForwardedFor, "127.0.0.3, 127.0.0.1, 127.0.0.2")
	require.Equal(t, []string{"127.0.0.3", "127.0.0.1", "127.0.0.2"}, c.IPs())

	// ensure for IPv6
	c.Request().Header.Set(HeaderXForwardedFor, "f037:825e:eadb:1b7b:1667:6f0a:5356:f604, invalid, 9396:9549:b4f7:8ed0:4791:1330:8c06:e62d")
	require.Equal(t, []string{"f037:825e:eadb:1b7b:1667:6f0a:5356:f604", "9396:9549:b4f7:8ed0:4791:1330:8c06:e62d"}, c.IPs())

	// empty header
	c.Request().Header.Set(HeaderXForwardedFor, "")
	require.Empty(t, c.IPs())

	// missing header
	c.Request()
	require.Empty(t, c.IPs())
}

Domain

Subdomains

Defined In

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free