81 lines
1.5 KiB
Go
81 lines
1.5 KiB
Go
package singbox
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/perfect-panel/server/pkg/adapter/proxy"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func createSS() proxy.Proxy {
|
|
c := proxy.Shadowsocks{
|
|
Method: "aes-256-gcm",
|
|
Port: 10301,
|
|
ServerKey: "",
|
|
}
|
|
return proxy.Proxy{
|
|
Name: "Shadowsocks",
|
|
Server: "127.0.0.1",
|
|
Port: 10301,
|
|
Protocol: "shadowsocks",
|
|
Option: c,
|
|
}
|
|
}
|
|
|
|
func createVLESS() proxy.Proxy {
|
|
c := proxy.Vless{
|
|
Port: 10301,
|
|
Flow: "xtls-rprx-direct",
|
|
Transport: "websocket",
|
|
TransportConfig: proxy.TransportConfig{
|
|
Path: "/ws",
|
|
Host: "baidu.com",
|
|
},
|
|
Security: "tls",
|
|
SecurityConfig: proxy.SecurityConfig{
|
|
SNI: "baidu.com",
|
|
Fingerprint: "chrome",
|
|
AllowInsecure: true,
|
|
},
|
|
}
|
|
s := proxy.Proxy{
|
|
Name: "VLESS",
|
|
Server: "test.xxx.com",
|
|
Port: 10301,
|
|
Protocol: "vless",
|
|
Option: c,
|
|
}
|
|
return s
|
|
}
|
|
|
|
func TestSingboxShadowsocks(t *testing.T) {
|
|
s := createSS()
|
|
p, err := ParseShadowsocks(s, "uuid")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
data, err := p.MarshalJSON()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
assert.NotEqual(t, 0, len(data))
|
|
|
|
// Output:
|
|
// proxy: proxy: {"tag":"Shadowsocks","type":"shadowsocks","server":"127.0.0.1","server_port":10301,"method":"aes-256-gcm","password":"uuid","network":"tcp"}
|
|
|
|
}
|
|
|
|
func TestSingboxVless(t *testing.T) {
|
|
s := createVLESS()
|
|
p, err := ParseVless(s, "uuid")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
data, err := p.MarshalJSON()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
assert.NotEqual(t, 0, len(data))
|
|
}
|