blob: ba7a2517f6a8631c09af751c505eb155aeb7bf37 [file] [log] [blame]
var blob, file; // Populated by runTests() in individual tests.
var sliceParams = []; // Populated by individual tests.
var testIndex = 0;
function testSlicing(start, end, expectedResult, blob, doneCallback)
{
var blobClass = blob.constructor.name;
var sliced;
var reader = new FileReader();
var message = ".slice";
if (start === null && end === null) {
message += "()";
sliced = blob.slice();
} else if (end == undefined) {
message += "(" + start + ")";
sliced = blob.slice(start);
} else {
message += "(" + start + ", " + end + ")";
sliced = blob.slice(start, end);
}
reader.onloadend = function(event) {
var error = event.target.error;
if (error) {
testFailed("File read error " + message + error);
doneCallback();
return;
}
var blobContentsVar = blobClass.toLowerCase() + "Contents";
window[blobContentsVar] = event.target.result;
shouldBeEqualToString(blobContentsVar, expectedResult);
doneCallback();
};
debug(blobClass + " " + message);
reader.readAsText(sliced);
}
function runNextTest()
{
if (testIndex >= sliceTestCases.length) {
finishJSTest();
return;
}
var testCase = sliceTestCases[testIndex];
testIndex++;
testSlicing(testCase[0], testCase[1], testCase[2], blob, function() {
testSlicing(testCase[0], testCase[1], testCase[2], file, runNextTest);
});
}