| package gitignore |
| |
| import ( |
| "os" |
| |
| "gopkg.in/src-d/go-billy.v3" |
| "gopkg.in/src-d/go-billy.v3/memfs" |
| |
| . "gopkg.in/check.v1" |
| ) |
| |
| type MatcherSuite struct { |
| FS billy.Filesystem |
| } |
| |
| var _ = Suite(&MatcherSuite{}) |
| |
| func (s *MatcherSuite) SetUpTest(c *C) { |
| fs := memfs.New() |
| f, err := fs.Create(".gitignore") |
| c.Assert(err, IsNil) |
| _, err = f.Write([]byte("vendor/g*/\n")) |
| c.Assert(err, IsNil) |
| err = f.Close() |
| c.Assert(err, IsNil) |
| |
| err = fs.MkdirAll("vendor", os.ModePerm) |
| c.Assert(err, IsNil) |
| f, err = fs.Create("vendor/.gitignore") |
| c.Assert(err, IsNil) |
| _, err = f.Write([]byte("!github.com/\n")) |
| c.Assert(err, IsNil) |
| err = f.Close() |
| c.Assert(err, IsNil) |
| |
| fs.MkdirAll("another", os.ModePerm) |
| fs.MkdirAll("vendor/github.com", os.ModePerm) |
| fs.MkdirAll("vendor/gopkg.in", os.ModePerm) |
| |
| s.FS = fs |
| } |
| |
| func (s *MatcherSuite) TestDir_ReadPatterns(c *C) { |
| ps, err := ReadPatterns(s.FS, nil) |
| c.Assert(err, IsNil) |
| c.Assert(ps, HasLen, 2) |
| |
| m := NewMatcher(ps) |
| c.Assert(m.Match([]string{"vendor", "gopkg.in"}, true), Equals, true) |
| c.Assert(m.Match([]string{"vendor", "github.com"}, true), Equals, false) |
| } |