aboutsummaryrefslogtreecommitdiffstats
path: root/tests/wpt/web-platform-tests/native-file-system/script-tests/FileSystemFileHandle-getFile.js
diff options
context:
space:
mode:
authorWPT Sync Bot <josh+wptsync@joshmatthews.net>2019-11-03 10:24:12 +0000
committerWPT Sync Bot <josh+wptsync@joshmatthews.net>2019-11-03 13:38:54 +0000
commitbca3835607b4edebf24ecadf054591f094c583fc (patch)
tree3618eddae48150c0e301eb2dd6ca73d1f98e5875 /tests/wpt/web-platform-tests/native-file-system/script-tests/FileSystemFileHandle-getFile.js
parent4ad08fff04d974855845bb1bafe10920bfd27a97 (diff)
downloadservo-bca3835607b4edebf24ecadf054591f094c583fc.tar.gz
servo-bca3835607b4edebf24ecadf054591f094c583fc.zip
Update web-platform-tests to revision 424249088dd679888e07bd315dd8ebc98ccf323a
Diffstat (limited to 'tests/wpt/web-platform-tests/native-file-system/script-tests/FileSystemFileHandle-getFile.js')
-rw-r--r--tests/wpt/web-platform-tests/native-file-system/script-tests/FileSystemFileHandle-getFile.js32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/wpt/web-platform-tests/native-file-system/script-tests/FileSystemFileHandle-getFile.js b/tests/wpt/web-platform-tests/native-file-system/script-tests/FileSystemFileHandle-getFile.js
index 88e5593ebad..6b7d9f9a317 100644
--- a/tests/wpt/web-platform-tests/native-file-system/script-tests/FileSystemFileHandle-getFile.js
+++ b/tests/wpt/web-platform-tests/native-file-system/script-tests/FileSystemFileHandle-getFile.js
@@ -6,3 +6,35 @@ directory_test(async (t, root) => {
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.createWriter({keepExistingData: false});
+ await writer.write(0, 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');