89 lines
2.0 KiB
Go
89 lines
2.0 KiB
Go
|
package ui
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestContainerOneBox(t *testing.T) {
|
||
|
expect := `┌─ box one ────────┐
|
||
|
│ │
|
||
|
│ │
|
||
|
│ │
|
||
|
└──────────────────┘
|
||
|
`
|
||
|
m := &MockScreen{}
|
||
|
one := NewBox("box one", nil, Contents{})
|
||
|
container := NewContainer(
|
||
|
Contents{{Container: one}},
|
||
|
LayoutHorizontalEven,
|
||
|
)
|
||
|
m.Init()
|
||
|
m.Resize(0, 0, 5, 20)
|
||
|
container.SetSize(0, 0, 5, 20)
|
||
|
container.Draw(m)
|
||
|
result := m.DumpContents()
|
||
|
if result != expect {
|
||
|
fmt.Printf("expected:\n%+v", expect)
|
||
|
fmt.Printf("actual:\n%+v", result)
|
||
|
t.Fail()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestContainerTwoBoxesHStack(t *testing.T) {
|
||
|
expect := `┌─ one ──┐┌─ two ──┐
|
||
|
│ ││ │
|
||
|
│ ││ │
|
||
|
│ ││ │
|
||
|
└────────┘└────────┘
|
||
|
`
|
||
|
m := &MockScreen{}
|
||
|
one := NewBox("one", nil, Contents{})
|
||
|
two := NewBox("two", nil, Contents{})
|
||
|
container := NewContainer(
|
||
|
Contents{{Container: one}, {Container: two}},
|
||
|
LayoutHorizontalEven,
|
||
|
)
|
||
|
m.Init()
|
||
|
m.Resize(0, 0, 5, 20)
|
||
|
container.SetSize(0, 0, 5, 20)
|
||
|
container.Draw(m)
|
||
|
result := m.DumpContents()
|
||
|
if result != expect {
|
||
|
fmt.Printf("expected:\n%+v", expect)
|
||
|
fmt.Printf("actual:\n%+v", result)
|
||
|
t.Fail()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestContainerTwoBoxesVStack(t *testing.T) {
|
||
|
expect := `┌─ one ──┐
|
||
|
│ │
|
||
|
│ │
|
||
|
│ │
|
||
|
└────────┘
|
||
|
┌─ two ──┐
|
||
|
│ │
|
||
|
│ │
|
||
|
│ │
|
||
|
└────────┘
|
||
|
`
|
||
|
m := &MockScreen{}
|
||
|
one := NewBox("one", nil, Contents{})
|
||
|
two := NewBox("two", nil, Contents{})
|
||
|
container := NewContainer(
|
||
|
Contents{{Container: one}, {Container: two}},
|
||
|
LayoutVerticalEven,
|
||
|
)
|
||
|
m.Init()
|
||
|
m.Resize(0, 0, 10, 10)
|
||
|
container.SetSize(0, 0, 10, 10)
|
||
|
container.Draw(m)
|
||
|
result := m.DumpContents()
|
||
|
if result != expect {
|
||
|
fmt.Printf("expected:\n%+v", expect)
|
||
|
fmt.Printf("actual:\n%+v", result)
|
||
|
t.Fail()
|
||
|
}
|
||
|
}
|