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