summaryrefslogtreecommitdiff
path: root/utilities_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'utilities_test.go')
-rw-r--r--utilities_test.go38
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)
+ }
+}