summaryrefslogtreecommitdiffstats
path: root/vendor/golang.org/x/net/idna/idna_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/golang.org/x/net/idna/idna_test.go')
-rw-r--r--vendor/golang.org/x/net/idna/idna_test.go65
1 files changed, 65 insertions, 0 deletions
diff --git a/vendor/golang.org/x/net/idna/idna_test.go b/vendor/golang.org/x/net/idna/idna_test.go
index b1bc6fa22..0b067cac9 100644
--- a/vendor/golang.org/x/net/idna/idna_test.go
+++ b/vendor/golang.org/x/net/idna/idna_test.go
@@ -39,5 +39,70 @@ func TestIDNA(t *testing.T) {
}
}
+func TestIDNASeparators(t *testing.T) {
+ type subCase struct {
+ unicode string
+ wantASCII string
+ wantErr bool
+ }
+
+ testCases := []struct {
+ name string
+ profile *Profile
+ subCases []subCase
+ }{
+ {
+ name: "Punycode", profile: Punycode,
+ subCases: []subCase{
+ {"example\u3002jp", "xn--examplejp-ck3h", false},
+ {"東京\uFF0Ejp", "xn--jp-l92cn98g071o", false},
+ {"大阪\uFF61jp", "xn--jp-ku9cz72u463f", false},
+ },
+ },
+ {
+ name: "Lookup", profile: Lookup,
+ subCases: []subCase{
+ {"example\u3002jp", "example.jp", false},
+ {"東京\uFF0Ejp", "xn--1lqs71d.jp", false},
+ {"大阪\uFF61jp", "xn--pssu33l.jp", false},
+ },
+ },
+ {
+ name: "Display", profile: Display,
+ subCases: []subCase{
+ {"example\u3002jp", "example.jp", false},
+ {"東京\uFF0Ejp", "xn--1lqs71d.jp", false},
+ {"大阪\uFF61jp", "xn--pssu33l.jp", false},
+ },
+ },
+ {
+ name: "Registration", profile: Registration,
+ subCases: []subCase{
+ {"example\u3002jp", "", true},
+ {"東京\uFF0Ejp", "", true},
+ {"大阪\uFF61jp", "", true},
+ },
+ },
+ }
+ for _, tc := range testCases {
+ t.Run(tc.name, func(t *testing.T) {
+ for _, c := range tc.subCases {
+ gotA, err := tc.profile.ToASCII(c.unicode)
+ if c.wantErr {
+ if err == nil {
+ t.Errorf("ToASCII(%q): got no error, but an error expected", c.unicode)
+ }
+ } else {
+ if err != nil {
+ t.Errorf("ToASCII(%q): got err=%v, but no error expected", c.unicode, err)
+ } else if gotA != c.wantASCII {
+ t.Errorf("ToASCII(%q): got %q, want %q", c.unicode, gotA, c.wantASCII)
+ }
+ }
+ }
+ })
+ }
+}
+
// TODO(nigeltao): test errors, once we've specified when ToASCII and ToUnicode
// return errors.