// Copyright 2026 The Gitea Authors. All rights reserved. // SPDX-License-Identifier: MIT package common import ( "net/http" "net/http/httptest" "testing" "github.com/stretchr/testify/assert" ) func TestForwardedHeadersHandler(t *testing.T) { defaultProxies := []string{"127.0.0.0/8", "::1/128"} cases := []struct { name string remoteAddr string limit int proxies []string header http.Header expected string }{ {"chain shorter than limit", "127.0.0.1:1234", 3, defaultProxies, http.Header{"X-Forwarded-For": {"1.1.1.1, 2.2.2.2"}}, "1.1.1.1:0"}, {"repeated header without spaces", "127.0.0.1:1234", 2, defaultProxies, http.Header{"X-Forwarded-For": {"1.1.1.1,2.2.2.2", "3.3.3.3"}}, "2.2.2.2:0"}, {"non-ip entry", "127.0.0.1:1234", 1, defaultProxies, http.Header{"X-Forwarded-For": {"evil,