address_test.go 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package net
  2. import (
  3. "net"
  4. "testing"
  5. "github.com/v2ray/v2ray-core/testing/unit"
  6. )
  7. func TestIPv4Address(t *testing.T) {
  8. assert := unit.Assert(t)
  9. ip := []byte{byte(1), byte(2), byte(3), byte(4)}
  10. port := NewPort(80)
  11. addr := IPAddress(ip, port.Value())
  12. assert.Bool(addr.IsIPv4()).IsTrue()
  13. assert.Bool(addr.IsIPv6()).IsFalse()
  14. assert.Bool(addr.IsDomain()).IsFalse()
  15. assert.Bytes(addr.IP()).Equals(ip)
  16. assert.Uint16(addr.Port().Value()).Equals(port.Value())
  17. assert.String(addr.String()).Equals("1.2.3.4:80")
  18. }
  19. func TestIPv6Address(t *testing.T) {
  20. assert := unit.Assert(t)
  21. ip := []byte{
  22. byte(1), byte(2), byte(3), byte(4),
  23. byte(1), byte(2), byte(3), byte(4),
  24. byte(1), byte(2), byte(3), byte(4),
  25. byte(1), byte(2), byte(3), byte(4),
  26. }
  27. port := NewPort(443)
  28. addr := IPAddress(ip, port.Value())
  29. assert.Bool(addr.IsIPv6()).IsTrue()
  30. assert.Bool(addr.IsIPv4()).IsFalse()
  31. assert.Bool(addr.IsDomain()).IsFalse()
  32. assert.Bytes(addr.IP()).Equals(ip)
  33. assert.Uint16(addr.Port().Value()).Equals(port.Value())
  34. assert.String(addr.String()).Equals("[102:304:102:304:102:304:102:304]:443")
  35. }
  36. func TestDomainAddress(t *testing.T) {
  37. assert := unit.Assert(t)
  38. domain := "v2ray.com"
  39. port := NewPort(443)
  40. addr := DomainAddress(domain, port.Value())
  41. assert.Bool(addr.IsDomain()).IsTrue()
  42. assert.Bool(addr.IsIPv4()).IsFalse()
  43. assert.Bool(addr.IsIPv6()).IsFalse()
  44. assert.String(addr.Domain()).Equals(domain)
  45. assert.Uint16(addr.Port().Value()).Equals(port.Value())
  46. assert.String(addr.String()).Equals("v2ray.com:443")
  47. }
  48. func TestNetIPv4Address(t *testing.T) {
  49. assert := unit.Assert(t)
  50. ip := net.IPv4(1, 2, 3, 4)
  51. port := NewPort(80)
  52. addr := IPAddress(ip, port.Value())
  53. assert.Bool(addr.IsIPv4()).IsTrue()
  54. assert.String(addr.String()).Equals("1.2.3.4:80")
  55. }