Files
photoprism/pkg/fs/zip_test.go
2025-04-05 12:43:51 +02:00

77 lines
1.6 KiB
Go

package fs
import (
"os"
"path/filepath"
"testing"
"github.com/stretchr/testify/assert"
)
func TestZip(t *testing.T) {
t.Run("Compressed", func(t *testing.T) {
zipDir := filepath.Join(os.TempDir(), "pkg/fs")
zipName := filepath.Join(zipDir, "compressed.zip")
unzipDir := filepath.Join(zipDir, "compressed")
files := []string{"./testdata/directory/example.jpg"}
if err := Zip(zipName, files, true); err != nil {
t.Fatal(err)
}
assert.FileExists(t, zipName)
if info, err := os.Stat(zipName); err != nil {
t.Error(err)
} else {
t.Logf("%s: %d bytes", zipName, info.Size())
}
if unzipFiles, err := Unzip(zipName, unzipDir, 2*GB); err != nil {
t.Error(err)
} else {
t.Logf("%s: %#v", zipName, unzipFiles)
}
if err := os.Remove(zipName); err != nil {
t.Fatal(err)
}
if err := os.RemoveAll(unzipDir); err != nil {
t.Fatal(err)
}
})
t.Run("Uncompressed", func(t *testing.T) {
zipDir := filepath.Join(os.TempDir(), "pkg/fs")
zipName := filepath.Join(zipDir, "uncompressed.zip")
unzipDir := filepath.Join(zipDir, "uncompressed")
files := []string{"./testdata/directory/example.jpg"}
if err := Zip(zipName, files, false); err != nil {
t.Fatal(err)
}
assert.FileExists(t, zipName)
if info, err := os.Stat(zipName); err != nil {
t.Error(err)
} else {
t.Logf("%s: %d bytes", zipName, info.Size())
}
if unzipFiles, err := Unzip(zipName, unzipDir, 2*GB); err != nil {
t.Error(err)
} else {
t.Logf("%s: %#v", zipName, unzipFiles)
}
if err := os.Remove(zipName); err != nil {
t.Fatal(err)
}
if err := os.RemoveAll(unzipDir); err != nil {
t.Fatal(err)
}
})
}