mirror of
https://github.com/kovidgoyal/kitty
synced 2026-07-26 02:02:14 +02:00
Add some basic RC serialization tests
This commit is contained in:
51
tools/cmd/at/main_test.go
Normal file
51
tools/cmd/at/main_test.go
Normal file
@@ -0,0 +1,51 @@
|
||||
package at
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"kitty/tools/crypto"
|
||||
"kitty/tools/utils"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestRCSerialization(t *testing.T) {
|
||||
serializer, err := create_serializer("", "")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
var ver = [3]int{1, 2, 3}
|
||||
rc := utils.RemoteControlCmd{
|
||||
Cmd: "test", Version: ver,
|
||||
}
|
||||
simple := func(expected string) {
|
||||
actual, err := serializer(&rc)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
as := string(actual)
|
||||
if as != expected {
|
||||
t.Fatalf("Incorrect serialization: %s != %s", expected, as)
|
||||
}
|
||||
}
|
||||
simple(`{"cmd":"test","version":[1,2,3]}`)
|
||||
pubkey_b, _, err := crypto.KeyPair("1")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
pubkey, err := crypto.EncodePublicKey(pubkey_b, "1")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
serializer, err = create_serializer("tpw", pubkey)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
raw, err := serializer(&rc)
|
||||
var ec utils.EncryptedRemoteControlCmd
|
||||
err = json.Unmarshal([]byte(raw), &ec)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if ec.Version != ver {
|
||||
t.Fatal("Incorrect version in encrypted command: ", ec.Version)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user