| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- package net_test
- import (
- "testing"
- . "v2ray.com/core/common/net"
- . "v2ray.com/core/common/net/testing"
- . "v2ray.com/ext/assert"
- )
- func TestTCPDestination(t *testing.T) {
- assert := With(t)
- dest := TCPDestination(IPAddress([]byte{1, 2, 3, 4}), 80)
- assert(dest, IsTCP)
- assert(dest, Not(IsUDP))
- assert(dest.String(), Equals, "tcp:1.2.3.4:80")
- }
- func TestUDPDestination(t *testing.T) {
- assert := With(t)
- dest := UDPDestination(IPAddress([]byte{0x20, 0x01, 0x48, 0x60, 0x48, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88}), 53)
- assert(dest, Not(IsTCP))
- assert(dest, IsUDP)
- assert(dest.String(), Equals, "udp:[2001:4860:4860::8888]:53")
- }
- func TestDestinationParse(t *testing.T) {
- assert := With(t)
- cases := []struct {
- Input string
- Output Destination
- Error bool
- }{
- {
- Input: "tcp:127.0.0.1:80",
- Output: TCPDestination(LocalHostIP, Port(80)),
- },
- {
- Input: "udp:8.8.8.8:53",
- Output: UDPDestination(IPAddress([]byte{8, 8, 8, 8}), Port(53)),
- },
- {
- Input: "8.8.8.8:53",
- Output: Destination{
- Address: IPAddress([]byte{8, 8, 8, 8}),
- Port: Port(53),
- },
- },
- {
- Input: ":53",
- Output: Destination{
- Address: AnyIP,
- Port: Port(53),
- },
- },
- {
- Input: "8.8.8.8",
- Error: true,
- },
- {
- Input: "8.8.8.8:http",
- Error: true,
- },
- }
- for _, testcase := range cases {
- d, err := ParseDestination(testcase.Input)
- if !testcase.Error {
- assert(err, IsNil)
- assert(d, Equals, testcase.Output)
- } else {
- assert(err, IsNotNil)
- }
- }
- }
|