| <!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> |