common_test.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package conf_test
  2. import (
  3. "encoding/json"
  4. "testing"
  5. v2net "v2ray.com/core/common/net"
  6. "v2ray.com/core/testing/assert"
  7. . "v2ray.com/core/tools/conf"
  8. )
  9. func TestIPParsing(t *testing.T) {
  10. assert := assert.On(t)
  11. rawJson := "\"8.8.8.8\""
  12. var address Address
  13. err := json.Unmarshal([]byte(rawJson), &address)
  14. assert.Error(err).IsNil()
  15. assert.Bytes([]byte(address.IP())).Equals([]byte{8, 8, 8, 8})
  16. }
  17. func TestDomainParsing(t *testing.T) {
  18. assert := assert.On(t)
  19. rawJson := "\"v2ray.com\""
  20. var address Address
  21. err := json.Unmarshal([]byte(rawJson), &address)
  22. assert.Error(err).IsNil()
  23. assert.String(address.Domain()).Equals("v2ray.com")
  24. }
  25. func TestInvalidAddressJson(t *testing.T) {
  26. assert := assert.On(t)
  27. rawJson := "1234"
  28. var address Address
  29. err := json.Unmarshal([]byte(rawJson), &address)
  30. assert.Error(err).IsNotNil()
  31. }
  32. func TestStringNetwork(t *testing.T) {
  33. assert := assert.On(t)
  34. var network Network
  35. err := json.Unmarshal([]byte(`"tcp"`), &network)
  36. assert.Error(err).IsNil()
  37. assert.Bool(network.Build() == v2net.Network_TCP).IsTrue()
  38. }
  39. func TestArrayNetworkList(t *testing.T) {
  40. assert := assert.On(t)
  41. var list NetworkList
  42. err := json.Unmarshal([]byte("[\"Tcp\"]"), &list)
  43. assert.Error(err).IsNil()
  44. nlist := list.Build()
  45. assert.Bool(nlist.HasNetwork(v2net.ParseNetwork("tcp"))).IsTrue()
  46. assert.Bool(nlist.HasNetwork(v2net.ParseNetwork("udp"))).IsFalse()
  47. }
  48. func TestStringNetworkList(t *testing.T) {
  49. assert := assert.On(t)
  50. var list NetworkList
  51. err := json.Unmarshal([]byte("\"TCP, ip\""), &list)
  52. assert.Error(err).IsNil()
  53. nlist := list.Build()
  54. assert.Bool(nlist.HasNetwork(v2net.ParseNetwork("tcp"))).IsTrue()
  55. assert.Bool(nlist.HasNetwork(v2net.ParseNetwork("udp"))).IsFalse()
  56. }
  57. func TestInvalidNetworkJson(t *testing.T) {
  58. assert := assert.On(t)
  59. var list NetworkList
  60. err := json.Unmarshal([]byte("0"), &list)
  61. assert.Error(err).IsNotNil()
  62. }