if (this.importScripts) {
importScripts('fs-worker-common.js');
importScripts('../../../resources/js-test.js');
importScripts('file-writer-utils.js');
}
description("Test that a blob won't get garbage-collected while being written out by a FileWriter.");
var fileEntry;
function onTestSuccess() {
testPassed("Successfully wrote blob.");
cleanUp();
}
function tenXBlob(blob) {
var bb = [];
for (var i = 0; i < 10; ++i) {
bb.push(blob);
}
return new Blob(bb);
}
function startWrite(writer) {
// Let's make it about a megabyte.
var blob = tenXBlob(new Blob(["lorem ipsum"]));
blob = tenXBlob(blob);
blob = tenXBlob(blob);
blob = tenXBlob(blob);
blob = tenXBlob(blob);
writer.onerror = onError;
writer.onwriteend = onTestSuccess;
writer.write(blob);
}
function runTest(unusedFileEntry, fileWriter) {
startWrite(fileWriter);
gc();
}
var jsTestIsAsync = true;
setupAndRunTest(2*1024*1024, 'file-writer-gc-blob', runTest);