1
0
Fork 0
mirror of https://github.com/codedread/bitjs synced 2025-10-03 17:49:16 +02:00
bitjs/tests/archive-test.js
2017-02-19 12:39:10 -08:00

62 lines
2.3 KiB
JavaScript

/*
* archive-test.js
*
* Licensed under the MIT License
*
* Copyright(c) 2017 Google Inc.
*/
var assertEquals = muther.assertEquals;
var testInputs = {
'testUnzipDeflate': 'archive-testfiles/test-unzip-deflate.json',
'testUnzipStore': 'archive-testfiles/test-unzip-store.json',
'testUnrarM1': 'archive-testfiles/test-unrar-m1.json',
'testUnrarM2': 'archive-testfiles/test-unrar-m2.json',
'testUnrarM3': 'archive-testfiles/test-unrar-m3.json',
'testUnrarM4': 'archive-testfiles/test-unrar-m4.json',
'testUnrarM5': 'archive-testfiles/test-unrar-m5.json',
'testUnrarMA4': 'archive-testfiles/test-unrar-ma4.json',
};
var testSuite = {tests: {}};
for (var testName in testInputs) {
var testInputFilename = testInputs[testName];
testSuite.tests[testName] = new Promise(function(resolve, reject) {
var scriptEl = document.createElement('script');
scriptEl.setAttribute('src', testInputFilename);
scriptEl.addEventListener('load', function(evt) {
// document.body.removeChild(scriptEl);
var testFile = window.archiveTestFile;
var archivedFile = new Uint8Array(
atob(testFile.archivedFile)
.split(',')
.map(function(str) { return parseInt(str); })
);
var unarchivedFile = new Uint8Array(
atob(testFile.unarchivedFile)
.split(',')
.map(function(str) { return parseInt(str); })
);
var unarchiver = bitjs.archive.GetUnarchiver(archivedFile.buffer, '../archive/');
unarchiver.addEventListener(bitjs.archive.UnarchiveEvent.Type.EXTRACT, function(evt) {
var theUnarchivedFile = evt.unarchivedFile.fileData;
try {
assertEquals(theUnarchivedFile.length, unarchivedFile.length,
'The unarchived buffer was not the right length');
for (var i = 0; i < theUnarchivedFile.length; ++i) {
assertEquals(theUnarchivedFile[i], unarchivedFile[i],
'Byte #' + i + ' did not match');
}
resolve();
} catch (err) {
reject(err);
}
});
unarchiver.start();
});
document.body.appendChild(scriptEl);
});
}
muther.go(testSuite);