mirror of https://github.com/cbeuw/Cloak
Refactor client Config
parent
2aa49ce543
commit
f30141b388
@ -0,0 +1,73 @@
|
||||
package client
|
||||
|
||||
import (
|
||||
"github.com/cbeuw/Cloak/internal/common"
|
||||
mux "github.com/cbeuw/Cloak/internal/multiplex"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"reflect"
|
||||
"testing"
|
||||
)
|
||||
|
||||
var baseConfig = Config{
|
||||
ServerName: "www.bing.com",
|
||||
ProxyMethod: "ssh",
|
||||
UID: []byte{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf},
|
||||
PublicKey: make([]byte, 32),
|
||||
RemoteHost: "12.34.56.78",
|
||||
}
|
||||
|
||||
func TestDefault(t *testing.T) {
|
||||
remote, auth, err := baseConfig.Process(common.RealWorldState)
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.EqualValues(t, 4, remote.NumConn)
|
||||
assert.EqualValues(t, mux.EncryptionMethodAES256GCM, auth.EncryptionMethod)
|
||||
assert.EqualValues(t, -1, remote.KeepAlive)
|
||||
assert.False(t, auth.Unordered)
|
||||
}
|
||||
|
||||
func TestValidation(t *testing.T) {
|
||||
_, _, err := baseConfig.Process(common.RealWorldState)
|
||||
assert.NoError(t, err)
|
||||
|
||||
type test struct {
|
||||
fieldToChange string
|
||||
newValue any
|
||||
errPattern string
|
||||
}
|
||||
|
||||
tests := []test{
|
||||
{
|
||||
fieldToChange: "ServerName",
|
||||
newValue: "",
|
||||
errPattern: "empty",
|
||||
},
|
||||
{
|
||||
fieldToChange: "UID",
|
||||
newValue: []byte{},
|
||||
errPattern: "empty",
|
||||
},
|
||||
{
|
||||
fieldToChange: "PublicKey",
|
||||
newValue: []byte{0x1},
|
||||
errPattern: "unmarshal",
|
||||
},
|
||||
{
|
||||
fieldToChange: "RemoteHost",
|
||||
newValue: "",
|
||||
errPattern: "empty",
|
||||
},
|
||||
{
|
||||
fieldToChange: "BrowserSig",
|
||||
newValue: "not-a-browser",
|
||||
errPattern: "unknown",
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
config := baseConfig
|
||||
reflect.ValueOf(&config).Elem().FieldByName(test.fieldToChange).Set(reflect.ValueOf(test.newValue))
|
||||
_, _, err := config.Process(common.RealWorldState)
|
||||
assert.ErrorContains(t, err, test.errPattern)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue