aboutsummaryrefslogtreecommitdiffstats
path: root/plumbing/format/gitignore/dir_test.go
diff options
context:
space:
mode:
authorOleg Sklyar <osklyar@gmx.com>2017-06-19 00:26:14 +0200
committerOleg Sklyar <osklyar@gmx.com>2017-06-19 00:26:14 +0200
commit2f4ac21bad4c14b860a7d5c9d761857cb8d4f89c (patch)
tree869b08e65c35bf80dfd15f665d100e5ca3539917 /plumbing/format/gitignore/dir_test.go
parent2a00316b65585be2bf68e1ea9c0e42c6af4f5679 (diff)
downloadgo-git-2f4ac21bad4c14b860a7d5c9d761857cb8d4f89c.tar.gz
Adds gitignore support
Diffstat (limited to 'plumbing/format/gitignore/dir_test.go')
-rw-r--r--plumbing/format/gitignore/dir_test.go41
1 files changed, 41 insertions, 0 deletions
diff --git a/plumbing/format/gitignore/dir_test.go b/plumbing/format/gitignore/dir_test.go
new file mode 100644
index 0000000..61f3fc0
--- /dev/null
+++ b/plumbing/format/gitignore/dir_test.go
@@ -0,0 +1,41 @@
+package gitignore
+
+import (
+ "os"
+ "testing"
+
+ "gopkg.in/src-d/go-billy.v2"
+ "gopkg.in/src-d/go-billy.v2/memfs"
+)
+
+func setupTestFS(subdirError bool) billy.Filesystem {
+ fs := memfs.New()
+ f, _ := fs.Create(".gitignore")
+ f.Write([]byte("vendor/g*/\n"))
+ f.Close()
+ fs.MkdirAll("vendor", os.ModePerm)
+ f, _ = fs.Create("vendor/.gitignore")
+ f.Write([]byte("!github.com/\n"))
+ f.Close()
+ fs.MkdirAll("another", os.ModePerm)
+ fs.MkdirAll("vendor/github.com", os.ModePerm)
+ fs.MkdirAll("vendor/gopkg.in", os.ModePerm)
+ return fs
+}
+
+func TestDir_ReadPatterns(t *testing.T) {
+ ps, err := ReadPatterns(setupTestFS(false), nil)
+ if err != nil {
+ t.Errorf("no error expected, found %v", err)
+ }
+ if len(ps) != 2 {
+ t.Errorf("expected 2 patterns, found %v", len(ps))
+ }
+ m := NewMatcher(ps)
+ if !m.Match([]string{"vendor", "gopkg.in"}, true) {
+ t.Error("expected a match")
+ }
+ if m.Match([]string{"vendor", "github.com"}, true) {
+ t.Error("expected no match")
+ }
+}