mirror of
https://gitee.com/johng/gf.git
synced 2024-12-05 05:37:55 +08:00
79 lines
1.4 KiB
Go
79 lines
1.4 KiB
Go
// +build !windows,!js
|
|
|
|
package runewidth
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
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) {
|
|
lcctype := os.Getenv("LC_CTYPE")
|
|
defer os.Setenv("LC_CTYPE", lcctype)
|
|
|
|
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) {
|
|
lcctype := os.Getenv("LC_CTYPE")
|
|
defer os.Setenv("LC_CTYPE", lcctype)
|
|
lang := os.Getenv("LANG")
|
|
defer os.Setenv("LANG", lang)
|
|
|
|
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)
|
|
}
|
|
}
|
|
}
|