From c8e0b811275b3c8d4e9f8674e5412a1b7b8d2326 Mon Sep 17 00:00:00 2001 From: Kyosuke Fujimoto Date: Sun, 29 Nov 2020 09:26:31 +0900 Subject: [PATCH] Add test cases of split container divider drag --- widget/splitcontainer_test.go | 58 +++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/widget/splitcontainer_test.go b/widget/splitcontainer_test.go index 31f47eb7a7..bb847c69f9 100644 --- a/widget/splitcontainer_test.go +++ b/widget/splitcontainer_test.go @@ -280,6 +280,64 @@ func TestSplitContainer_divider_drag(t *testing.T) { }) } +func TestSplitContainer_divider_drag_StartOffsetLessThanMinSize(t *testing.T) { + size := fyne.NewSize(30, 30) + objA := canvas.NewRectangle(color.NRGBA{0, 0, 0, 0}) + objA.SetMinSize(size) + objB := canvas.NewRectangle(color.NRGBA{0, 0, 0, 0}) + objB.SetMinSize(size) + t.Run("Horizontal", func(t *testing.T) { + split := NewHSplitContainer(objA, objB) + split.Resize(fyne.NewSize(100, 100)) + divider := newDivider(split) + t.Run("Leading", func(t *testing.T) { + split.SetOffset(0.1) + + divider.Dragged(&fyne.DragEvent{ + DraggedX: 10, + }) + divider.DragEnd() + + assert.Equal(t, 0.4, split.Offset) + }) + t.Run("Trailing", func(t *testing.T) { + split.SetOffset(0.9) + + divider.Dragged(&fyne.DragEvent{ + DraggedX: -10, + }) + divider.DragEnd() + + assert.Equal(t, 0.6, split.Offset) + }) + }) + t.Run("Vertical", func(t *testing.T) { + split := NewVSplitContainer(objA, objB) + split.Resize(fyne.NewSize(100, 100)) + divider := newDivider(split) + t.Run("Leading", func(t *testing.T) { + split.SetOffset(0.1) + + divider.Dragged(&fyne.DragEvent{ + DraggedY: 10, + }) + divider.DragEnd() + + assert.Equal(t, 0.4, split.Offset) + }) + t.Run("Trailing", func(t *testing.T) { + split.SetOffset(0.9) + + divider.Dragged(&fyne.DragEvent{ + DraggedY: -10, + }) + divider.DragEnd() + + assert.Equal(t, 0.6, split.Offset) + }) + }) +} + func TestSplitContainer_divider_hover(t *testing.T) { t.Run("Horizontal", func(t *testing.T) { divider := newDivider(&SplitContainer{Horizontal: true})