mirror of
https://github.com/joohoi/acme-dns.git
synced 2024-12-22 22:33:45 +07:00
439da9c09f
* Properly parse r.RemoteAddr * Add tests, and fix net.ParseCIDR issues with IPv6 addresses enclosed in brackets
34 lines
806 B
Go
34 lines
806 B
Go
package main
|
|
|
|
import (
|
|
"net/http"
|
|
"testing"
|
|
)
|
|
|
|
func TestUpdateAllowedFromIP(t *testing.T) {
|
|
userWithAllow := newACMETxt()
|
|
userWithAllow.AllowFrom = cidrslice{"192.168.1.2/32", "[::1]/128"}
|
|
userWithoutAllow := newACMETxt()
|
|
|
|
for i, test := range []struct {
|
|
remoteaddr string
|
|
expected bool
|
|
}{
|
|
{"192.168.1.2:1234", true},
|
|
{"192.168.1.1:1234", false},
|
|
{"invalid", false},
|
|
{"[::1]:4567", true},
|
|
} {
|
|
newreq, _ := http.NewRequest("GET", "/whatever", nil)
|
|
newreq.RemoteAddr = test.remoteaddr
|
|
ret := updateAllowedFromIP(newreq, userWithAllow)
|
|
if test.expected != ret {
|
|
t.Errorf("Test %d: Unexpected result for user with allowForm set", i)
|
|
}
|
|
|
|
if !updateAllowedFromIP(newreq, userWithoutAllow) {
|
|
t.Errorf("Test %d: Unexpected result for user without allowForm set", i)
|
|
}
|
|
}
|
|
}
|