1// Copyright 2019-2020 Graham Clark. All rights reserved.  Use of this source code is governed by the MIT license
2// that can be found in the LICENSE file.
3
4package trackfocus
5
6import (
7	"testing"
8
9	"github.com/gcla/gowid"
10	"github.com/gcla/gowid/gwtest"
11	"github.com/gcla/gowid/widgets/text"
12	"github.com/stretchr/testify/assert"
13)
14
15func TestTrackFocus1(t *testing.T) {
16	tw := text.New("foobar")
17	ftw := New(tw)
18
19	c := ftw.Render(gowid.RenderFixed{}, gowid.Focused, gwtest.D)
20
21	cbran := false
22	ftw.OnFocusLost(gowid.MakeWidgetCallback("cb", func(app gowid.IApp, w gowid.IWidget) {
23		cbran = true
24	}))
25
26	assert.Equal(t, "foobar", c.String())
27
28	ftw.Render(gowid.RenderFixed{}, gowid.Focused, gwtest.D)
29	assert.Equal(t, false, cbran)
30
31	ftw.Render(gowid.RenderFixed{}, gowid.NotSelected, gwtest.D)
32	assert.Equal(t, true, cbran)
33
34	cbran = false
35	ftw.Render(gowid.RenderFixed{}, gowid.Focused, gwtest.D)
36	assert.Equal(t, false, cbran)
37
38	ftw.RemoveOnFocusLost(gowid.CallbackID{"cb"})
39	ftw.Render(gowid.RenderFixed{}, gowid.NotSelected, gwtest.D)
40	assert.Equal(t, false, cbran)
41}
42
43//======================================================================
44// Local Variables:
45// mode: Go
46// fill-column: 110
47// End:
48