forked from baron/baron-sso
25 lines
778 B
Go
25 lines
778 B
Go
package utils
|
|
|
|
import "testing"
|
|
|
|
func TestResolveClientIP_PrefersPublicForwardedIP(t *testing.T) {
|
|
got := ResolveClientIP("100.100.100.1, 203.0.113.25, 10.0.0.2", "", "172.18.0.5")
|
|
if got != "203.0.113.25" {
|
|
t.Fatalf("expected public forwarded IP, got %q", got)
|
|
}
|
|
}
|
|
|
|
func TestResolveClientIP_FallsBackToFirstForwardedWhenAllPrivate(t *testing.T) {
|
|
got := ResolveClientIP("100.100.100.1, 10.0.0.2", "192.168.0.10", "172.18.0.5")
|
|
if got != "100.100.100.1" {
|
|
t.Fatalf("expected first forwarded private IP, got %q", got)
|
|
}
|
|
}
|
|
|
|
func TestResolveClientIP_PrefersPublicRealIPOverPrivateForwarded(t *testing.T) {
|
|
got := ResolveClientIP("100.100.100.1, 10.0.0.2", "198.51.100.7", "172.18.0.5")
|
|
if got != "198.51.100.7" {
|
|
t.Fatalf("expected public real IP, got %q", got)
|
|
}
|
|
}
|