74 lines
1.8 KiB
Go
74 lines
1.8 KiB
Go
package mujica
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/egoist/mygo/ui"
|
|
)
|
|
|
|
func compareTester(split *float64, disabled bool, n *int) *ui.Tester {
|
|
before, after := mediaTestBitmap(160, 90), mediaTestBitmap(160, 90)
|
|
return ui.NewTester(func(c *ui.Context) {
|
|
Use(c, Settings{})
|
|
ui.Column(c).Padding(20).Width(320).Children(func() {
|
|
if ImageCompare(c, before, after, split, ImageCompareOptions{Disabled: disabled}).Changed() {
|
|
*n++
|
|
}
|
|
})
|
|
}, 400, 300)
|
|
}
|
|
|
|
func TestImageCompareKeysAndDrag(t *testing.T) {
|
|
split, n := 0.5, 0
|
|
tt := compareTester(&split, false, &n)
|
|
tt.Key(0, ui.KeyTab)
|
|
tt.Key(0, ui.KeyRight)
|
|
if split != 0.51 {
|
|
t.Fatalf("Right: %v", split)
|
|
}
|
|
tt.Key(0, ui.KeyHome)
|
|
if split != 0 {
|
|
t.Fatalf("Home: %v", split)
|
|
}
|
|
r, ok := tt.Find("Before / After")
|
|
if !ok {
|
|
t.Fatal("not named")
|
|
}
|
|
tt.Press(r.X+r.W/2, r.Y+r.H/2)
|
|
tt.Move(r.X+r.W*0.75, r.Y+r.H/2)
|
|
tt.Release(r.X+r.W*0.75, r.Y+r.H/2)
|
|
if split < 0.7 || split > 0.8 {
|
|
t.Fatalf("drag: %v", split)
|
|
}
|
|
if n < 3 {
|
|
t.Fatalf("changes %d", n)
|
|
}
|
|
}
|
|
|
|
func TestImageCompareDisabled(t *testing.T) {
|
|
split, n := 0.5, 0
|
|
tt := compareTester(&split, true, &n)
|
|
tt.Key(0, ui.KeyTab)
|
|
tt.Key(0, ui.KeyRight)
|
|
r, _ := tt.Find("Before / After")
|
|
tt.ClickAt(r.X+10, r.Y+10)
|
|
if split != 0.5 || n != 0 {
|
|
t.Fatalf("disabled moved to %v", split)
|
|
}
|
|
bad := 2.0
|
|
mediaPanics(t, "split over 1", func(c *ui.Context) {
|
|
ImageCompare(c, mediaTestBitmap(4, 4), mediaTestBitmap(4, 4), &bad, ImageCompareOptions{})
|
|
})
|
|
}
|
|
|
|
func TestImageCompareSnapshot(t *testing.T) {
|
|
split := 0.4
|
|
before := mediaTestBitmap(160, 90)
|
|
after := ui.NewBitmap(mediaTestImage(90, 160))
|
|
snapshot(t, "image_compare", 360, 220, func(c *ui.Context) {
|
|
ui.Column(c).Padding(20).Width(320).Children(func() {
|
|
ImageCompare(c, before, after, &split, ImageCompareOptions{})
|
|
})
|
|
})
|
|
}
|