datarhei-dragonfork-core/net/iplimit_test.go

66 lines
1.7 KiB
Go
Raw Normal View History

2022-05-13 13:26:45 -04:00
package net
import (
"testing"
2023-01-24 10:45:28 -05:00
"github.com/stretchr/testify/require"
2022-05-13 13:26:45 -04:00
)
func TestIPLimiterNew(t *testing.T) {
var err error
_, err = NewIPLimiter([]string{}, []string{})
2023-01-24 10:45:28 -05:00
require.Nil(t, err)
2022-05-13 13:26:45 -04:00
_, err = NewIPLimiter([]string{"::1/128", "127.0.0.1/32", ""}, []string{})
2023-01-24 10:45:28 -05:00
require.Nil(t, err)
2022-05-13 13:26:45 -04:00
_, err = NewIPLimiter([]string{}, []string{"::1/128", "127.0.0.1/32", ""})
2023-01-24 10:45:28 -05:00
require.Nil(t, err)
2022-05-13 13:26:45 -04:00
}
func TestIPLimiterError(t *testing.T) {
var err error
_, err = NewIPLimiter([]string{}, []string{})
2023-01-24 10:45:28 -05:00
require.Nil(t, err)
2022-05-13 13:26:45 -04:00
_, err = NewIPLimiter([]string{"::1"}, []string{})
2023-01-24 10:45:28 -05:00
require.NotNil(t, err, "Should not accept invalid IP")
2022-05-13 13:26:45 -04:00
_, err = NewIPLimiter([]string{}, []string{"::1"})
2023-01-24 10:45:28 -05:00
require.NotNil(t, err, "Should not accept invalid IP")
2022-05-13 13:26:45 -04:00
}
func TestIPLimiterInvalidIPs(t *testing.T) {
limiter, _ := NewIPLimiter([]string{}, []string{})
2023-01-24 10:45:28 -05:00
require.False(t, limiter.IsAllowed(""), "Invalid IP shouldn't be allowed")
2022-05-13 13:26:45 -04:00
}
func TestIPLimiterNoIPs(t *testing.T) {
limiter, _ := NewIPLimiter([]string{}, []string{})
2023-01-24 10:45:28 -05:00
require.True(t, limiter.IsAllowed("127.0.0.1"), "IP should be allowed")
2022-05-13 13:26:45 -04:00
}
func TestIPLimiterAllowlist(t *testing.T) {
limiter, _ := NewIPLimiter([]string{}, []string{"::1/128"})
2023-01-24 10:45:28 -05:00
require.False(t, limiter.IsAllowed("127.0.0.1"), "Unallowed IP shouldn't be allowed")
require.True(t, limiter.IsAllowed("::1"), "Allowed IP should be allowed")
2022-05-13 13:26:45 -04:00
}
func TestIPLimiterBlocklist(t *testing.T) {
limiter, _ := NewIPLimiter([]string{"::1/128"}, []string{})
2023-01-24 10:45:28 -05:00
require.True(t, limiter.IsAllowed("127.0.0.1"), "Allowed IP should be allowed")
require.False(t, limiter.IsAllowed("::1"), "Unallowed IP shouldn't be allowed")
}
func TestNullIPLimiter(t *testing.T) {
limiter := NewNullIPLimiter()
require.True(t, limiter.IsAllowed("foobar"))
2022-05-13 13:26:45 -04:00
}