Commit: Initial Update
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
package sixel_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/gdamore/tcell/v2"
|
||||
"github.com/nebara/nebara-os/internal/ui/sixel"
|
||||
)
|
||||
|
||||
func TestNewLogoRenderer(t *testing.T) {
|
||||
r, err := sixel.NewLogoRenderer()
|
||||
if err != nil {
|
||||
t.Fatalf("NewLogoRenderer failed: %v", err)
|
||||
}
|
||||
|
||||
if r.SixelDataLength() == 0 {
|
||||
t.Error("SIXEL data should not be empty")
|
||||
}
|
||||
|
||||
if r.CellCols() != sixel.DefaultLogoCellWidth {
|
||||
t.Errorf("expected CellCols %d, got %d", sixel.DefaultLogoCellWidth, r.CellCols())
|
||||
}
|
||||
|
||||
if r.CellRows() != sixel.DefaultLogoCellHeight {
|
||||
t.Errorf("expected CellRows %d, got %d", sixel.DefaultLogoCellHeight, r.CellRows())
|
||||
}
|
||||
|
||||
if !r.IsEnabled() {
|
||||
t.Error("Renderer should be enabled by default")
|
||||
}
|
||||
}
|
||||
|
||||
func TestToggleEnabled(t *testing.T) {
|
||||
r, err := sixel.NewLogoRenderer()
|
||||
if err != nil {
|
||||
t.Fatalf("NewLogoRenderer failed: %v", err)
|
||||
}
|
||||
|
||||
r.SetEnabled(false)
|
||||
if r.IsEnabled() {
|
||||
t.Error("Renderer should be disabled")
|
||||
}
|
||||
|
||||
r.SetEnabled(true)
|
||||
if !r.IsEnabled() {
|
||||
t.Error("Renderer should be re-enabled")
|
||||
}
|
||||
}
|
||||
|
||||
func TestDraw_SimulationScreenLock(t *testing.T) {
|
||||
r, err := sixel.NewLogoRenderer()
|
||||
if err != nil {
|
||||
t.Fatalf("NewLogoRenderer failed: %v", err)
|
||||
}
|
||||
|
||||
sim := tcell.NewSimulationScreen("")
|
||||
if err := sim.Init(); err != nil {
|
||||
t.Fatalf("simScreen init failed: %v", err)
|
||||
}
|
||||
defer sim.Fini()
|
||||
|
||||
sim.SetSize(120, 40)
|
||||
|
||||
// In test environment, emitSixel may fail if CONOUT$ or /dev/tty is unavailable in CI/headless,
|
||||
// but LockRegion must be executed on the screen.
|
||||
_ = r.Draw(sim, 4, 1)
|
||||
|
||||
// Invalidate and verify
|
||||
r.Invalidate()
|
||||
}
|
||||
Reference in New Issue
Block a user