diff options
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.js | 24 |
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); +} |