1package input
2
3import (
4 "context"
5 "testing"
6
7 "github.com/bnema/puregotk/v4/gtk"
8 "github.com/stretchr/testify/assert"
9)
10
11type testGestureNavigator struct{}
12
13func (testGestureNavigator) GoBackDirect() {}
14func (testGestureNavigator) GoForwardDirect() {}
15
16func TestGestureHandlerAttachClearsExistingAttachmentState(t *testing.T) {
17 h := NewGestureHandler(context.Background())
18 h.pressedCb = func(gtk.GestureClick, int, float64, float64) {}
19 h.destroyCb = func(gtk.Widget) {}
20 h.pressedHandlerID = 1
21 h.destroyHandlerID = 2
22 h.onAction = func(context.Context, Action) error { return nil }
23 h.navigator = testGestureNavigator{}
24
25 h.detachExistingAttachment()
26
27 assert.Nil(t, h.pressedCb)
28 assert.Nil(t, h.destroyCb)
29 assert.Zero(t, h.pressedHandlerID)
30 assert.Zero(t, h.destroyHandlerID)
31 assert.Nil(t, h.onAction)
32 assert.Nil(t, h.navigator)
33}
34
35func TestGestureHandlerDetachClearsRetainedCallbacksAndState(t *testing.T) {
36 h := NewGestureHandler(context.Background())
37 h.pressedCb = func(gtk.GestureClick, int, float64, float64) {}
38 h.destroyCb = func(gtk.Widget) {}
39 h.pressedHandlerID = 1
40 h.destroyHandlerID = 2
41 h.onAction = func(context.Context, Action) error { return nil }
42 h.navigator = testGestureNavigator{}
43
44 h.Detach()
45
46 assert.Nil(t, h.pressedCb)
47 assert.Nil(t, h.destroyCb)
48 assert.Zero(t, h.pressedHandlerID)
49 assert.Zero(t, h.destroyHandlerID)
50 assert.Nil(t, h.onAction)
51 assert.Nil(t, h.navigator)
52}
53
54func TestGestureHandlerDetachForDestroyClearsRetainedCallbacksAndState(t *testing.T) {
55 h := NewGestureHandler(context.Background())
56 h.pressedCb = func(gtk.GestureClick, int, float64, float64) {}
57 h.destroyCb = func(gtk.Widget) {}
58 h.pressedHandlerID = 1
59 h.destroyHandlerID = 2
60 h.onAction = func(context.Context, Action) error { return nil }
61 h.navigator = testGestureNavigator{}
62
63 h.DetachForDestroy()
64
65 assert.Nil(t, h.pressedCb)
66 assert.Nil(t, h.destroyCb)
67 assert.Zero(t, h.pressedHandlerID)
68 assert.Zero(t, h.destroyHandlerID)
69 assert.Nil(t, h.onAction)
70 assert.Nil(t, h.navigator)
71}