From 37b6995afa83fcf32dfd24be406112491c8d6451 Mon Sep 17 00:00:00 2001 From: horus_arch Date: Sun, 29 Mar 2015 23:17:24 +0200 Subject: Better logging with RemoteAddr. --- utilities_test.go | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'utilities_test.go') diff --git a/utilities_test.go b/utilities_test.go index 5f095dc..4431241 100644 --- a/utilities_test.go +++ b/utilities_test.go @@ -74,3 +74,41 @@ func TestGetLanguage(t *testing.T) { t.Fatal("Expected empty string as lang.") } } + +func TestGetIP(t *testing.T) { + // Test with X-Forwarded-For + request, err := http.NewRequest("GET", "/", nil) + if err != nil { + t.Fatal("Error creating new http request. (/)", err) + } + request.Header.Add("X-Forwarded-For", "10.0.0.1") + + ip := GetIP(request) + if ip != "10.0.0.1" { + t.Fatal("Expected IP '10.0.0.1', got " + ip) + } + + // Test with X-Real-Ip + request, err = http.NewRequest("GET", "/", nil) + if err != nil { + t.Fatal("Error creating new http request. (/)", err) + } + request.Header.Add("X-Real-Ip", "10.0.0.1") + + ip = GetIP(request) + if ip != "10.0.0.1" { + t.Fatal("Expected IP '10.0.0.1', got " + ip) + } + + // Test with RemoteAddr + // Since Golang itself doesn't set RemoteAddr '0.0.0.0' is expected + request, err = http.NewRequest("GET", "/", nil) + if err != nil { + t.Fatal("Error creating new http request. (/)", err) + } + + ip = GetIP(request) + if ip != "0.0.0.0" { + t.Fatal("Expected IP '0.0.0.0', got " + ip) + } +} -- cgit v1.2.3