43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
package storage
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestCleanupSystemTrashRemovesOldEntries(t *testing.T) {
|
|
data := t.TempDir()
|
|
t.Setenv("XDG_DATA_HOME", data)
|
|
files := filepath.Join(data, "Trash", "files")
|
|
info := filepath.Join(data, "Trash", "info")
|
|
if err := os.MkdirAll(files, 0755); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := os.MkdirAll(info, 0755); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
oldInfo := filepath.Join(info, "old.txt.trashinfo")
|
|
oldFile := filepath.Join(files, "old.txt")
|
|
if err := os.WriteFile(oldInfo, []byte("[Trash Info]\n"), 0600); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := os.WriteFile(oldFile, []byte("old"), 0600); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
old := time.Now().Add(-31 * 24 * time.Hour)
|
|
if err := os.Chtimes(oldInfo, old, old); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := cleanupSystemTrash(30 * 24 * time.Hour); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if _, err := os.Stat(oldInfo); !os.IsNotExist(err) {
|
|
t.Fatalf("old info remains: %v", err)
|
|
}
|
|
if _, err := os.Stat(oldFile); !os.IsNotExist(err) {
|
|
t.Fatalf("old file remains: %v", err)
|
|
}
|
|
}
|