1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
| package v4_test
|
| import (
| "testing"
|
| "github.com/v2fly/v2ray-core/v5/common/net"
| "github.com/v2fly/v2ray-core/v5/common/protocol"
| "github.com/v2fly/v2ray-core/v5/common/serial"
| "github.com/v2fly/v2ray-core/v5/infra/conf/cfgcommon"
| "github.com/v2fly/v2ray-core/v5/infra/conf/cfgcommon/testassist"
| v4 "github.com/v2fly/v2ray-core/v5/infra/conf/v4"
| "github.com/v2fly/v2ray-core/v5/proxy/socks"
| )
|
| func TestSocksInboundConfig(t *testing.T) {
| creator := func() cfgcommon.Buildable {
| return new(v4.SocksServerConfig)
| }
|
| testassist.RunMultiTestCase(t, []testassist.TestCase{
| {
| Input: `{
| "auth": "password",
| "accounts": [
| {
| "user": "my-username",
| "pass": "my-password"
| }
| ],
| "udp": false,
| "ip": "127.0.0.1",
| "timeout": 5,
| "userLevel": 1
| }`,
| Parser: testassist.LoadJSON(creator),
| Output: &socks.ServerConfig{
| AuthType: socks.AuthType_PASSWORD,
| Accounts: map[string]string{
| "my-username": "my-password",
| },
| UdpEnabled: false,
| Address: &net.IPOrDomain{
| Address: &net.IPOrDomain_Ip{
| Ip: []byte{127, 0, 0, 1},
| },
| },
| Timeout: 5,
| UserLevel: 1,
| },
| },
| })
| }
|
| func TestSocksOutboundConfig(t *testing.T) {
| creator := func() cfgcommon.Buildable {
| return new(v4.SocksClientConfig)
| }
|
| testassist.RunMultiTestCase(t, []testassist.TestCase{
| {
| Input: `{
| "servers": [{
| "address": "127.0.0.1",
| "port": 1234,
| "users": [
| {"user": "test user", "pass": "test pass", "email": "test@email.com"}
| ]
| }]
| }`,
| Parser: testassist.LoadJSON(creator),
| Output: &socks.ClientConfig{
| Server: []*protocol.ServerEndpoint{
| {
| Address: &net.IPOrDomain{
| Address: &net.IPOrDomain_Ip{
| Ip: []byte{127, 0, 0, 1},
| },
| },
| Port: 1234,
| User: []*protocol.User{
| {
| Email: "test@email.com",
| Account: serial.ToTypedMessage(&socks.Account{
| Username: "test user",
| Password: "test pass",
| }),
| },
| },
| },
| },
| },
| },
| })
| }
|
|