diff options
Diffstat (limited to 'utilities_test.go')
| -rw-r--r-- | utilities_test.go | 38 |
1 files changed, 38 insertions, 0 deletions
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) + } +} |
