/
text_test.go
120 lines (107 loc) · 2.91 KB
/
text_test.go
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
120
package canvas_test
import (
"image/color"
"testing"
"fyne.io/fyne"
"fyne.io/fyne/canvas"
"fyne.io/fyne/test"
"fyne.io/fyne/theme"
"github.com/stretchr/testify/assert"
)
func TestText_MinSize(t *testing.T) {
text := canvas.NewText("Test", color.NRGBA{0, 0, 0, 0xff})
min := text.MinSize()
assert.True(t, min.Width > 0)
assert.True(t, min.Height > 0)
text = canvas.NewText("Test2", color.NRGBA{0, 0, 0, 0xff})
min2 := text.MinSize()
assert.True(t, min2.Width > min.Width)
}
func TestText_MinSize_NoMultiLine(t *testing.T) {
text := canvas.NewText("Break", color.NRGBA{0, 0, 0, 0xff})
min := text.MinSize()
text = canvas.NewText("Bre\nak", color.NRGBA{0, 0, 0, 0xff})
min2 := text.MinSize()
assert.True(t, min2.Width > min.Width)
assert.True(t, min2.Height == min.Height)
}
func TestText_Layout(t *testing.T) {
test.NewApp()
defer test.NewApp()
for name, tt := range map[string]struct {
text string
align fyne.TextAlign
size fyne.Size
}{
"short_leading_small": {
text: "abc",
align: fyne.TextAlignLeading,
size: fyne.NewSize(1, 1),
},
"short_leading_large": {
text: "abc",
align: fyne.TextAlignLeading,
size: fyne.NewSize(500, 101),
},
"long_leading_small": {
text: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
align: fyne.TextAlignLeading,
size: fyne.NewSize(1, 1),
},
"long_leading_large": {
text: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
align: fyne.TextAlignLeading,
size: fyne.NewSize(500, 101),
},
"short_center_small": {
text: "abc",
align: fyne.TextAlignCenter,
size: fyne.NewSize(1, 1),
},
"short_center_large": {
text: "abc",
align: fyne.TextAlignCenter,
size: fyne.NewSize(500, 101),
},
"long_center_small": {
text: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
align: fyne.TextAlignCenter,
size: fyne.NewSize(1, 1),
},
"long_center_large": {
text: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
align: fyne.TextAlignCenter,
size: fyne.NewSize(500, 101),
},
"short_trailing_small": {
text: "abc",
align: fyne.TextAlignTrailing,
size: fyne.NewSize(1, 1),
},
"short_trailing_large": {
text: "abc",
align: fyne.TextAlignTrailing,
size: fyne.NewSize(500, 101),
},
"long_trailing_small": {
text: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
align: fyne.TextAlignTrailing,
size: fyne.NewSize(1, 1),
},
"long_trailing_large": {
text: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
align: fyne.TextAlignTrailing,
size: fyne.NewSize(500, 101),
},
} {
t.Run(name, func(t *testing.T) {
text := canvas.NewText(tt.text, theme.TextColor())
text.Alignment = tt.align
window := test.NewWindow(text)
window.SetPadded(false)
window.Resize(text.MinSize().Max(tt.size))
test.AssertImageMatches(t, "text/layout_"+name+".png", window.Canvas().Capture())
window.Close()
})
}
}