mirror of
https://github.com/servo/servo.git
synced 2025-06-25 09:34:32 +01:00
77 lines
2.4 KiB
HTML
77 lines
2.4 KiB
HTML
<!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>
|