1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
package filepathx
import (
"os"
"strings"
"testing"
)
func TestGlob_ZeroDoubleStars_oneMatch(t *testing.T) {
// test passthru to vanilla path/filepath
path := "./a/b/c.d/e.f"
err := os.MkdirAll(path, 0755)
if err != nil {
t.Fatalf("os.MkdirAll: %s", err)
}
matches, err := Glob("./*/*/*.d")
if err != nil {
t.Fatalf("Glob: %s", err)
}
if len(matches) != 1 {
t.Fatalf("got %d matches, expected 1", len(matches))
}
expected := strings.Join([]string{"a", "b", "c.d"}, string(os.PathSeparator))
if matches[0] != expected {
t.Fatalf("matched [%s], expected [%s]", matches[0], expected)
}
}
func TestGlob_OneDoubleStar_oneMatch(t *testing.T) {
// test a single double-star
path := "./a/b/c.d/e.f"
err := os.MkdirAll(path, 0755)
if err != nil {
t.Fatalf("os.MkdirAll: %s", err)
}
matches, err := Glob("./**/*.f")
if err != nil {
t.Fatalf("Glob: %s", err)
}
if len(matches) != 1 {
t.Fatalf("got %d matches, expected 1", len(matches))
}
expected := strings.Join([]string{"a", "b", "c.d", "e.f"}, string(os.PathSeparator))
if matches[0] != expected {
t.Fatalf("matched [%s], expected [%s]", matches[0], expected)
}
}
func TestGlob_OneDoubleStar_twoMatches(t *testing.T) {
// test a single double-star
path := "./a/b/c.d/e.f"
err := os.MkdirAll(path, 0755)
if err != nil {
t.Fatalf("os.MkdirAll: %s", err)
}
matches, err := Glob("./a/**/*.*")
if err != nil {
t.Fatalf("Glob: %s", err)
}
if len(matches) != 2 {
t.Fatalf("got %d matches, expected 2", len(matches))
}
expected := []string{
strings.Join([]string{"a", "b", "c.d"}, string(os.PathSeparator)),
strings.Join([]string{"a", "b", "c.d", "e.f"}, string(os.PathSeparator)),
}
for i, match := range matches {
if match != expected[i] {
t.Fatalf("matched [%s], expected [%s]", match, expected[i])
}
}
}
func TestGlob_TwoDoubleStars_oneMatch(t *testing.T) {
// test two double-stars
path := "./a/b/c.d/e.f"
err := os.MkdirAll(path, 0755)
if err != nil {
t.Fatalf("os.MkdirAll: %s", err)
}
matches, err := Glob("./**/b/**/*.f")
if err != nil {
t.Fatalf("Glob: %s", err)
}
if len(matches) != 1 {
t.Fatalf("got %d matches, expected 1", len(matches))
}
expected := strings.Join([]string{"a", "b", "c.d", "e.f"}, string(os.PathSeparator))
if matches[0] != expected {
t.Fatalf("matched [%s], expected [%s]", matches[0], expected)
}
}
func TestExpand_DirectCall_emptySlice(t *testing.T) {
var empty []string
matches, err := Globs(empty).Expand()
if err != nil {
t.Fatalf("Glob: %s", err)
}
if len(matches) != 0 {
t.Fatalf("got %d matches, expected 0", len(matches))
}
}
|