package main import ( "slices" "testing" ) func TestNewPlatformClipboardWriterUsesCommandWriterOnAndroid(t *testing.T) { t.Parallel() writer := newPlatformClipboardWriter("android", nil) if _, ok := writer.(*clipboardCommandWriter); !ok { t.Fatalf("newPlatformClipboardWriter(android) = %T, want *clipboardCommandWriter", writer) } } func TestNewPlatformClipboardWriterUsesSystemClipboardOffAndroid(t *testing.T) { t.Parallel() if writer := newPlatformClipboardWriter("linux", nil); writer != nil { t.Fatalf("newPlatformClipboardWriter(linux) = %T, want nil", writer) } } func TestClipboardCommandWriterDrainsQueuedWrites(t *testing.T) { t.Parallel() writer := &clipboardCommandWriter{} if err := writer.WriteText("username"); err != nil { t.Fatalf("WriteText(username) error = %v", err) } if err := writer.WriteText("password"); err != nil { t.Fatalf("WriteText(password) error = %v", err) } if got := writer.drain(); !slices.Equal(got, []string{"username", "password"}) { t.Fatalf("drain() = %v, want [username password]", got) } if got := writer.drain(); got != nil { t.Fatalf("drain() after flush = %v, want nil", got) } }