| package bindata |
| |
| import ( |
| "regexp" |
| "strings" |
| "testing" |
| ) |
| |
| func TestSafeFunctionName(t *testing.T) { |
| var knownFuncs = make(map[string]int) |
| name1 := safeFunctionName("foo/bar", knownFuncs) |
| name2 := safeFunctionName("foo_bar", knownFuncs) |
| if name1 == name2 { |
| t.Errorf("name collision") |
| } |
| } |
| |
| func TestFindFiles(t *testing.T) { |
| var toc []Asset |
| var knownFuncs = make(map[string]int) |
| var visitedPaths = make(map[string]bool) |
| err := findFiles("testdata/dupname", "testdata/dupname", true, &toc, []*regexp.Regexp{}, knownFuncs, visitedPaths) |
| if err != nil { |
| t.Errorf("expected to be no error: %+v", err) |
| } |
| if toc[0].Func == toc[1].Func { |
| t.Errorf("name collision") |
| } |
| } |
| |
| func TestFindFilesWithSymlinks(t *testing.T) { |
| var tocSrc []Asset |
| var tocTarget []Asset |
| |
| var knownFuncs = make(map[string]int) |
| var visitedPaths = make(map[string]bool) |
| err := findFiles("testdata/symlinkSrc", "testdata/symlinkSrc", true, &tocSrc, []*regexp.Regexp{}, knownFuncs, visitedPaths) |
| if err != nil { |
| t.Errorf("expected to be no error: %+v", err) |
| } |
| |
| knownFuncs = make(map[string]int) |
| visitedPaths = make(map[string]bool) |
| err = findFiles("testdata/symlinkParent", "testdata/symlinkParent", true, &tocTarget, []*regexp.Regexp{}, knownFuncs, visitedPaths) |
| if err != nil { |
| t.Errorf("expected to be no error: %+v", err) |
| } |
| |
| if len(tocSrc) != len(tocTarget) { |
| t.Errorf("Symlink source and target should have the same number of assets. Expected %d got %d", len(tocTarget), len(tocSrc)) |
| } else { |
| for i, _ := range tocSrc { |
| targetFunc := strings.TrimPrefix(tocTarget[i].Func, "symlinktarget") |
| targetFunc = strings.ToLower(targetFunc[:1]) + targetFunc[1:] |
| if tocSrc[i].Func != targetFunc { |
| t.Errorf("Symlink source and target produced different function lists. Expected %s to be %s", targetFunc, tocSrc[i].Func) |
| } |
| } |
| } |
| } |
| |
| func TestFindFilesWithRecursiveSymlinks(t *testing.T) { |
| var toc []Asset |
| |
| var knownFuncs = make(map[string]int) |
| var visitedPaths = make(map[string]bool) |
| err := findFiles("testdata/symlinkRecursiveParent", "testdata/symlinkRecursiveParent", true, &toc, []*regexp.Regexp{}, knownFuncs, visitedPaths) |
| if err != nil { |
| t.Errorf("expected to be no error: %+v", err) |
| } |
| |
| if len(toc) != 1 { |
| t.Errorf("Only one asset should have been found. Got %d: %v", len(toc), toc) |
| } |
| } |
| |
| func TestFindFilesWithSymlinkedFile(t *testing.T) { |
| var toc []Asset |
| |
| var knownFuncs = make(map[string]int) |
| var visitedPaths = make(map[string]bool) |
| err := findFiles("testdata/symlinkFile", "testdata/symlinkFile", true, &toc, []*regexp.Regexp{}, knownFuncs, visitedPaths) |
| if err != nil { |
| t.Errorf("expected to be no error: %+v", err) |
| } |
| |
| if len(toc) != 1 { |
| t.Errorf("Only one asset should have been found. Got %d: %v", len(toc), toc) |
| } |
| } |