github.com/nspcc-dev/neo-go@v0.105.2-0.20240517133400-6be757af3eba/pkg/services/oracle/network_test.go (about) 1 package oracle 2 3 import ( 4 "net" 5 "strings" 6 "testing" 7 "time" 8 9 "github.com/nspcc-dev/neo-go/pkg/config" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func TestIsReserved(t *testing.T) { 14 require.True(t, isReserved(net.IPv4zero)) 15 require.True(t, isReserved(net.IPv4(10, 0, 0, 1))) 16 require.True(t, isReserved(net.IPv4(192, 168, 0, 1))) 17 require.True(t, isReserved(net.IPv6interfacelocalallnodes)) 18 require.True(t, isReserved(net.IPv6loopback)) 19 20 require.False(t, isReserved(net.IPv4(8, 8, 8, 8))) 21 } 22 23 func TestDefaultClient_RestrictedRedirectErr(t *testing.T) { 24 cfg := config.OracleConfiguration{ 25 AllowPrivateHost: false, 26 RequestTimeout: time.Second, 27 } 28 cl := getDefaultClient(cfg) 29 30 testCases := []string{ 31 "http://localhost:8080", 32 "http://localhost", 33 "https://localhost:443", 34 "https://" + net.IPv4zero.String(), 35 "https://" + net.IPv4(10, 0, 0, 1).String(), 36 "https://" + net.IPv4(192, 168, 0, 1).String(), 37 "https://[" + net.IPv6interfacelocalallnodes.String() + "]", 38 "https://[" + net.IPv6loopback.String() + "]", 39 } 40 for _, c := range testCases { 41 t.Run(c, func(t *testing.T) { 42 _, err := cl.Get(c) //nolint:bodyclose // It errors out and it's a test. 43 require.ErrorIs(t, err, ErrRestrictedRedirect) 44 require.True(t, strings.Contains(err.Error(), "IP is not global unicast"), err) 45 }) 46 } 47 }