123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- package door
- import (
- "fmt"
- "testing"
- )
- func TestLine(t *testing.T) {
- var line Line = Line{Text: "Test Me"}
- var output string = line.Output()
- var expect string = "Test Me"
- if output != expect {
- t.Errorf("Line: Expected %#v, got %#v", expect, output)
- }
- if line.Update() {
- t.Error("Line: No updater, should return false")
- }
- line.DefaultColor = Color(0)
- line.Width = 8
- output = line.Output()
- expect = "\x1b[0mTest Me "
- if output != expect {
- t.Errorf("Line: Expected %#v, got %#v", expect, output)
- }
- // leave the default color, it is ignored when there's a render function
- // line.DefaultColor = ""
- line.RenderF = RenderBlueYellow
- output = line.Output()
- var blue string = ColorText("BOLD BLUE")
- var yellow string = ColorText("BOLD YELLOW")
- expect = blue + "T" + yellow + "est " + blue + "M" + yellow + "e "
- if output != expect {
- t.Errorf("Line: Expected %#v, got %#v", expect, output)
- }
- }
- func TestLineUpdate(t *testing.T) {
- var counter int = 0
- uf := func() string {
- return fmt.Sprintf("Count: %d", counter)
- }
- var line Line = Line{Text: "", UpdateF: uf}
- line.Update()
- var output string = line.Output()
- var expect string = "Count: 0"
- if output != expect {
- t.Errorf("LineUpdate: Expected %#v, got %#v", expect, output)
- }
- if line.Update() {
- t.Error("Unexpected Update: should have returned false. (no change)")
- }
- counter++
- if !line.Update() {
- t.Error("Missing Update: value was changed, Text should have changed")
- }
- output = line.Output()
- expect = "Count: 1"
- if output != expect {
- t.Errorf("LineUpdate: Expected %#v, got %#v", expect, output)
- }
- }
- func TestLineUnicode(t *testing.T) {
- Unicode = true
- // code point > FFFF, use \U00000000 (not \u).
- var line Line = Line{Text: "Howdy \U0001f920"}
- var output string = line.Output()
- var expect string = "Howdy 🤠"
- if output != expect {
- t.Errorf("LineUnicode: Expected %#v, got %#v", expect, output)
- }
- if StringLen(expect) != 8 {
- t.Errorf("LineUnicode Strlen: Expected 8, got %d", StringLen(expect))
- }
- // 🤠 = 2 chars.
- line.Width = 9
- output = line.Output()
- expect = "Howdy 🤠 "
- if output != expect {
- t.Errorf("LineUnicode: Expected %#v, got %#v", expect, output)
- }
- }
- func TestLineCP437(t *testing.T) {
- Unicode = false
- var tests []string = []string{"\xdb TEXT \xdb",
- "\xf1 F1", "\xf2 F2", "\xf3 F3"}
- for _, test := range tests {
- var line Line = Line{Text: test}
- var output string = line.Output()
- var expect string = test
- if output != expect {
- t.Errorf("LineCP437: Expected %#v, got %#v", expect, output)
- }
- }
- }
|