neoneo-go/pkg/services/oracle/network_test.go
Roman Khimov 3c009271f8 golangci: enable bodyclose checker and fix related code
It has found an issue in the oracle code, so I think it's worth doing.
2022-09-02 18:35:54 +03:00

49 lines
1.3 KiB
Go

package oracle
import (
"errors"
"net"
"strings"
"testing"
"time"
"github.com/nspcc-dev/neo-go/pkg/config"
"github.com/stretchr/testify/require"
)
func TestIsReserved(t *testing.T) {
require.True(t, isReserved(net.IPv4zero))
require.True(t, isReserved(net.IPv4(10, 0, 0, 1)))
require.True(t, isReserved(net.IPv4(192, 168, 0, 1)))
require.True(t, isReserved(net.IPv6interfacelocalallnodes))
require.True(t, isReserved(net.IPv6loopback))
require.False(t, isReserved(net.IPv4(8, 8, 8, 8)))
}
func TestDefaultClient_RestrictedRedirectErr(t *testing.T) {
cfg := config.OracleConfiguration{
AllowPrivateHost: false,
RequestTimeout: time.Second,
}
cl := getDefaultClient(cfg)
testCases := []string{
"http://localhost:8080",
"http://localhost",
"https://localhost:443",
"https://" + net.IPv4zero.String(),
"https://" + net.IPv4(10, 0, 0, 1).String(),
"https://" + net.IPv4(192, 168, 0, 1).String(),
"https://[" + net.IPv6interfacelocalallnodes.String() + "]",
"https://[" + net.IPv6loopback.String() + "]",
}
for _, c := range testCases {
t.Run(c, func(t *testing.T) {
_, err := cl.Get(c) //nolint:bodyclose // It errors out and it's a test.
require.Error(t, err)
require.True(t, errors.Is(err, ErrRestrictedRedirect), err)
require.True(t, strings.Contains(err.Error(), "IP is not global unicast"), err)
})
}
}