if (this.importScripts) {
importScripts('../resources/fs-worker-common.js');
importScripts('../../../resources/js-test.js');
importScripts('../resources/fs-test-util.js');
importScripts('../resources/file-writer-utils.js');
}
description("Test using FileWriterSync.truncate to extend a file.");
// Start with an empty FileSystem.
var fileSystem = webkitRequestFileSystemSync(this.TEMPORARY, 100);
removeAllInDirectorySync(fileSystem.root);
// Prepare a file with sample contents.
var entry = fileSystem.root.getFile('a', {create:true, exclusive:true});
var writer = entry.createWriter();
assert(!writer.position);
var testData = "test data";
writer.write(new Blob([testData]));
assert(writer.length == testData.length);
assert(writer.position == writer.length);
// Extend the file via truncate.
var extensionLength = 10;
writer.truncate(writer.length + extensionLength);
// Verify the contents.
assert(writer.length == testData.length + extensionLength);
assert(writer.position == testData.length);
var file = entry.file();
var reader = new FileReaderSync();
var contents = reader.readAsBinaryString(file);
var i;
for (i = 0; i < testData.length; ++i)
assert(contents.charCodeAt(i) == testData.charCodeAt(i));
for (; i < writer.length; ++i)
assert(!contents.charCodeAt(i));
testPassed("Truncate extension verified.");
finishJSTest();