Initialize rewrite
parent
6f6bde43f1
commit
666f1893c3
File diff suppressed because it is too large
Load Diff
@ -1,44 +1,188 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestIsVideoFile(t *testing.T) {
|
||||
assert.Equal(t, isVideoFile("test.txt"), false, "false positive")
|
||||
assert.Equal(t, isVideoFile(""), false, "false positive")
|
||||
assert.Equal(t, isVideoFile("test.mp4"), true, "false negative")
|
||||
assert.Equal(t, isVideoFile("test.mov"), true, "false negative")
|
||||
assert.Equal(t, isVideoFile("test.3gp"), true, "false negative")
|
||||
assert.Equal(t, isVideoFile("test.avi"), true, "false negative")
|
||||
assert.Equal(t, isVideoFile("test.mts"), true, "false negative")
|
||||
assert.Equal(t, isVideoFile("test.m4v"), true, "false negative")
|
||||
assert.Equal(t, isVideoFile("test.mpg"), true, "false negative")
|
||||
assert.Equal(t, isVideoFile("test.MP4"), true, "false negative")
|
||||
}
|
||||
|
||||
func TestIsImageFile(t *testing.T) {
|
||||
assert.Equal(t, isImageFile("test.txt"), false, "false positive")
|
||||
assert.Equal(t, isImageFile(""), false, "false positive")
|
||||
assert.Equal(t, isImageFile("test.jpg"), true, "false negative")
|
||||
assert.Equal(t, isImageFile("test.JPG"), true, "false negative")
|
||||
assert.Equal(t, isImageFile("test.jpeg"), true, "false negative")
|
||||
assert.Equal(t, isImageFile("test.heic"), true, "false negative")
|
||||
assert.Equal(t, isImageFile("test.png"), true, "false negative")
|
||||
assert.Equal(t, isImageFile("test.tif"), true, "false negative")
|
||||
assert.Equal(t, isImageFile("test.tiff"), true, "false negative")
|
||||
}
|
||||
|
||||
func TestIsMediaFile(t *testing.T) {
|
||||
assert.Equal(t, isMediaFile("test.txt"), false, "false positive")
|
||||
assert.Equal(t, isMediaFile("test.jpg"), true, "false negative")
|
||||
assert.Equal(t, isMediaFile("test.mp4"), true, "false negative")
|
||||
}
|
||||
|
||||
func TestStripExtension(t *testing.T) {
|
||||
assert.Equal(t, stripExtension("../tmp/filename.txt"), "../tmp/filename", "mismatch")
|
||||
assert.Equal(t, stripExtension("/tmp/filename.txt"), "/tmp/filename", "mismatch")
|
||||
assert.Equal(t, stripExtension("filename.txt"), "filename", "mismatch")
|
||||
var exitCount = 0
|
||||
|
||||
func testExit(ret int) {
|
||||
exitCount = exitCount + 1
|
||||
return
|
||||
}
|
||||
func TestValidateSourceAndGallery(t *testing.T) {
|
||||
originalExit := exit
|
||||
defer func() { exit = originalExit }()
|
||||
exit = testExit
|
||||
|
||||
tempDir, err := ioutil.TempDir("", "fastgallery-test-")
|
||||
if err != nil {
|
||||
t.Error("couldn't create temporary directory")
|
||||
}
|
||||
defer os.RemoveAll(tempDir)
|
||||
|
||||
exitCountBefore := exitCount
|
||||
_, _ = validateSourceAndGallery(tempDir+"/nonexistent", tempDir+"/gallery")
|
||||
assert.EqualValues(t, exitCountBefore+1, exitCount, "validateArgs did not exit")
|
||||
|
||||
exitCountBefore = exitCount
|
||||
_, _ = validateSourceAndGallery(tempDir, tempDir+"/gallery/nonexistent")
|
||||
assert.EqualValues(t, exitCountBefore+1, exitCount, "validateArgs did not exit")
|
||||
|
||||
exitCountBefore = exitCount
|
||||
_, _ = validateSourceAndGallery(tempDir, tempDir+"/gallery")
|
||||
assert.EqualValues(t, exitCountBefore, exitCount, "validateArgs did not exit")
|
||||
}
|
||||
|
||||
func TestIsDirectory(t *testing.T) {
|
||||
tempDir, err := ioutil.TempDir("", "fastgallery-test-")
|
||||
if err != nil {
|
||||
t.Error("couldn't create temporary directory")
|
||||
}
|
||||
defer os.RemoveAll(tempDir)
|
||||
|
||||
err = os.Mkdir(tempDir+"/subdir", 0755)
|
||||
if err != nil {
|
||||
t.Error("couldn't create subdirectory")
|
||||
}
|
||||
defer os.RemoveAll(tempDir + "/subdir")
|
||||
assert.True(t, isDirectory(tempDir+"/subdir"))
|
||||
|
||||
err = os.Symlink(tempDir+"/subdir", tempDir+"/symlink")
|
||||
if err != nil {
|
||||
t.Error("couldn't create symlink")
|
||||
}
|
||||
defer os.RemoveAll(tempDir + "/symlink")
|
||||
assert.True(t, isDirectory(tempDir+"/symlink"))
|
||||
|
||||
emptyFile, err := os.Create(tempDir + "/file")
|
||||
if err != nil {
|
||||
t.Error("couldn't create symlink")
|
||||
}
|
||||
defer emptyFile.Close()
|
||||
defer os.RemoveAll(tempDir + "/file")
|
||||
assert.False(t, isDirectory(tempDir+"/file"))
|
||||
|
||||
assert.False(t, isDirectory(tempDir+"/nonexistent"))
|
||||
}
|
||||
|
||||
func TestExists(t *testing.T) {
|
||||
tempDir, err := ioutil.TempDir("", "fastgallery-test-")
|
||||
if err != nil {
|
||||
t.Error("couldn't create temporary directory")
|
||||
}
|
||||
defer os.RemoveAll(tempDir)
|
||||
|
||||
emptyFile, err := os.Create(tempDir + "/file")
|
||||
if err != nil {
|
||||
t.Error("couldn't create symlink")
|
||||
}
|
||||
defer emptyFile.Close()
|
||||
defer os.RemoveAll(tempDir + "/file")
|
||||
assert.True(t, exists(tempDir+"/file"))
|
||||
|
||||
assert.False(t, exists(tempDir+"/nonexistent"))
|
||||
}
|
||||
|
||||
func TestDirHasMediaFiles(t *testing.T) {
|
||||
tempDir, err := ioutil.TempDir("", "fastgallery-test-")
|
||||
if err != nil {
|
||||
t.Error("couldn't create temporary directory")
|
||||
}
|
||||
defer os.RemoveAll(tempDir)
|
||||
|
||||
emptyFile, err := os.Create(tempDir + "/file.jpg")
|
||||
if err != nil {
|
||||
t.Error("couldn't create symlink")
|
||||
}
|
||||
defer emptyFile.Close()
|
||||
defer os.RemoveAll(tempDir + "/file.jpg")
|
||||
|
||||
assert.True(t, dirHasMediafiles(tempDir))
|
||||
}
|
||||
|
||||
func TestDirHasMediaFilesFailing(t *testing.T) {
|
||||
tempDir, err := ioutil.TempDir("", "fastgallery-test-")
|
||||
if err != nil {
|
||||
t.Error("couldn't create temporary directory")
|
||||
}
|
||||
defer os.RemoveAll(tempDir)
|
||||
|
||||
emptyFile, err := os.Create(tempDir + "/file.txt")
|
||||
if err != nil {
|
||||
t.Error("couldn't create symlink")
|
||||
}
|
||||
defer emptyFile.Close()
|
||||
defer os.RemoveAll(tempDir + "/file.txt")
|
||||
|
||||
assert.False(t, dirHasMediafiles(tempDir))
|
||||
}
|
||||
|
||||
func TestDirHasMediaFilesRecurse(t *testing.T) {
|
||||
tempDir, err := ioutil.TempDir("", "fastgallery-test-")
|
||||
if err != nil {
|
||||
t.Error("couldn't create temporary directory")
|
||||
}
|
||||
defer os.RemoveAll(tempDir)
|
||||
|
||||
err = os.Mkdir(tempDir+"/subdir", 0755)
|
||||
if err != nil {
|
||||
t.Error("couldn't create subdirectory")
|
||||
}
|
||||
defer os.RemoveAll(tempDir + "/subdir")
|
||||
|
||||
emptyFile, err := os.Create(tempDir + "/subdir/file.jpg")
|
||||
if err != nil {
|
||||
t.Error("couldn't create symlink")
|
||||
}
|
||||
defer emptyFile.Close()
|
||||
defer os.RemoveAll(tempDir + "/subdir/file.jpg")
|
||||
|
||||
assert.True(t, dirHasMediafiles(tempDir))
|
||||
}
|
||||
|
||||
func TestDirHasMediaFilesRecurseFailing(t *testing.T) {
|
||||
tempDir, err := ioutil.TempDir("", "fastgallery-test-")
|
||||
if err != nil {
|
||||
t.Error("couldn't create temporary directory")
|
||||
}
|
||||
defer os.RemoveAll(tempDir)
|
||||
|
||||
err = os.Mkdir(tempDir+"/subdir", 0755)
|
||||
if err != nil {
|
||||
t.Error("couldn't create subdirectory")
|
||||
}
|
||||
defer os.RemoveAll(tempDir + "/subdir")
|
||||
|
||||
emptyFile, err := os.Create(tempDir + "/subdir/file.txt")
|
||||
if err != nil {
|
||||
t.Error("couldn't create symlink")
|
||||
}
|
||||
defer emptyFile.Close()
|
||||
defer os.RemoveAll(tempDir + "/subdir/file.txt")
|
||||
|
||||
assert.False(t, dirHasMediafiles(tempDir))
|
||||
}
|
||||
|
||||
func TestIsXxxFile(t *testing.T) {
|
||||
assert.True(t, isVideoFile("test.mp4"))
|
||||
assert.False(t, isVideoFile("test.jpg"))
|
||||
assert.False(t, isVideoFile("test.txt"))
|
||||
assert.True(t, isImageFile("test.jpg"))
|
||||
assert.False(t, isImageFile("test.mp4"))
|
||||
assert.False(t, isImageFile("test.txt"))
|
||||
assert.True(t, isMediaFile("test.mp4"))
|
||||
assert.True(t, isMediaFile("test.jpg"))
|
||||
assert.False(t, isMediaFile("test.txt"))
|
||||
}
|
||||
|
||||
// TODO tests for
|
||||
// createDirectoryTree
|
||||
// stripExtension
|
||||
// compareDirectoryTrees
|
||||
// - exists, doesn't exist, some gallery files exist / some don't
|
||||
// - thumbnail modified earlier than original or vice versa
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,44 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestIsVideoFile(t *testing.T) {
|
||||
assert.Equal(t, isVideoFile("test.txt"), false, "false positive")
|
||||
assert.Equal(t, isVideoFile(""), false, "false positive")
|
||||
assert.Equal(t, isVideoFile("test.mp4"), true, "false negative")
|
||||
assert.Equal(t, isVideoFile("test.mov"), true, "false negative")
|
||||
assert.Equal(t, isVideoFile("test.3gp"), true, "false negative")
|
||||
assert.Equal(t, isVideoFile("test.avi"), true, "false negative")
|
||||
assert.Equal(t, isVideoFile("test.mts"), true, "false negative")
|
||||
assert.Equal(t, isVideoFile("test.m4v"), true, "false negative")
|
||||
assert.Equal(t, isVideoFile("test.mpg"), true, "false negative")
|
||||
assert.Equal(t, isVideoFile("test.MP4"), true, "false negative")
|
||||
}
|
||||
|
||||
func TestIsImageFile(t *testing.T) {
|
||||
assert.Equal(t, isImageFile("test.txt"), false, "false positive")
|
||||
assert.Equal(t, isImageFile(""), false, "false positive")
|
||||
assert.Equal(t, isImageFile("test.jpg"), true, "false negative")
|
||||
assert.Equal(t, isImageFile("test.JPG"), true, "false negative")
|
||||
assert.Equal(t, isImageFile("test.jpeg"), true, "false negative")
|
||||
assert.Equal(t, isImageFile("test.heic"), true, "false negative")
|
||||
assert.Equal(t, isImageFile("test.png"), true, "false negative")
|
||||
assert.Equal(t, isImageFile("test.tif"), true, "false negative")
|
||||
assert.Equal(t, isImageFile("test.tiff"), true, "false negative")
|
||||
}
|
||||
|
||||
func TestIsMediaFile(t *testing.T) {
|
||||
assert.Equal(t, isMediaFile("test.txt"), false, "false positive")
|
||||
assert.Equal(t, isMediaFile("test.jpg"), true, "false negative")
|
||||
assert.Equal(t, isMediaFile("test.mp4"), true, "false negative")
|
||||
}
|
||||
|
||||
func TestStripExtension(t *testing.T) {
|
||||
assert.Equal(t, stripExtension("../tmp/filename.txt"), "../tmp/filename", "mismatch")
|
||||
assert.Equal(t, stripExtension("/tmp/filename.txt"), "/tmp/filename", "mismatch")
|
||||
assert.Equal(t, stripExtension("filename.txt"), "filename", "mismatch")
|
||||
}
|
@ -1,14 +1,9 @@
|
||||
module github.com/tonimelisma/fastgallery
|
||||
module fastgallery-rewrite
|
||||
|
||||
go 1.15
|
||||
|
||||
require (
|
||||
github.com/cheggaaa/pb/v3 v3.0.5
|
||||
github.com/davidbyttow/govips/v2 v2.2.0
|
||||
github.com/fatih/color v1.10.0 // indirect
|
||||
github.com/mattn/go-runewidth v0.0.9 // indirect
|
||||
github.com/alexflint/go-arg v1.3.0
|
||||
github.com/kr/pretty v0.2.1
|
||||
github.com/stretchr/testify v1.6.1
|
||||
golang.org/x/image v0.0.0-20201208152932-35266b937fa6 // indirect
|
||||
golang.org/x/net v0.0.0-20201209123823-ac852fbbde11 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 // indirect
|
||||
)
|
||||
|
Loading…
Reference in New Issue