summaryrefslogtreecommitdiff
path: root/utilities_test.go
diff options
context:
space:
mode:
authorhorus_arch2015-03-29 23:17:24 +0200
committerhorus_arch2015-03-29 23:17:24 +0200
commit37b6995afa83fcf32dfd24be406112491c8d6451 (patch)
tree9c1e76a1c031b02deff028f9ab5a01fa3d6b0bc2 /utilities_test.go
parent75eb1c4c535972cac5d2a91e7b79fd001767e83a (diff)
downloadfreemail-37b6995afa83fcf32dfd24be406112491c8d6451.tar.gz
Better logging with RemoteAddr.
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)
+ }
+}