Files
ALL-teach_sys/frontend_视觉设计/test_file_icons.js

87 lines
2.9 KiB
JavaScript
Raw Permalink Normal View History

// Test file to verify FileIcon component supports all file types
const testFiles = [
// Original types
{ name: "document.pdf", expected: "pdf" },
{ name: "report.doc", expected: "word" },
{ name: "report.docx", expected: "word" },
{ name: "presentation.ppt", expected: "ppt" },
{ name: "presentation.pptx", expected: "ppt" },
{ name: "data.xlsx", expected: "excel" },
{ name: "data.xls", expected: "excel" },
// New extended types
{ name: "photo.jpg", expected: "image" },
{ name: "photo.jpeg", expected: "image" },
{ name: "photo.png", expected: "image" },
{ name: "photo.gif", expected: "image" },
{ name: "photo.bmp", expected: "image" },
{ name: "video.mp4", expected: "video" },
{ name: "video.avi", expected: "video" },
{ name: "video.mov", expected: "video" },
{ name: "video.wmv", expected: "video" },
{ name: "design.psd", expected: "design" },
{ name: "design.ai", expected: "design" },
{ name: "design.sketch", expected: "design" },
{ name: "design.figma", expected: "design" },
{ name: "animation.aep", expected: "design" }, // After Effects
{ name: "archive.zip", expected: "archive" },
{ name: "archive.rar", expected: "archive" },
{ name: "archive.7z", expected: "archive" },
{ name: "archive.tar", expected: "archive" },
{ name: "audio.mp3", expected: "audio" },
{ name: "audio.wav", expected: "audio" },
{ name: "audio.flac", expected: "audio" },
{ name: "unknown.xyz", expected: "default" }
];
// Function to get file type based on extension (mimics Python logic)
function getFileType(filename) {
const ext = filename.split('.').pop().toLowerCase();
if (ext === 'pdf') return 'pdf';
if (['doc', 'docx'].includes(ext)) return 'word';
if (['ppt', 'pptx'].includes(ext)) return 'ppt';
if (['xls', 'xlsx'].includes(ext)) return 'excel';
if (['jpg', 'jpeg', 'png', 'gif', 'bmp'].includes(ext)) return 'image';
if (['mp4', 'avi', 'mov', 'wmv'].includes(ext)) return 'video';
if (['psd', 'ai', 'sketch', 'figma', 'aep'].includes(ext)) return 'design';
if (['zip', 'rar', '7z', 'tar'].includes(ext)) return 'archive';
if (['mp3', 'wav', 'flac'].includes(ext)) return 'audio';
return 'document'; // default
}
console.log("Testing file type detection:");
console.log("============================");
let passed = 0;
let failed = 0;
testFiles.forEach(test => {
const result = getFileType(test.name);
const expectedType = test.expected === 'default' ? 'document' : test.expected;
if (result === expectedType) {
console.log(`${test.name}${result}`);
passed++;
} else {
console.log(`${test.name}${result} (expected: ${expectedType})`);
failed++;
}
});
console.log("\n============================");
console.log(`Results: ${passed} passed, ${failed} failed`);
if (failed === 0) {
console.log("All file types are correctly detected! ✨");
} else {
console.log("Some file types need fixing.");
}