mcard-js
Version:
A JavaScript implementation of MCard - A data model for persistently storing content with cryptographic hashing and timestamping
79 lines (66 loc) • 4.46 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _content_type_detector = _interopRequireDefault(require("../content/model/content_type_detector.js"));
// Test script for content type detection
// Create test examples
const jsonBufferExample = {
"type": "Buffer",
"data": [123, 10, 32, 32, 34, 110, 97, 109, 101, 34, 58, 32, 34, 84, 101, 115, 116, 32, 79, 98, 106, 101, 99, 116, 34, 44, 10, 32, 32, 34, 112, 114, 111, 112, 101, 114, 116, 105, 101, 115, 34, 58, 32, 123, 10, 32, 32, 32, 32, 34, 99, 111, 108, 111, 114, 34, 58, 32, 34, 98, 108, 117, 101, 34, 44, 10, 32, 32, 32, 32, 34, 115, 105, 122, 101, 34, 58, 32, 49, 48, 48, 44, 10, 32, 32, 32, 32, 34, 110, 101, 115, 116, 101, 100, 34, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 34, 97, 114, 114, 97, 121, 34, 58, 32, 91, 10, 32, 32, 32, 32, 32, 32, 32, 32, 49, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 50, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 51, 10, 32, 32, 32, 32, 32, 32, 93, 44, 10, 32, 32, 32, 32, 32, 32, 34, 98, 111, 111, 108, 101, 97, 110, 34, 58, 32, 116, 114, 117, 101, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 10, 125]
};
const csvBufferExample = {
"type": "Buffer",
"data": [105, 100, 44, 110, 97, 109, 101, 44, 118, 97, 108, 117, 101, 10, 49, 44, 73, 116, 101, 109, 32, 49, 44, 49, 48, 48, 10, 50, 44, 73, 116, 101, 109, 32, 50, 44, 50, 48, 48, 10, 51, 44, 73, 116, 101, 109, 32, 51, 44, 51, 48, 48, 10]
};
// Plain text example
const txtBufferExample = {
"type": "Buffer",
"data": [84, 104, 105, 115, 32, 105, 115, 32, 97, 32, 115, 105, 109, 112, 108, 101, 32, 112, 108, 97, 105, 110, 32, 116, 101, 120, 116, 32, 102, 105, 108, 101, 46, 10, 10, 73, 116, 32, 100, 111, 101, 115, 110, 39, 116, 32, 104, 97, 118, 101, 32, 97, 110, 121, 32, 115, 112, 101, 99, 105, 97, 108, 32, 102, 111, 114, 109, 97, 116, 116, 105, 110, 103, 32, 111, 114, 32, 115, 116, 114, 117, 99, 116, 117, 114, 101, 46, 10, 10, 74, 117, 115, 116, 32, 112, 108, 97, 105, 110, 32, 116, 101, 120, 116, 46]
};
// Example MOV file header bytes
const movFileHeader = new Uint8Array([0x00, 0x00, 0x00, 0x14, 0x66, 0x74, 0x79, 0x70, 0x71, 0x74, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);
// Mock MOV file buffer
const movBufferExample = {
type: "Buffer",
data: Array.from(movFileHeader)
};
// Function to decode buffer content to readable format
function decodeBuffer(bufferJson) {
if (typeof bufferJson === 'object' && bufferJson.type === 'Buffer' && Array.isArray(bufferJson.data)) {
const array = new Uint8Array(bufferJson.data);
return new TextDecoder().decode(array);
}
return "Not a buffer format";
}
// Test detection without our enhancement
function runTests() {
console.log("====== TEST RESULTS ======");
// 1. Test JSON Buffer content
console.log("\n1. Testing JSON Buffer Example:");
console.log("Decoded content:", decodeBuffer(jsonBufferExample));
const jsonResult = _content_type_detector.default.detectContentType(jsonBufferExample);
console.log("Detection result:", jsonResult);
// 2. Test CSV Buffer content
console.log("\n2. Testing CSV Buffer Example:");
console.log("Decoded content:", decodeBuffer(csvBufferExample));
const csvResult = _content_type_detector.default.detectContentType(csvBufferExample);
console.log("Detection result:", csvResult);
// 3. Test TXT Buffer content
console.log("\n3. Testing TXT Buffer Example:");
console.log("Decoded content:", decodeBuffer(txtBufferExample));
const txtResult = _content_type_detector.default.detectContentType(txtBufferExample);
console.log("Detection result:", txtResult);
// 4. Test MOV file detection
console.log("\n4. Testing MOV Buffer Example:");
console.log("Cannot show decoded binary content");
const movResult = _content_type_detector.default.detectContentType(movBufferExample);
console.log("Detection result:", movResult);
// Summary
console.log("\n====== SUMMARY ======");
console.log("JSON detected as:", jsonResult.mimeType, "(" + jsonResult.extension + ")");
console.log("CSV detected as:", csvResult.mimeType, "(" + csvResult.extension + ")");
console.log("TXT detected as:", txtResult.mimeType, "(" + txtResult.extension + ")");
console.log("MOV detected as:", movResult.mimeType, "(" + movResult.extension + ")");
}
runTests();
// Run this with Node.js: node src/utils/test-content-detection.js
//# sourceMappingURL=test-content-detection.js.map