| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 | package doorimport (	"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)		}	}}
 |