var testCases = [
"testReadingNonExistentFileBlob",
"testReadingNonExistentFileBlob2",
"testReadingEmptyFileBlob",
"testReadingEmptyTextBlob",
"testReadingEmptyFileAndTextBlob",
"testReadingSingleFileBlob",
"testReadingSingleTextBlob",
"testReadingSingleTextBlobAsDataURL",
"testReadingSingleTextBlobAsDataURL2",
"testReadingSingleArrayBufferBlob",
"testReadingSlicedFileBlob",
"testReadingSlicedTextBlob",
"testReadingSlicedArrayBufferBlob",
"testReadingMultipleFileBlob",
"testReadingMultipleTextBlob",
"testReadingMultipleArrayBufferBlob",
"testReadingHybridBlob",
"testReadingSlicedHybridBlob",
"testReadingTripleSlicedHybridBlob",
];
var testIndex = 0;
function runNextTest(testFiles)
{
if (testIndex < testCases.length) {
testIndex++;
self[testCases[testIndex - 1]](testFiles);
} else {
log("DONE");
}
}
function testReadingNonExistentFileBlob(testFiles)
{
log("Test reading a blob containing non-existent file");
var blob = buildBlob([testFiles['non-existent']]);
readBlobAsBinaryString(testFiles, blob);
}
function testReadingNonExistentFileBlob2(testFiles)
{
log("Test reading a blob containing existent and non-existent file");
var blob = buildBlob([testFiles['file1'], testFiles['non-existent'], testFiles['empty-file']]);
readBlobAsBinaryString(testFiles, blob);
}
function testReadingEmptyFileBlob(testFiles)
{
log("Test reading a blob containing empty file");
var blob = buildBlob([testFiles['empty-file']]);
readBlobAsBinaryString(testFiles, blob);
}
function testReadingEmptyTextBlob(testFiles)
{
log("Test reading a blob containing empty text");
var blob = buildBlob(['']);
readBlobAsBinaryString(testFiles, blob);
}
function testReadingEmptyFileAndTextBlob(testFiles)
{
log("Test reading a blob containing empty files and empty texts");
var blob = buildBlob(['', testFiles['empty-file'], '', testFiles['empty-file']]);
readBlobAsBinaryString(testFiles, blob);
}
function testReadingSingleFileBlob(testFiles)
{
log("Test reading a blob containing single file");
var blob = buildBlob([testFiles['file1']]);
readBlobAsBinaryString(testFiles, blob);
}
function testReadingSingleTextBlob(testFiles)
{
log("Test reading a blob containing single text");
var blob = buildBlob(['First']);
readBlobAsBinaryString(testFiles, blob);
}
function testReadingSingleTextBlobAsDataURL(testFiles)
{
log("Test reading a blob containing single text as data URL");
var blob = buildBlob(['First']);
readBlobAsDataURL(testFiles, blob);
}
function testReadingSingleTextBlobAsDataURL2(testFiles)
{
log("Test reading a blob containing single text as data URL (optional content type provided)");
var blob = buildBlob(['First'], 'type/foo');
readBlobAsDataURL(testFiles, blob);
}
function testReadingSingleArrayBufferBlob(testFiles)
{
log("Test reading a blob containing single ArrayBuffer");
var array = new Uint8Array([0, 1, 2, 128, 129, 130, 253, 254, 255]);
var blob = buildBlob([array]);
readBlobAsBinaryString(testFiles, blob);
}
function testReadingSlicedFileBlob(testFiles)
{
log("Test reading a blob containing sliced file");
var blob = buildBlob([testFiles['file2'].slice(1, 6)]);
readBlobAsBinaryString(testFiles, blob);
}
function testReadingSlicedTextBlob(testFiles)
{
log("Test reading a blob containing sliced text");
var blob = buildBlob(['First'])
blob = blob.slice(1, 11);
readBlobAsBinaryString(testFiles, blob);
}
function testReadingSlicedArrayBufferBlob(testFiles)
{
log("Test reading a blob containing sliced ArrayBuffer");
var array = new Uint8Array([0, 1, 2, 128, 129, 130, 253, 254, 255]);
var blob = buildBlob([array])
blob = blob.slice(1, 11);
readBlobAsBinaryString(testFiles, blob);
}
function testReadingMultipleFileBlob(testFiles)
{
log("Test reading a blob containing multiple files");
var blob = buildBlob([testFiles['file1'], testFiles['file2'], testFiles['file3']]);
readBlobAsBinaryString(testFiles, blob);
}
function testReadingMultipleTextBlob(testFiles)
{
log("Test reading a blob containing multiple texts");
var blob = buildBlob(['First', 'Second', 'Third']);
readBlobAsBinaryString(testFiles, blob);
}
function testReadingMultipleArrayBufferBlob(testFiles)
{
log("Test reading a blob containing multiple ArrayBuffer");
var array1 = new Uint8Array([0, 1, 2]);
var array2 = new Uint8Array([128, 129, 130]);
var array3 = new Uint8Array([253, 254, 255]);
var blob = buildBlob([array1, array2, array3]);
readBlobAsBinaryString(testFiles, blob);
}
function testReadingHybridBlob(testFiles)
{
log("Test reading a hybrid blob");
var array = new Uint8Array([48, 49, 50]);
var blob = buildBlob(['First', testFiles['file1'], 'Second', testFiles['file2'], testFiles['file3'], 'Third', array]);
readBlobAsBinaryString(testFiles, blob);
}
function testReadingSlicedHybridBlob(testFiles)
{
log("Test reading a sliced hybrid blob");
var array = new Uint8Array([48, 49, 50]);
var blob = buildBlob(['First', testFiles['file1'], 'Second', testFiles['file2'], testFiles['file3'], 'Third', array]);
var blob = blob.slice(7, 19);
readBlobAsBinaryString(testFiles, blob);
}
function testReadingTripleSlicedHybridBlob(testFiles)
{
log("Test reading a triple-sliced hybrid blob");
var array = new Uint8Array([48, 49, 50]);
var items = ['First', testFiles['file1'].slice(1, 11), testFiles['empty-file'], 'Second', testFiles['file2'], testFiles['file3'], 'Third', array];
var blob = buildBlob(items);
var blob = blob.slice(7, 19);
var blob2 = buildBlob(items.concat(['Foo', blob, 'Bar']));
var blob2 = blob2.slice(12, 42);
readBlobAsBinaryString(testFiles, blob2);
}