File: filesystemdirectoryreader-manual.html

package info (click to toggle)
firefox-esr 68.10.0esr-1~deb9u1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 3,143,932 kB
  • sloc: cpp: 5,227,879; javascript: 4,315,531; ansic: 2,467,042; python: 794,975; java: 349,993; asm: 232,034; xml: 228,320; sh: 82,008; lisp: 41,202; makefile: 22,347; perl: 15,555; objc: 5,277; cs: 4,725; yacc: 1,778; ada: 1,681; pascal: 1,673; lex: 1,417; exp: 527; php: 436; ruby: 225; awk: 162; sed: 53; csh: 44
file content (77 lines) | stat: -rw-r--r-- 2,442 bytes parent folder | download | duplicates (30)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
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>