37 lines
945 B
Go
37 lines
945 B
Go
|
package tor
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"net"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/stretchr/testify/require"
|
||
|
)
|
||
|
|
||
|
const (
|
||
|
testOnion = "ld47qlr6h2b7hrrf.onion"
|
||
|
testFakeIP = "fd87:d87e:eb43:58f9:f82e:3e3e:83f3:c625"
|
||
|
)
|
||
|
|
||
|
// TestOnionHostToFakeIP tests that an onion host address can be converted into
|
||
|
// a fake tcp6 address successfully.
|
||
|
func TestOnionHostToFakeIP(t *testing.T) {
|
||
|
ip, err := OnionHostToFakeIP(testOnion)
|
||
|
require.NoError(t, err)
|
||
|
require.Equal(t, testFakeIP, ip.String())
|
||
|
}
|
||
|
|
||
|
// TestFakeIPToOnionHost tests that a fake tcp6 address can be converted back
|
||
|
// into its original .onion host address successfully.
|
||
|
func TestFakeIPToOnionHost(t *testing.T) {
|
||
|
tcpAddr, err := net.ResolveTCPAddr(
|
||
|
"tcp6", fmt.Sprintf("[%s]:8333", testFakeIP),
|
||
|
)
|
||
|
require.NoError(t, err)
|
||
|
require.True(t, IsOnionFakeIP(tcpAddr))
|
||
|
|
||
|
onionHost, err := FakeIPToOnionHost(tcpAddr)
|
||
|
require.NoError(t, err)
|
||
|
require.Equal(t, fmt.Sprintf("%s:8333", testOnion), onionHost.String())
|
||
|
}
|