diff options
Diffstat (limited to '')
-rw-r--r-- | dependencies/pkg/mod/github.com/mattn/go-runewidth@v0.0.12/runewidth_posix_test.go | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/dependencies/pkg/mod/github.com/mattn/go-runewidth@v0.0.12/runewidth_posix_test.go b/dependencies/pkg/mod/github.com/mattn/go-runewidth@v0.0.12/runewidth_posix_test.go new file mode 100644 index 0000000..3c21c7e --- /dev/null +++ b/dependencies/pkg/mod/github.com/mattn/go-runewidth@v0.0.12/runewidth_posix_test.go @@ -0,0 +1,98 @@ +// +build !windows +// +build !js +// +build !appengine + +package runewidth + +import ( + "os" + "testing" +) + +type envVars struct { + lang string + lc_all string + lc_ctype string +} + +func saveEnv() envVars { + return envVars{ + lang: os.Getenv("LANG"), + lc_all: os.Getenv("LC_ALL"), + lc_ctype: os.Getenv("LC_CTYPE"), + } +} +func restoreEnv(env *envVars) { + os.Setenv("LANG", env.lang) + os.Setenv("LC_ALL", env.lc_all) + os.Setenv("LC_CTYPE", env.lc_ctype) +} + +func TestIsEastAsian(t *testing.T) { + testcases := []struct { + locale string + want bool + }{ + {"foo@cjk_narrow", false}, + {"foo@cjk", false}, + {"utf-8@cjk", false}, + {"ja_JP.CP932", true}, + } + + for _, tt := range testcases { + got := isEastAsian(tt.locale) + if got != tt.want { + t.Fatalf("isEastAsian(%q) should be %v", tt.locale, tt.want) + } + } +} + +func TestIsEastAsianLCCTYPE(t *testing.T) { + env := saveEnv() + defer restoreEnv(&env) + os.Setenv("LC_ALL", "") + + testcases := []struct { + lcctype string + want bool + }{ + {"ja_JP.UTF-8", true}, + {"C", false}, + {"POSIX", false}, + {"en_US.UTF-8", false}, + } + + for _, tt := range testcases { + os.Setenv("LC_CTYPE", tt.lcctype) + got := IsEastAsian() + if got != tt.want { + t.Fatalf("IsEastAsian() for LC_CTYPE=%v should be %v", tt.lcctype, tt.want) + } + } +} + +func TestIsEastAsianLANG(t *testing.T) { + env := saveEnv() + defer restoreEnv(&env) + os.Setenv("LC_ALL", "") + os.Setenv("LC_CTYPE", "") + + testcases := []struct { + lcctype string + want bool + }{ + {"ja_JP.UTF-8", true}, + {"C", false}, + {"POSIX", false}, + {"en_US.UTF-8", false}, + {"C.UTF-8", false}, + } + + for _, tt := range testcases { + os.Setenv("LANG", tt.lcctype) + got := IsEastAsian() + if got != tt.want { + t.Fatalf("IsEastAsian() for LANG=%v should be %v", tt.lcctype, tt.want) + } + } +} |