Files

54 lines
1.3 KiB
Go
Raw Permalink Normal View History

package capture
import (
"bufio"
"bytes"
"testing"
"tea.chunkbyte.com/kato/go-worm/lib/models"
)
func TestCaptureProtocolRoundTrip(t *testing.T) {
t.Parallel()
var buf bytes.Buffer
2026-09-02 13:32:21 +03:00
if err := writeRequest(&buf, 1, "jpeg", 40, true); err != nil {
t.Fatal(err)
}
2026-09-02 13:32:21 +03:00
mon, format, quality, omit, err := readRequest(bufio.NewReader(bytes.NewReader(buf.Bytes())))
if err != nil {
t.Fatal(err)
}
2026-09-02 13:32:21 +03:00
if mon != 1 || format != "jpeg" || quality != 40 || !omit {
t.Fatalf("request = %d %s %d omit=%v", mon, format, quality, omit)
}
buf.Reset()
want := models.CapturedImage{
ContentType: "image/jpeg",
Data: []byte{0xff, 0xd8, '\n', 0x00, 0xff},
Left: 10, Top: 20, Width: 100, Height: 50,
}
if err := writeFrame(&buf, want); err != nil {
t.Fatal(err)
}
got, err := readResponse(bufio.NewReader(&buf))
if err != nil {
t.Fatal(err)
}
if got.ContentType != want.ContentType || got.Left != want.Left || got.Width != want.Width || !bytes.Equal(got.Data, want.Data) {
t.Fatalf("frame mismatch: %#v", got)
}
}
func TestCaptureProtocolError(t *testing.T) {
t.Parallel()
var buf bytes.Buffer
if err := writeErr(&buf, "no displays found"); err != nil {
t.Fatal(err)
}
_, err := readResponse(bufio.NewReader(&buf))
if err == nil || err.Error() != "no displays found" {
t.Fatalf("err = %v", err)
}
}