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