mirror of
https://github.com/go-sylixos/elvish.git
synced 2024-12-13 01:47:51 +08:00
7a324880b0
This addresses #944.
53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
package ui
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestColorSGR(t *testing.T) {
|
|
// Test the SGR sequences of colors indirectly via VTString of Text, since
|
|
// that is how they are used.
|
|
testTextVTString(t, []textVTStringTest{
|
|
{T("foo", FgRed), "\033[31mfoo\033[m"},
|
|
{T("foo", BgRed), "\033[41mfoo\033[m"},
|
|
|
|
{T("foo", FgBrightRed), "\033[91mfoo\033[m"},
|
|
{T("foo", BgBrightRed), "\033[101mfoo\033[m"},
|
|
|
|
{T("foo", Fg(XTerm256Color(30))), "\033[38;5;30mfoo\033[m"},
|
|
{T("foo", Bg(XTerm256Color(30))), "\033[48;5;30mfoo\033[m"},
|
|
|
|
{T("foo", Fg(TrueColor(30, 40, 50))), "\033[38;2;30;40;50mfoo\033[m"},
|
|
{T("foo", Bg(TrueColor(30, 40, 50))), "\033[48;2;30;40;50mfoo\033[m"},
|
|
})
|
|
}
|
|
|
|
var colorStringTests = []struct {
|
|
color Color
|
|
str string
|
|
}{
|
|
{Red, "red"},
|
|
{BrightRed, "bright-red"},
|
|
{XTerm256Color(30), "color30"},
|
|
{TrueColor(0x33, 0x44, 0x55), "#334455"},
|
|
}
|
|
|
|
func TestColorString(t *testing.T) {
|
|
for _, test := range colorStringTests {
|
|
s := test.color.String()
|
|
if s != test.str {
|
|
t.Errorf("%v.String() -> %q, want %q", test.color, s, test.str)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestParseColor(t *testing.T) {
|
|
for _, test := range colorStringTests {
|
|
c := parseColor(test.str)
|
|
if !reflect.DeepEqual(c, test.color) {
|
|
t.Errorf("parseError(%q) -> %v, want %v", test.str, c, test.color)
|
|
}
|
|
}
|
|
}
|