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) } }