File: boxadapter_test.go

package info (click to toggle)
golang-github-gcla-gowid 1.4.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 1,456 kB
  • sloc: makefile: 4
file content (119 lines) | stat: -rw-r--r-- 3,622 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
// Copyright 2019-2022 Graham Clark. All rights reserved.  Use of this source code is governed by the MIT license
// that can be found in the LICENSE file.

package boxadapter

import (
	"strings"
	"testing"

	"github.com/gcla/gowid"
	"github.com/gcla/gowid/gwtest"
	"github.com/gcla/gowid/widgets/edit"
	"github.com/gcla/gowid/widgets/list"
	tcell "github.com/gdamore/tcell/v2"
	"github.com/stretchr/testify/assert"
)

func TestBoxadapter1(t *testing.T) {
	w := edit.New(edit.Options{Caption: "", Text: "aaaaaaaaaaaaaaaaaaaa"})
	w2 := edit.New(edit.Options{Caption: "", Text: "bbbbbbbbbbbbbbbbbbbb"})

	c1 := w.Render(gowid.RenderFixed{}, gowid.Focused, gwtest.D)
	assert.Equal(t, "aaaaaaaaaaaaaaaaaaaa", c1.String())

	c1 = w.Render(gowid.RenderFlowWith{C: 6}, gowid.Focused, gwtest.D)
	assert.Equal(t, "aaaaaa\naaaaaa\naaaaaa\naa    ", c1.String())

	walker := list.NewSimpleListWalker([]gowid.IWidget{w, w2})
	lb := list.New(walker)

	c1 = lb.Render(gowid.RenderFlowWith{C: 6}, gowid.Focused, gwtest.D)
	assert.Equal(t, "aaaaaa\naaaaaa\naaaaaa\naa    \nbbbbbb\nbbbbbb\nbbbbbb\nbb    ", c1.String())

	evx := tcell.NewEventKey(tcell.KeyRune, 'x', tcell.ModNone)
	evlmx1y0 := tcell.NewEventMouse(1, 0, tcell.Button1, 0)
	evlmx1y4 := tcell.NewEventMouse(1, 4, tcell.Button1, 0)
	evlmx2y2 := tcell.NewEventMouse(2, 2, tcell.Button1, 0)
	evnonex1y0 := tcell.NewEventMouse(1, 0, tcell.ButtonNone, 0)
	evnonex1y4 := tcell.NewEventMouse(1, 4, tcell.ButtonNone, 0)
	evnonex2y2 := tcell.NewEventMouse(2, 2, tcell.ButtonNone, 0)

	w.UserInput(evlmx1y0, gowid.RenderFlowWith{C: 21}, gowid.Focused, gwtest.D)
	w.UserInput(evnonex1y0, gowid.RenderFlowWith{C: 21}, gowid.Focused, gwtest.D)
	w.UserInput(evx, gowid.RenderFlowWith{C: 21}, gowid.Focused, gwtest.D)
	c1 = w.Render(gowid.RenderFlowWith{C: 21}, gowid.Focused, gwtest.D)
	assert.Equal(t, "axaaaaaaaaaaaaaaaaaaa", c1.String())

	sz := gowid.RenderFlowWith{C: 6}
	c1 = lb.Render(sz, gowid.Focused, gwtest.D)
	assert.Equal(t, strings.Join([]string{
		"axaaaa",
		"aaaaaa",
		"aaaaaa",
		"aaa   ",
		"bbbbbb",
		"bbbbbb",
		"bbbbbb",
		"bb    ",
	}, "\n"), c1.String())

	lb.UserInput(evlmx1y4, sz, gowid.Focused, gwtest.D)
	gwtest.D.SetLastMouseState(gowid.MouseState{true, false, false})
	lb.UserInput(evnonex1y4, sz, gowid.Focused, gwtest.D)
	gwtest.D.SetLastMouseState(gowid.MouseState{false, false, false})
	lb.UserInput(evx, sz, gowid.Focused, gwtest.D)

	c1 = lb.Render(sz, gowid.Focused, gwtest.D)
	assert.Equal(t, strings.Join([]string{
		"axaaaa",
		"aaaaaa",
		"aaaaaa",
		"aaa   ",
		"bxbbbb",
		"bbbbbb",
		"bbbbbb",
		"bbb   ",
	}, "\n"), c1.String())

	bw := New(w, 2)
	bw2 := New(w2, 2)

	cw := bw.Render(sz, gowid.Focused, gwtest.D)
	assert.Equal(t, strings.Join([]string{
		"axaaaa",
		"aaaaaa",
	}, "\n"), cw.String())

	walker2 := list.NewSimpleListWalker([]gowid.IWidget{bw, bw2})
	lb2 := list.New(walker2)

	c2 := lb2.Render(sz, gowid.Focused, gwtest.D)
	assert.Equal(t, strings.Join([]string{
		"axaaaa",
		"aaaaaa",
		"bxbbbb",
		"bbbbbb",
	}, "\n"), c2.String())

	lb2.UserInput(evlmx2y2, sz, gowid.Focused, gwtest.D)
	gwtest.D.SetLastMouseState(gowid.MouseState{true, false, false})
	lb2.UserInput(evnonex2y2, sz, gowid.Focused, gwtest.D)
	gwtest.D.SetLastMouseState(gowid.MouseState{false, false, false})
	lb2.UserInput(evx, sz, gowid.Focused, gwtest.D)

	c2 = lb2.Render(sz, gowid.Focused, gwtest.D)
	assert.Equal(t, strings.Join([]string{
		"axaaaa",
		"aaaaaa",
		"bxxbbb",
		"bbbbbb",
	}, "\n"), c2.String())

}

//======================================================================
// Local Variables:
// mode: Go
// fill-column: 110
// End: