46 lines
994 B
Go
46 lines
994 B
Go
package clifmt
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
)
|
|
|
|
var lastPrint = ""
|
|
|
|
func mockupPrinter(format string, args ...interface{}) (int, error) {
|
|
lastPrint = fmt.Sprintf(format, args...)
|
|
return 0, nil
|
|
}
|
|
|
|
func TestSpecial(t *testing.T) {
|
|
defaultPrinter = mockupPrinter
|
|
|
|
tests := []struct {
|
|
Pre func()
|
|
Processed string
|
|
Expect string
|
|
}{
|
|
{nil, Warn(), "\033[0;31m/!\\\033[0m"},
|
|
{nil, Warn("any text"), "\033[0;31m/!\\\033[0m any text"},
|
|
|
|
{nil, Info(), "\033[0;34m(!)\033[0m"},
|
|
{nil, Info("any text"), "\033[0;34m(!)\033[0m any text"},
|
|
|
|
{func() { Title("any text") }, "", "\n\033[0;33m>>\033[0m |1| any text \033[0;33m<<\033[0m\n"},
|
|
{func() { Title("any text") }, "", "\n\033[0;33m>>\033[0m |2| any text \033[0;33m<<\033[0m\n"},
|
|
}
|
|
|
|
for i, test := range tests {
|
|
|
|
if test.Pre != nil {
|
|
test.Pre()
|
|
test.Processed = lastPrint
|
|
}
|
|
|
|
if test.Processed != test.Expect {
|
|
t.Errorf("[%d] expected '%s', got '%s'", i, escape(test.Expect), escape(test.Processed))
|
|
}
|
|
|
|
}
|
|
}
|