File: withscrollbar_test.go

package info (click to toggle)
termshark 2.4.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,424 kB
  • sloc: sh: 98; makefile: 10
file content (82 lines) | stat: -rw-r--r-- 1,836 bytes parent folder | download | duplicates (4)
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
package withscrollbar

import (
	"fmt"
	"strings"
	"testing"

	"github.com/gcla/gowid"
	"github.com/gcla/gowid/gwtest"
	"github.com/gcla/gowid/widgets/button"
	"github.com/gcla/gowid/widgets/list"
	"github.com/gcla/gowid/widgets/text"
	"github.com/stretchr/testify/assert"
)

type scrollingListBox struct {
	*list.Widget
}

func (t *scrollingListBox) Up(lines int, size gowid.IRenderSize, app gowid.IApp)     {}
func (t *scrollingListBox) Down(lines int, size gowid.IRenderSize, app gowid.IApp)   {}
func (t *scrollingListBox) UpPage(num int, size gowid.IRenderSize, app gowid.IApp)   {}
func (t *scrollingListBox) DownPage(num int, size gowid.IRenderSize, app gowid.IApp) {}

func (t *scrollingListBox) ScrollLength() int {
	return 8
}

func (t *scrollingListBox) ScrollPosition() int {
	return 0
}

func Test1(t *testing.T) {
	bws := make([]gowid.IWidget, 8)
	for i := 0; i < len(bws); i++ {
		bws[i] = button.NewBare(text.New(fmt.Sprintf("%03d", i)))
	}

	walker := list.NewSimpleListWalker(bws)
	lbox := &scrollingListBox{Widget: list.New(walker)}
	sbox := New(lbox)

	canvas1 := sbox.Render(gowid.MakeRenderBox(4, 8), gowid.NotSelected, gwtest.D)
	res := strings.Join([]string{
		"000▲",
		"001█",
		"002 ",
		"003 ",
		"004 ",
		"005 ",
		"006 ",
		"007▼",
	}, "\n")
	assert.Equal(t, res, canvas1.String())

	sbox = New(lbox, Options{
		HideIfContentFits: true,
	})

	canvas1 = sbox.Render(gowid.MakeRenderBox(4, 8), gowid.NotSelected, gwtest.D)
	res = strings.Join([]string{
		"000 ",
		"001 ",
		"002 ",
		"003 ",
		"004 ",
		"005 ",
		"006 ",
		"007 ",
	}, "\n")
	assert.Equal(t, res, canvas1.String())

	canvas1 = sbox.Render(gowid.MakeRenderBox(4, 5), gowid.NotSelected, gwtest.D)
	res = strings.Join([]string{
		"000▲",
		"001█",
		"002 ",
		"003 ",
		"004▼",
	}, "\n")
	assert.Equal(t, res, canvas1.String())
}