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