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
);
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.");