1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- package utils
- import (
- "path/filepath"
- "testing"
- )
- func abs(t *testing.T, p string) string {
- o, err := filepath.Abs(p)
- if err != nil {
- t.Fatal(err)
- }
- return o
- }
- func TestFollowSymLinkNormal(t *testing.T) {
- link := "testdata/fs/a/d/c/data"
- rewrite, err := FollowSymlinkInScope(link, "testdata")
- if err != nil {
- t.Fatal(err)
- }
- if expected := abs(t, "testdata/b/c/data"); expected != rewrite {
- t.Fatalf("Expected %s got %s", expected, rewrite)
- }
- }
- func TestFollowSymLinkRandomString(t *testing.T) {
- if _, err := FollowSymlinkInScope("toto", "testdata"); err == nil {
- t.Fatal("Random string should fail but didn't")
- }
- }
- func TestFollowSymLinkLastLink(t *testing.T) {
- link := "testdata/fs/a/d"
- rewrite, err := FollowSymlinkInScope(link, "testdata")
- if err != nil {
- t.Fatal(err)
- }
- if expected := abs(t, "testdata/b"); expected != rewrite {
- t.Fatalf("Expected %s got %s", expected, rewrite)
- }
- }
- func TestFollowSymLinkRelativeLink(t *testing.T) {
- link := "testdata/fs/a/e/c/data"
- rewrite, err := FollowSymlinkInScope(link, "testdata")
- if err != nil {
- t.Fatal(err)
- }
- if expected := abs(t, "testdata/fs/b/c/data"); expected != rewrite {
- t.Fatalf("Expected %s got %s", expected, rewrite)
- }
- }
- func TestFollowSymLinkRelativeLinkScope(t *testing.T) {
- link := "testdata/fs/a/f"
- rewrite, err := FollowSymlinkInScope(link, "testdata")
- if err != nil {
- t.Fatal(err)
- }
- if expected := abs(t, "testdata/test"); expected != rewrite {
- t.Fatalf("Expected %s got %s", expected, rewrite)
- }
- link = "testdata/fs/b/h"
- rewrite, err = FollowSymlinkInScope(link, "testdata")
- if err != nil {
- t.Fatal(err)
- }
- if expected := abs(t, "testdata/root"); expected != rewrite {
- t.Fatalf("Expected %s got %s", expected, rewrite)
- }
- }
|