blob: 33ac96038829b249312f7463fc5c072b9f805825 [file] [log] [blame]
// META: script=resources/test-helpers.js
promise_test(async t => cleanupSandboxedFileSystem(),
'Cleanup to setup test environment');
promise_test(async t => {
const handle = await createFileWithContents(t, 'file-to-remove', '12345');
const dir = await handle.getParent();
await createFileWithContents(t, 'file-to-keep', 'abc');
await handle.remove();
assert_array_equals(await getSortedDirectoryEntries(dir), ['file-to-keep']);
await promise_rejects(t, 'NotFoundError', getFileContents(handle));
}, 'remove() to remove a file');
promise_test(async t => {
const handle = await createFileWithContents(t, 'file-to-remove', '12345');
await handle.remove();
await promise_rejects(t, 'NotFoundError', handle.remove());
}, 'remove() on an already removed file should fail');
promise_test(async t => {
const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
const dir = await root.getDirectory('dir-to-remove', { create: true });
await createFileWithContents(t, 'file-to-keep', 'abc');
await dir.remove();
assert_array_equals(await getSortedDirectoryEntries(root), ['file-to-keep']);
await promise_rejects(t, 'NotFoundError', getSortedDirectoryEntries(dir));
}, 'remove() to remove an empty directory');
promise_test(async t => {
const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
const dir = await root.getDirectory('dir-to-remove', { create: true });
t.add_cleanup(() => dir.removeRecursively());
await createEmptyFile(t, 'file-in-dir', dir);
await promise_rejects(t, 'InvalidModificationError', dir.remove());
assert_array_equals(await getSortedDirectoryEntries(root), ['dir-to-remove/']);
assert_array_equals(await getSortedDirectoryEntries(dir), ['file-in-dir']);
}, 'remove() on a non-empty directory should fail');