photoprism/pkg/fs/fs_test.go

111 lines
2.8 KiB
Go
Raw Normal View History

package fs
import (
"fmt"
2019-07-17 14:33:01 +02:00
"os"
"os/user"
"testing"
"github.com/stretchr/testify/assert"
)
func TestMain(m *testing.M) {
if insensitive, err := CaseInsensitive(os.TempDir()); err != nil {
fmt.Println(err)
} else if insensitive {
IgnoreCase()
}
code := m.Run()
os.Exit(code)
}
func TestFileExists(t *testing.T) {
assert.True(t, FileExists("./testdata/test.jpg"))
assert.True(t, FileExists("./testdata/test.jpg"))
assert.True(t, FileExists("./testdata/empty.jpg"))
assert.False(t, FileExists("./foo.jpg"))
2020-07-07 15:13:42 +02:00
assert.False(t, FileExists(""))
}
func TestFileExistsNotEmpty(t *testing.T) {
assert.True(t, FileExistsNotEmpty("./testdata/test.jpg"))
assert.True(t, FileExistsNotEmpty("./testdata/test.jpg"))
assert.False(t, FileExistsNotEmpty("./testdata/empty.jpg"))
assert.False(t, FileExistsNotEmpty("./foo.jpg"))
assert.False(t, FileExistsNotEmpty(""))
}
func TestPathExists(t *testing.T) {
assert.True(t, PathExists("./testdata"))
assert.False(t, PathExists("./testdata/test.jpg"))
assert.False(t, PathExists("./testdata3ggdtgdg"))
2023-06-27 18:41:36 +02:00
assert.False(t, PathExists(""))
}
func TestPathWritable(t *testing.T) {
2023-06-27 18:41:36 +02:00
assert.True(t, PathWritable("./testdata"))
assert.False(t, PathWritable("./testdata/test.jpg"))
assert.False(t, PathWritable("./testdata3ggdtgdg"))
assert.False(t, PathWritable(""))
}
func TestWritable(t *testing.T) {
assert.True(t, Writable("./testdata"))
assert.False(t, Writable("./testdata3ggdtgdg"))
assert.False(t, Writable(""))
}
2019-07-17 14:33:01 +02:00
func TestOverwrite(t *testing.T) {
data := make([]byte, 3)
data[1] = 3
data[2] = 8
tmpPath := "./testdata/_tmp"
os.Mkdir(tmpPath, 0777)
defer os.RemoveAll(tmpPath)
result := Overwrite("./testdata/_tmp/notyetexisting.jpg", data)
assert.FileExists(t, "./testdata/_tmp/notyetexisting.jpg")
assert.True(t, result)
2019-07-17 14:33:01 +02:00
}
2019-07-17 14:33:01 +02:00
func TestExpandedFilename(t *testing.T) {
t.Run("test.jpg", func(t *testing.T) {
filename := Abs("./testdata/test.jpg")
2019-07-17 14:33:01 +02:00
assert.Contains(t, filename, "/testdata/test.jpg")
assert.IsType(t, "", filename)
})
t.Run("empty filename", func(t *testing.T) {
filename := Abs("")
2019-07-17 14:33:01 +02:00
assert.Equal(t, "", filename)
assert.IsType(t, "", filename)
})
t.Run("~ in filename", func(t *testing.T) {
usr, _ := user.Current()
expected := usr.HomeDir + "/test.jpg"
filename := Abs("~/test.jpg")
assert.Equal(t, expected, filename)
2019-07-17 14:33:01 +02:00
assert.IsType(t, "", filename)
})
}
func TestDirIsEmpty(t *testing.T) {
t.Run("CurrentDir", func(t *testing.T) {
assert.Equal(t, false, DirIsEmpty("."))
2019-07-17 14:33:01 +02:00
})
t.Run("Testdata", func(t *testing.T) {
assert.Equal(t, false, DirIsEmpty("./testdata"))
2019-07-17 14:33:01 +02:00
})
t.Run("XXX", func(t *testing.T) {
assert.Equal(t, false, DirIsEmpty("./xxx"))
})
t.Run("EmptyDir", func(t *testing.T) {
if err := os.Mkdir("./testdata/emptyDir", 0777); err != nil {
t.Fatal(err)
}
defer os.RemoveAll("./testdata/emptyDir")
assert.Equal(t, true, DirIsEmpty("./testdata/emptyDir"))
2019-07-17 14:33:01 +02:00
})
}