summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/entries-api/filesystemdirectoryreader-manual.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/entries-api/filesystemdirectoryreader-manual.html')
-rw-r--r--testing/web-platform/tests/entries-api/filesystemdirectoryreader-manual.html77
1 files changed, 77 insertions, 0 deletions
diff --git a/testing/web-platform/tests/entries-api/filesystemdirectoryreader-manual.html b/testing/web-platform/tests/entries-api/filesystemdirectoryreader-manual.html
new file mode 100644
index 0000000000..55f0fc4e70
--- /dev/null
+++ b/testing/web-platform/tests/entries-api/filesystemdirectoryreader-manual.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>Entries API: FileSystemDirectoryReader manual test</title>
+<link rel=help href="https://wicg.github.io/entries-api/#api-directoryreader">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+entry_test((t, entry) => {
+ const reader = entry.createReader();
+
+ assert_idl_attribute(reader, 'readEntries', 'FileSystemDirectoryReader has readEntries');
+ assert_equals(typeof reader.readEntries, 'function', 'readEntries() is a method');
+
+ t.done();
+}, 'FileSystemDirectoryReader - interface');
+
+
+entry_test((t, entry) => {
+ getChildEntry(entry, 'subdir', t.step_func(dir => {
+ const reader = dir.createReader();
+ assert_equals(typeof reader.readEntries, 'function');
+
+ const found_names = [];
+ const do_chunk = t.step_func(() =>
+ reader.readEntries(t.step_func(entries => {
+
+ if (entries.length > 0) {
+ entries.forEach(t.step_func(entry => found_names.push(entry.name)));
+ do_chunk();
+ return;
+ }
+
+ found_names.sort();
+ assert_array_equals(found_names, ['1.txt', '2.txt', '3.txt'],
+ 'directory contents should match');
+ t.done();
+ })));
+
+ do_chunk();
+ }), t.unreached_func('A child entry should be found'));
+}, 'FileSystemDirectoryReader - basic enumeration');
+
+entry_test((t, entry) => {
+ const reader = entry.createReader();
+ reader.readEntries(() => {}, t.unreached_func('readEntries should succeed'));
+ reader.readEntries(
+ t.unreached_func('readEntries() should fail if already reading'),
+ t.step_func(error => {
+ assert_equals(error.name, 'InvalidStateError', 'invalid state if already reading');
+ t.done();
+ }));
+}, 'FileSystemDirectoryReader - reading flag');
+
+entry_test((t, entry) => {
+ const reader = entry.createReader();
+
+ const do_chunk = t.step_func(() =>
+ reader.readEntries(t.step_func(entries => {
+ if (entries.length > 0) {
+ do_chunk();
+ return;
+ }
+ reader.readEntries(t.step_func(entries => {
+ assert_equals(
+ entries.length, 0,
+ 'calling readEntries() when done should yield and empty sequence');
+ t.done();
+ }));
+ })));
+
+ do_chunk();
+}, 'FileSystemDirectoryReader - done flag');
+
+// TODO: Manual tests where directory contents are changed during the test.
+</script>