2019-01-20 23:47:10 +00:00
|
|
|
package client
|
|
|
|
|
|
|
|
import (
|
2020-10-17 17:52:00 +00:00
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"io/ioutil"
|
2019-01-20 23:47:10 +00:00
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
2020-10-17 17:52:00 +00:00
|
|
|
func TestParseConfig(t *testing.T) {
|
|
|
|
ssv := "UID=iGAO85zysIyR4c09CyZSLdNhtP/ckcYu7nIPI082AHA=;PublicKey=IYoUzkle/T/kriE+Ufdm7AHQtIeGnBWbhhlTbmDpUUI=;" +
|
|
|
|
"ServerName=www.bing.com;NumConn=4;MaskBrowser=chrome;ProxyMethod=shadowsocks;EncryptionMethod=plain"
|
2019-01-20 23:47:10 +00:00
|
|
|
json := ssvToJson(ssv)
|
2020-10-17 17:52:00 +00:00
|
|
|
expected := []byte(`{"UID":"iGAO85zysIyR4c09CyZSLdNhtP/ckcYu7nIPI082AHA=","PublicKey":"IYoUzkle/T/kriE+Ufdm7AHQtIeGnBWbhhlTbmDpUUI=","ServerName":"www.bing.com","NumConn":4,"MaskBrowser":"chrome","ProxyMethod":"shadowsocks","EncryptionMethod":"plain"}`)
|
|
|
|
|
|
|
|
t.Run("byte equality", func(t *testing.T) {
|
|
|
|
assert.Equal(t, expected, json)
|
|
|
|
})
|
|
|
|
|
|
|
|
t.Run("struct equality", func(t *testing.T) {
|
|
|
|
tmpConfig, _ := ioutil.TempFile("", "ck_client_config")
|
|
|
|
_, _ = tmpConfig.Write(expected)
|
|
|
|
parsedFromSSV, err := ParseConfig(ssv)
|
|
|
|
assert.NoError(t, err)
|
|
|
|
parsedFromJson, err := ParseConfig(tmpConfig.Name())
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
|
|
|
assert.Equal(t, parsedFromJson, parsedFromSSV)
|
|
|
|
})
|
|
|
|
|
|
|
|
t.Run("empty file", func(t *testing.T) {
|
|
|
|
tmpConfig, _ := ioutil.TempFile("", "ck_client_config")
|
|
|
|
_, err := ParseConfig(tmpConfig.Name())
|
|
|
|
assert.Error(t, err)
|
|
|
|
})
|
2019-01-20 23:47:10 +00:00
|
|
|
|
|
|
|
}
|