Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / fast / filesystem / resources / file-writer-sync-truncate-extend.js
blobb88f6df0410cc6f5410ee820e822c6f8937ec162
1 if (this.importScripts) {
2 importScripts('../resources/fs-worker-common.js');
3 importScripts('../../../resources/js-test.js');
4 importScripts('../resources/fs-test-util.js');
5 importScripts('../resources/file-writer-utils.js');
8 description("Test using FileWriterSync.truncate to extend a file.");
10 // Start with an empty FileSystem.
11 var fileSystem = webkitRequestFileSystemSync(this.TEMPORARY, 100);
12 removeAllInDirectorySync(fileSystem.root);
14 // Prepare a file with sample contents.
15 var entry = fileSystem.root.getFile('a', {create:true, exclusive:true});
16 var writer = entry.createWriter();
17 assert(!writer.position);
18 var testData = "test data";
19 writer.write(new Blob([testData]));
20 assert(writer.length == testData.length);
21 assert(writer.position == writer.length);
23 // Extend the file via truncate.
24 var extensionLength = 10;
25 writer.truncate(writer.length + extensionLength);
27 // Verify the contents.
28 assert(writer.length == testData.length + extensionLength);
29 assert(writer.position == testData.length);
30 var file = entry.file();
31 var reader = new FileReaderSync();
32 var contents = reader.readAsBinaryString(file);
33 var i;
34 for (i = 0; i < testData.length; ++i)
35 assert(contents.charCodeAt(i) == testData.charCodeAt(i));
36 for (; i < writer.length; ++i)
37 assert(!contents.charCodeAt(i));
39 testPassed("Truncate extension verified.");
40 finishJSTest();