blob: bbef347d2e8515805dab7b61905b1fdaded88068 [file] [log] [blame]
package glob
import (
"testing"
)
func same(a, b []string) bool {
if len(a) != len(b) {
return false
}
for i := range a {
if a[i] != b[i] {
return false
}
}
return true
}
func TestStripFixedPrefix(t *testing.T) {
tests := []struct {
pattern string
fixed []string
rest string
}{
{"*", nil, "*"},
{"a/b/c/*", []string{"a", "b", "c"}, "*"},
{"a/b/*/...", []string{"a", "b"}, "*/..."},
{"a/b/c/...", []string{"a", "b", "c"}, "..."},
{"a/the\\?rain.in\\*spain", []string{"a", "the?rain.in*spain"}, ""},
}
for _, test := range tests {
g, err := Parse(test.pattern)
if err != nil {
t.Fatalf("parsing %q: %q", test.pattern, err.Error())
}
if f, ng := g.SplitFixedPrefix(); !same(f, test.fixed) || test.rest != ng.String() {
t.Fatalf("SplitFixedPrefix(%q) got %q,%q, expected %q,%q", test.pattern, f, ng.String(), test.fixed, test.rest)
}
}
}