chromium/third_party/blink/web_tests/fast/files/resources/read-blob-test-cases.js

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