MCPcopy Create free account
hub / github.com/mpolden/echoip / TestIPv6FromRequest

Function TestIPv6FromRequest

http/http_test.go:241–262  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

239 testIpFromRequest(t, tests)
240}
241func TestIPv6FromRequest(t *testing.T) {
242 var tests = []ipTestCase{
243 {"[::1]:9999", "", "", nil, "::1"}, // No header given
244 {"[::1]:9999", "X-Real-IP", "::ffff:103:307", nil, "::1"}, // Trusted header is empty
245 {"[::1]:9999", "X-Real-IP", "::ffff:103:307", []string{"X-Foo-Bar"}, "::1"}, // Trusted header does not match
246 {"[::1]:9999", "X-Real-IP", "::ffff:103:307", []string{"X-Real-IP", "X-Forwarded-For"}, "::ffff:103:307"}, // Trusted header matches
247 {"[::1]:9999", "X-Forwarded-For", "::ffff:103:307", []string{"X-Real-IP", "X-Forwarded-For"}, "::ffff:103:307"}, // Second trusted header matches
248 {"[::1]:9999", "X-Forwarded-For", "::ffff:103:307,::ffff:402:402", []string{"X-Forwarded-For"}, "::ffff:103:307"}, // X-Forwarded-For with multiple entries (commas separator)
249 {"[::1]:9999", "X-Forwarded-For", "::ffff:103:307, ::ffff:402:402", []string{"X-Forwarded-For"}, "::ffff:103:307"}, // X-Forwarded-For with multiple entries (space+comma separator)
250 {"[::1]:9999", "X-Forwarded-For", "", []string{"X-Forwarded-For"}, "::1"}, // Empty header
251 {"[::1]:9999?ip=::ffff:102:304", "", "", nil, "::ffff:102:304"}, // passed in "ip" parameter
252 {"[::1]:9999?ip=::ffff:102:304", "X-Forwarded-For", "::ffff:103:307,::ffff:402:402", []string{"X-Forwarded-For"}, "::ffff:102:304"}, // ip parameter wins over X-Forwarded-For with multiple entries
253
254 {"[::1]:9999", "X-Real-IP", "[::ffff:103:307]:1337", []string{"X-Real-IP", "X-Forwarded-For"}, "::ffff:103:307"}, // Trusted header matches (with port)
255 {"[::1]:9999", "X-Forwarded-For", "[::ffff:103:307]:1337", []string{"X-Real-IP", "X-Forwarded-For"}, "::ffff:103:307"}, // Second trusted header matches (with port)
256 {"[::1]:9999", "X-Forwarded-For", "[::ffff:103:307]:1337,[::ffff:402:402]:4242", []string{"X-Forwarded-For"}, "::ffff:103:307"}, // X-Forwarded-For with multiple entries (commas separator, with port)
257 {"[::1]:9999", "X-Forwarded-For", "[::ffff:103:307]:1337, [::ffff:402:402]:4242", []string{"X-Forwarded-For"}, "::ffff:103:307"}, // X-Forwarded-For with multiple entries (space+comma separator, with port)
258 {"[::1]:9999?ip=[::ffff:102:304]:1234", "", "", nil, "::ffff:102:304"}, // passed in "ip" parameter (with port)
259 {"[::1]:9999?ip=[::ffff:102:304]:1234", "X-Forwarded-For", "[::ffff:103:307]:1337,[::ffff:402:402]:4242", []string{"X-Forwarded-For"}, "::ffff:102:304"}, // ip parameter wins over X-Forwarded-For with multiple entries (with port)
260 }
261 testIpFromRequest(t, tests)
262}
263
264func testIpFromRequest(t *testing.T, tests []ipTestCase) {
265 for _, tt := range tests {

Callers

nothing calls this directly

Calls 1

testIpFromRequestFunction · 0.85

Tested by

no test coverage detected