| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- package conf_test
- import (
- "encoding/json"
- "testing"
- "v2ray.com/core/common/net"
- "v2ray.com/core/common/protocol"
- "v2ray.com/core/proxy/socks"
- "v2ray.com/core/testing/assert"
- . "v2ray.com/core/tools/conf"
- )
- func TestSocksInboundConfig(t *testing.T) {
- assert := assert.On(t)
- rawJson := `{
- "auth": "password",
- "accounts": [
- {
- "user": "my-username",
- "pass": "my-password"
- }
- ],
- "udp": false,
- "ip": "127.0.0.1",
- "timeout": 5
- }`
- config := new(SocksServerConfig)
- err := json.Unmarshal([]byte(rawJson), &config)
- assert.Error(err).IsNil()
- message, err := config.Build()
- assert.Error(err).IsNil()
- iConfig, err := message.GetInstance()
- assert.Error(err).IsNil()
- socksConfig := iConfig.(*socks.ServerConfig)
- assert.Bool(socksConfig.AuthType == socks.AuthType_PASSWORD).IsTrue()
- assert.Int(len(socksConfig.Accounts)).Equals(1)
- assert.String(socksConfig.Accounts["my-username"]).Equals("my-password")
- assert.Bool(socksConfig.UdpEnabled).IsFalse()
- assert.Address(socksConfig.Address.AsAddress()).Equals(net.LocalHostIP)
- assert.Uint32(socksConfig.Timeout).Equals(5)
- }
- func TestSocksOutboundConfig(t *testing.T) {
- assert := assert.On(t)
- rawJson := `{
- "servers": [{
- "address": "127.0.0.1",
- "port": 1234,
- "users": [
- {"user": "test user", "pass": "test pass", "email": "test@email.com"}
- ]
- }]
- }`
- config := new(SocksClientConfig)
- err := json.Unmarshal([]byte(rawJson), &config)
- assert.Error(err).IsNil()
- message, err := config.Build()
- assert.Error(err).IsNil()
- iConfig, err := message.GetInstance()
- assert.Error(err).IsNil()
- socksConfig := iConfig.(*socks.ClientConfig)
- assert.Int(len(socksConfig.Server)).Equals(1)
- ss := protocol.NewServerSpecFromPB(*socksConfig.Server[0])
- assert.Destination(ss.Destination()).EqualsString("tcp:127.0.0.1:1234")
- user := ss.PickUser()
- assert.String(user.Email).Equals("test@email.com")
- account, err := user.GetTypedAccount()
- assert.Error(err).IsNil()
- socksAccount := account.(*socks.Account)
- assert.String(socksAccount.Username).Equals("test user")
- assert.String(socksAccount.Password).Equals("test pass")
- }
|