source: Normalize file name to NFC

Fixes #2203
This commit is contained in:
Kishin Yagami
2016-08-09 03:25:00 +09:00
committed by Bjørn Erik Pedersen
parent b33bfd40be
commit 39df7724ad
2 changed files with 34 additions and 0 deletions

View File

@@ -16,6 +16,8 @@ package source
import (
"bytes"
"path/filepath"
"runtime"
"strings"
"testing"
)
@@ -82,3 +84,28 @@ func TestAddFile(t *testing.T) {
}
}
}
func TestUnicodeNorm(t *testing.T) {
if runtime.GOOS != "darwin" {
// Normalization code is only for Mac OS, since it is not necessary for other OSes.
return
}
paths := []struct {
NFC string
NFD string
}{
{NFC: "å", NFD: "\x61\xcc\x8a"},
{NFC: "é", NFD: "\x65\xcc\x81"},
}
for _, path := range paths {
src := new(Filesystem)
_ = src.add(path.NFD, strings.NewReader(""))
f := src.Files()[0]
if f.BaseFileName() != path.NFC {
t.Fatalf("file name in NFD form should be normalized (%s)", path.NFC)
}
}
}