82 lines
1.8 KiB
Go
82 lines
1.8 KiB
Go
package layout
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"git.eeqj.de/sneak/hdmistat/internal/fbdraw"
|
|
)
|
|
|
|
func TestBasicDrawing(t *testing.T) {
|
|
// Create a small grid for testing
|
|
grid := fbdraw.NewCharGrid(40, 10)
|
|
draw := NewDraw(grid)
|
|
|
|
// Clear the screen
|
|
draw.Clear()
|
|
|
|
// Draw some text
|
|
draw.Color(Color("white")).Text(5, 2, "Hello")
|
|
draw.TextCenter(0, 4, "Centered")
|
|
|
|
// Create a sub-grid with border
|
|
subGrid := draw.Grid(1, 1, 38, 8)
|
|
subGrid.Border(Color("gray50"))
|
|
|
|
// Basic checks
|
|
if grid.Width != 40 {
|
|
t.Errorf("Expected width 40, got %d", grid.Width)
|
|
}
|
|
if grid.Height != 10 {
|
|
t.Errorf("Expected height 10, got %d", grid.Height)
|
|
}
|
|
|
|
// Check that some text was written (not all cells are empty)
|
|
hasContent := false
|
|
for y := 0; y < grid.Height; y++ {
|
|
for x := 0; x < grid.Width; x++ {
|
|
if grid.Cells[y][x].Rune != ' ' {
|
|
hasContent = true
|
|
break
|
|
}
|
|
}
|
|
}
|
|
|
|
if !hasContent {
|
|
t.Error("Expected some content in the grid, but all cells are empty")
|
|
}
|
|
|
|
// Print the grid for visual inspection
|
|
t.Logf("Rendered grid:\n%s", grid)
|
|
}
|
|
|
|
func TestHelloWorldScenario(t *testing.T) {
|
|
// Simulate the hello world scenario
|
|
grid := fbdraw.NewCharGrid(80, 25)
|
|
draw := NewDraw(grid)
|
|
|
|
draw.Clear()
|
|
|
|
centerY := grid.Height / 2
|
|
|
|
draw.Color(Color("cyan")).Bold()
|
|
draw.TextCenter(0, centerY-2, "Hello World")
|
|
|
|
draw.Color(Color("white")).Plain()
|
|
draw.TextCenter(0, centerY, "12:34:56")
|
|
|
|
draw.Color(Color("gray60"))
|
|
draw.TextCenter(0, centerY+2, "Uptime: 1:23")
|
|
|
|
borderGrid := draw.Grid(2, 2, grid.Width-4, grid.Height-4)
|
|
borderGrid.Border(Color("gray30"))
|
|
|
|
// Check that the grid has the expected content
|
|
gridStr := grid.String()
|
|
t.Logf("Hello World grid:\n%s", gridStr)
|
|
|
|
// Very basic check - just ensure it's not empty
|
|
if len(gridStr) == 0 {
|
|
t.Error("Grid string is empty")
|
|
}
|
|
}
|