| 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)
 
- 		}
 
- 	}
 
- }
 
 
  |