mirror of
https://github.com/servo/servo.git
synced 2025-10-12 22:40:19 +01:00
80 lines
2.7 KiB
JavaScript
80 lines
2.7 KiB
JavaScript
directory_test(async (t, root) => {
|
|
const file_name1 = 'foo1.txt';
|
|
const file_name2 = 'foo2.txt';
|
|
await createFileWithContents(t, file_name1, 'contents', /*parent=*/ root);
|
|
await createFileWithContents(t, file_name2, 'contents', /*parent=*/ root);
|
|
|
|
for await (let entry of root) {
|
|
break;
|
|
}
|
|
|
|
}, 'returning early from an iteration doesn\'t crash');
|
|
|
|
directory_test(async (t, root) => {
|
|
const file_name1 = 'foo1.txt';
|
|
const file_name2 = 'foo2.txt';
|
|
await createFileWithContents(t, file_name1, 'contents', /*parent=*/ root);
|
|
await createFileWithContents(t, file_name2, 'contents', /*parent=*/ root);
|
|
|
|
let names = [];
|
|
for await (let entry of root) {
|
|
assert_true(Array.isArray(entry));
|
|
assert_equals(entry.length, 2);
|
|
assert_equals(typeof entry[0], 'string');
|
|
assert_true(entry[1] instanceof FileSystemFileHandle);
|
|
assert_equals(entry[0], entry[1].name);
|
|
names.push(entry[0]);
|
|
}
|
|
names.sort();
|
|
assert_array_equals(names, [file_name1, file_name2]);
|
|
|
|
}, '@@asyncIterator: full iteration works');
|
|
|
|
directory_test(async (t, root) => {
|
|
const file_name1 = 'foo1.txt';
|
|
const file_name2 = 'foo2.txt';
|
|
await createFileWithContents(t, file_name1, 'contents', /*parent=*/ root);
|
|
await createFileWithContents(t, file_name2, 'contents', /*parent=*/ root);
|
|
|
|
let names = [];
|
|
for await (let entry of root.entries()) {
|
|
assert_true(Array.isArray(entry));
|
|
assert_equals(entry.length, 2);
|
|
assert_equals(typeof entry[0], 'string');
|
|
assert_true(entry[1] instanceof FileSystemFileHandle);
|
|
assert_equals(entry[0], entry[1].name);
|
|
names.push(entry[0]);
|
|
}
|
|
names.sort();
|
|
assert_array_equals(names, [file_name1, file_name2]);
|
|
}, 'entries: full iteration works');
|
|
|
|
directory_test(async (t, root) => {
|
|
const file_name1 = 'foo1.txt';
|
|
const file_name2 = 'foo2.txt';
|
|
await createFileWithContents(t, file_name1, 'contents', /*parent=*/ root);
|
|
await createFileWithContents(t, file_name2, 'contents', /*parent=*/ root);
|
|
|
|
let names = [];
|
|
for await (let entry of root.values()) {
|
|
assert_true(entry instanceof FileSystemFileHandle);
|
|
names.push(entry.name);
|
|
}
|
|
names.sort();
|
|
assert_array_equals(names, [file_name1, file_name2]);
|
|
}, 'values: full iteration works');
|
|
|
|
directory_test(async (t, root) => {
|
|
const file_name1 = 'foo1.txt';
|
|
const file_name2 = 'foo2.txt';
|
|
await createFileWithContents(t, file_name1, 'contents', /*parent=*/ root);
|
|
await createFileWithContents(t, file_name2, 'contents', /*parent=*/ root);
|
|
|
|
let names = [];
|
|
for await (let entry of root.keys()) {
|
|
assert_equals(typeof entry, 'string');
|
|
names.push(entry);
|
|
}
|
|
names.sort();
|
|
assert_array_equals(names, [file_name1, file_name2]);
|
|
}, 'keys: full iteration works');
|