159 lines
5.9 KiB
Go
159 lines
5.9 KiB
Go
|
package text
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
)
|
||
|
|
||
|
func init() {
|
||
|
EnableColors()
|
||
|
}
|
||
|
|
||
|
func TestColor_EnableAndDisable(t *testing.T) {
|
||
|
defer EnableColors()
|
||
|
|
||
|
EnableColors()
|
||
|
assert.Equal(t, "\x1b[31mtest\x1b[0m", FgRed.Sprint("test"))
|
||
|
|
||
|
DisableColors()
|
||
|
assert.Equal(t, "test", FgRed.Sprint("test"))
|
||
|
|
||
|
EnableColors()
|
||
|
assert.Equal(t, "\x1b[31mtest\x1b[0m", FgRed.Sprint("test"))
|
||
|
}
|
||
|
|
||
|
func ExampleColor_EscapeSeq() {
|
||
|
fmt.Printf("Black Background: %#v\n", BgBlack.EscapeSeq())
|
||
|
fmt.Printf("Black Foreground: %#v\n", FgBlack.EscapeSeq())
|
||
|
|
||
|
// Output: Black Background: "\x1b[40m"
|
||
|
// Black Foreground: "\x1b[30m"
|
||
|
}
|
||
|
|
||
|
func TestColor_EscapeSeq(t *testing.T) {
|
||
|
assert.Equal(t, "\x1b[40m", BgBlack.EscapeSeq())
|
||
|
}
|
||
|
|
||
|
func ExampleColor_HTMLProperty() {
|
||
|
fmt.Printf("Bold: %#v\n", Bold.HTMLProperty())
|
||
|
fmt.Printf("Black Background: %#v\n", BgBlack.HTMLProperty())
|
||
|
fmt.Printf("Black Foreground: %#v\n", FgBlack.HTMLProperty())
|
||
|
|
||
|
// Output: Bold: "class=\"bold\""
|
||
|
// Black Background: "class=\"bg-black\""
|
||
|
// Black Foreground: "class=\"fg-black\""
|
||
|
}
|
||
|
|
||
|
func TestColor_HTMLProperty(t *testing.T) {
|
||
|
assert.Equal(t, "class=\"bold\"", Bold.HTMLProperty())
|
||
|
assert.Equal(t, "class=\"bg-black\"", BgBlack.HTMLProperty())
|
||
|
assert.Equal(t, "class=\"fg-black\"", FgBlack.HTMLProperty())
|
||
|
}
|
||
|
|
||
|
func ExampleColor_Sprint() {
|
||
|
fmt.Printf("%#v\n", BgBlack.Sprint("Black Background"))
|
||
|
fmt.Printf("%#v\n", FgBlack.Sprint("Black Foreground"))
|
||
|
|
||
|
// Output: "\x1b[40mBlack Background\x1b[0m"
|
||
|
// "\x1b[30mBlack Foreground\x1b[0m"
|
||
|
}
|
||
|
|
||
|
func TestColor_Sprint(t *testing.T) {
|
||
|
assert.Equal(t, "\x1b[31mtest true\x1b[0m", FgRed.Sprint("test ", true))
|
||
|
|
||
|
assert.Equal(t, "\x1b[32mtest\x1b[0m\x1b[31mtrue\x1b[0m", FgRed.Sprint("\x1b[32mtest\x1b[0m", true))
|
||
|
assert.Equal(t, "\x1b[32mtest true\x1b[0m", FgRed.Sprint("\x1b[32mtest ", true))
|
||
|
assert.Equal(t, "\x1b[32mtest\x1b[0m\x1b[31m \x1b[0m", FgRed.Sprint("\x1b[32mtest\x1b[0m "))
|
||
|
assert.Equal(t, "\x1b[32mtest\x1b[0m", FgRed.Sprint("\x1b[32mtest\x1b[0m"))
|
||
|
}
|
||
|
|
||
|
func ExampleColor_Sprintf() {
|
||
|
fmt.Printf("%#v\n", BgBlack.Sprintf("%s %s", "Black", "Background"))
|
||
|
fmt.Printf("%#v\n", FgBlack.Sprintf("%s %s", "Black", "Foreground"))
|
||
|
|
||
|
// Output: "\x1b[40mBlack Background\x1b[0m"
|
||
|
// "\x1b[30mBlack Foreground\x1b[0m"
|
||
|
}
|
||
|
|
||
|
func TestColor_Sprintf(t *testing.T) {
|
||
|
assert.Equal(t, "\x1b[31mtest true\x1b[0m", FgRed.Sprintf("test %s", "true"))
|
||
|
}
|
||
|
|
||
|
func ExampleColors_EscapeSeq() {
|
||
|
fmt.Printf("Black Background: %#v\n", Colors{BgBlack}.EscapeSeq())
|
||
|
fmt.Printf("Black Foreground: %#v\n", Colors{FgBlack}.EscapeSeq())
|
||
|
fmt.Printf("Black Background, White Foreground: %#v\n", Colors{BgBlack, FgWhite}.EscapeSeq())
|
||
|
fmt.Printf("Black Foreground, White Background: %#v\n", Colors{FgBlack, BgWhite}.EscapeSeq())
|
||
|
|
||
|
// Output: Black Background: "\x1b[40m"
|
||
|
// Black Foreground: "\x1b[30m"
|
||
|
// Black Background, White Foreground: "\x1b[40;37m"
|
||
|
// Black Foreground, White Background: "\x1b[30;47m"
|
||
|
}
|
||
|
|
||
|
func TestColors_EscapeSeq(t *testing.T) {
|
||
|
assert.Equal(t, "", Colors{}.EscapeSeq())
|
||
|
assert.Equal(t, "\x1b[40;37m", Colors{BgBlack, FgWhite}.EscapeSeq())
|
||
|
}
|
||
|
|
||
|
func ExampleColors_HTMLProperty() {
|
||
|
fmt.Printf("Black Background: %#v\n", Colors{BgBlack}.HTMLProperty())
|
||
|
fmt.Printf("Black Foreground: %#v\n", Colors{FgBlack}.HTMLProperty())
|
||
|
fmt.Printf("Black Background, White Foreground: %#v\n", Colors{BgBlack, FgWhite}.HTMLProperty())
|
||
|
fmt.Printf("Black Foreground, White Background: %#v\n", Colors{FgBlack, BgWhite}.HTMLProperty())
|
||
|
fmt.Printf("Bold Italic Underline Red Text: %#v\n", Colors{Bold, Italic, Underline, FgRed}.HTMLProperty())
|
||
|
|
||
|
// Output: Black Background: "class=\"bg-black\""
|
||
|
// Black Foreground: "class=\"fg-black\""
|
||
|
// Black Background, White Foreground: "class=\"bg-black fg-white\""
|
||
|
// Black Foreground, White Background: "class=\"bg-white fg-black\""
|
||
|
// Bold Italic Underline Red Text: "class=\"bold fg-red italic underline\""
|
||
|
}
|
||
|
|
||
|
func TestColors_HTMLProperty(t *testing.T) {
|
||
|
assert.Equal(t, "", Colors{}.HTMLProperty())
|
||
|
assert.Equal(t, "class=\"bg-black fg-white\"", Colors{BgBlack, FgWhite}.HTMLProperty())
|
||
|
assert.Equal(t, "class=\"bold fg-red\"", Colors{Bold, FgRed}.HTMLProperty())
|
||
|
}
|
||
|
|
||
|
func ExampleColors_Sprint() {
|
||
|
fmt.Printf("%#v\n", Colors{BgBlack}.Sprint("Black Background"))
|
||
|
fmt.Printf("%#v\n", Colors{BgBlack, FgWhite}.Sprint("Black Background, White Foreground"))
|
||
|
fmt.Printf("%#v\n", Colors{FgBlack}.Sprint("Black Foreground"))
|
||
|
fmt.Printf("%#v\n", Colors{FgBlack, BgWhite}.Sprint("Black Foreground, White Background"))
|
||
|
|
||
|
// Output: "\x1b[40mBlack Background\x1b[0m"
|
||
|
// "\x1b[40;37mBlack Background, White Foreground\x1b[0m"
|
||
|
// "\x1b[30mBlack Foreground\x1b[0m"
|
||
|
// "\x1b[30;47mBlack Foreground, White Background\x1b[0m"
|
||
|
}
|
||
|
|
||
|
func TestColors_Sprint(t *testing.T) {
|
||
|
assert.Equal(t, "test true", Colors{}.Sprint("test ", true))
|
||
|
assert.Equal(t, "\x1b[31mtest true\x1b[0m", Colors{FgRed}.Sprint("test ", true))
|
||
|
|
||
|
assert.Equal(t, "\x1b[32mtest\x1b[0m\x1b[31mtrue\x1b[0m", Colors{FgRed}.Sprint("\x1b[32mtest\x1b[0m", true))
|
||
|
assert.Equal(t, "\x1b[32mtest true\x1b[0m", Colors{FgRed}.Sprint("\x1b[32mtest ", true))
|
||
|
assert.Equal(t, "\x1b[32mtest\x1b[0m\x1b[31m \x1b[0m", Colors{FgRed}.Sprint("\x1b[32mtest\x1b[0m "))
|
||
|
assert.Equal(t, "\x1b[32mtest\x1b[0m", Colors{FgRed}.Sprint("\x1b[32mtest\x1b[0m"))
|
||
|
}
|
||
|
|
||
|
func ExampleColors_Sprintf() {
|
||
|
fmt.Printf("%#v\n", Colors{BgBlack}.Sprintf("%s %s", "Black", "Background"))
|
||
|
fmt.Printf("%#v\n", Colors{BgBlack, FgWhite}.Sprintf("%s, %s", "Black Background", "White Foreground"))
|
||
|
fmt.Printf("%#v\n", Colors{FgBlack}.Sprintf("%s %s", "Black", "Foreground"))
|
||
|
fmt.Printf("%#v\n", Colors{FgBlack, BgWhite}.Sprintf("%s, %s", "Black Foreground", "White Background"))
|
||
|
|
||
|
// Output: "\x1b[40mBlack Background\x1b[0m"
|
||
|
// "\x1b[40;37mBlack Background, White Foreground\x1b[0m"
|
||
|
// "\x1b[30mBlack Foreground\x1b[0m"
|
||
|
// "\x1b[30;47mBlack Foreground, White Background\x1b[0m"
|
||
|
}
|
||
|
|
||
|
func TestColors_Sprintf(t *testing.T) {
|
||
|
assert.Equal(t, "test true", Colors{}.Sprintf("test %s", "true"))
|
||
|
assert.Equal(t, "\x1b[31mtest true\x1b[0m", Colors{FgRed}.Sprintf("test %s", "true"))
|
||
|
}
|