summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/fs/resources/sandboxed-fs-test-helpers.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/fs/resources/sandboxed-fs-test-helpers.js')
-rw-r--r--testing/web-platform/tests/fs/resources/sandboxed-fs-test-helpers.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/testing/web-platform/tests/fs/resources/sandboxed-fs-test-helpers.js b/testing/web-platform/tests/fs/resources/sandboxed-fs-test-helpers.js
new file mode 100644
index 0000000000..9c93212f49
--- /dev/null
+++ b/testing/web-platform/tests/fs/resources/sandboxed-fs-test-helpers.js
@@ -0,0 +1,24 @@
+// This file defines a directory_test() function that can be used to define
+// tests that require a FileSystemDirectoryHandle. The implementation of that
+// function in this file will return an empty directory in the sandboxed file
+// system.
+//
+// Another implementation of this function exists in
+// file-system-access/local-fs-test-helpers.js, where that version uses the
+// local file system instead.
+
+async function cleanupSandboxedFileSystem() {
+ const dir = await navigator.storage.getDirectory();
+ for await (let entry of dir.values())
+ await dir.removeEntry(entry.name, {recursive: entry.kind === 'directory'});
+}
+
+function directory_test(func, description) {
+ promise_test(async t => {
+ // To be extra resilient against bad tests, cleanup before every test.
+ await cleanupSandboxedFileSystem();
+
+ const dir = await navigator.storage.getDirectory();
+ await func(t, dir);
+ }, description);
+}