78 lines
1.8 KiB
Go
78 lines
1.8 KiB
Go
package utils_test
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"os"
|
|
"path"
|
|
"testing"
|
|
|
|
"github.com/photoview/photoview/api/test_utils"
|
|
"github.com/photoview/photoview/api/utils"
|
|
)
|
|
|
|
func TestMain(m *testing.M) {
|
|
os.Exit(test_utils.IntegrationTestRun(m))
|
|
}
|
|
|
|
func TestIsDirSymlink(t *testing.T) {
|
|
test_utils.FilesystemTest(t)
|
|
|
|
// Prepare a temporary directory for testing purposes
|
|
dir, err := ioutil.TempDir("", "testing")
|
|
if err != nil {
|
|
t.Fatalf("unable to create temp directory for testing")
|
|
}
|
|
defer os.RemoveAll(dir)
|
|
|
|
// Create regular file
|
|
_, err = os.Create(path.Join(dir, "regular_file"))
|
|
if err != nil {
|
|
t.Fatalf("unable to create regular file for testing")
|
|
}
|
|
|
|
// Create directory
|
|
err = os.Mkdir(path.Join(dir, "directory"), 0755)
|
|
if err != nil {
|
|
t.Fatalf("unable to create directory for testing")
|
|
}
|
|
|
|
// Create symlink to regular file
|
|
err = os.Symlink(path.Join(dir, "regular_file"), path.Join(dir, "file_link"))
|
|
if err != nil {
|
|
t.Fatalf("unable to create file link for testing")
|
|
}
|
|
|
|
// Create symlink to directory
|
|
err = os.Symlink(path.Join(dir, "directory"), path.Join(dir, "dir_link"))
|
|
if err != nil {
|
|
t.Fatalf("unable to create dir link for testing")
|
|
}
|
|
|
|
// Execute the actual tests
|
|
|
|
isDirLink, _ := utils.IsDirSymlink(path.Join(dir, "regular_file"))
|
|
if isDirLink {
|
|
t.Error("Failed detection of regular file")
|
|
}
|
|
|
|
isDirLink, _ = utils.IsDirSymlink(path.Join(dir, "directory"))
|
|
if isDirLink {
|
|
t.Error("Failed detection of directory")
|
|
}
|
|
|
|
isDirLink, _ = utils.IsDirSymlink(path.Join(dir, "file_link"))
|
|
if isDirLink {
|
|
t.Error("Failed detection of link to regular file")
|
|
}
|
|
|
|
isDirLink, _ = utils.IsDirSymlink(path.Join(dir, "dir_link"))
|
|
if !isDirLink {
|
|
t.Error("Failed detection of link to directory")
|
|
}
|
|
|
|
isDirLink, err = utils.IsDirSymlink(path.Join(dir, "non_existant"))
|
|
if err == nil {
|
|
t.Error("Missing error for non-existant file")
|
|
}
|
|
}
|