gecko-dev/testing/web-platform/tests/native-file-system/script-tests/FileSystemFileHandle-getFile.js
Marijn Kruisselbrink 0ea0cecc94 Bug 1621152 [wpt PR 22150] - [NativeFS] Update web tests to use new writing API., a=testonly
Automatic update from web-platform-tests
[NativeFS] Update web tests to use new writing API.

And remove tests for the old/soon to be removed writing API.

Bug: 853326
Change-Id: Ief44f98be8b59844976de26c90df9b4933041188
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2095564
Reviewed-by: Olivier Yiptong <oyiptong@chromium.org>
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#748758}

--

wpt-commits: afb12c96d94c64b056989284c3c90084d2e560c1
wpt-pr: 22150
2020-03-13 16:46:46 +00:00

40 lines
1.5 KiB
JavaScript

directory_test(async (t, root) => {
const fileContents = 'awesome content';
let handle = await createFileWithContents(t, 'foo.txt', fileContents, /*parent=*/ root);
let file = await handle.getFile();
let slice = file.slice(1, file.size);
let actualContents = await slice.text();
assert_equals(actualContents, fileContents.slice(1, fileContents.length));
}, 'getFile() provides a file that can be sliced');
directory_test(async (t, root) => {
const handle = await createEmptyFile(t, 'mtime.txt', root);
let file = await handle.getFile();
const first_mtime = file.lastModified;
// We wait for 2s here to ensure that the files do not have the
// same modification time. Some filesystems have low resolutions
// for modification timestamps.
let timeout = new Promise(resolve => {
t.step_timeout(resolve, 2000);
});
await timeout;
const writer = await handle.createWritable({keepExistingData: false});
await writer.write(new Blob(['foo']));
await writer.close();
file = await handle.getFile();
const second_mtime = file.lastModified;
// We wait for 5 ms here to ensure that `lastModified`
// from the File objects is stable between getFile invocations.
timeout = new Promise(resolve => {
t.step_timeout(resolve, 5);
});
await timeout;
let fileReplica = await handle.getFile();
assert_equals(second_mtime, fileReplica.lastModified);
assert_less_than(first_mtime, second_mtime);
}, 'getFile() returns last modified time');