|  | // Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file | 
|  | // for details. All rights reserved. Use of this source code is governed by a | 
|  | // BSD-style license that can be found in the LICENSE file. | 
|  |  | 
|  | library fileapi; | 
|  |  | 
|  | import 'dart:async'; | 
|  | import 'dart:html'; | 
|  |  | 
|  | import 'package:expect/legacy/async_minitest.dart'; // ignore: deprecated_member_use | 
|  |  | 
|  | class FileAndDir { | 
|  | FileEntry file; | 
|  | DirectoryEntry dir; | 
|  | FileAndDir(this.file, this.dir); | 
|  | } | 
|  |  | 
|  | main() async { | 
|  | // Do the boilerplate to get several files and directories created to then | 
|  | // test the functions that use those items. | 
|  | Future doDirSetup(String testName) async { | 
|  | final fs = await window.requestFileSystem(100); | 
|  | // Prepend this file name to prevent collisions among tests running on the | 
|  | // same browser. | 
|  | const prefix = 'fileapi_directory_reader_'; | 
|  | var file = | 
|  | await fs.root!.createFile('${prefix}file_$testName') as FileEntry; | 
|  | var dir = | 
|  | await fs.root!.createDirectory('${prefix}dir_$testName') | 
|  | as DirectoryEntry; | 
|  | return new Future.value(new FileAndDir(file, dir)); | 
|  | } | 
|  |  | 
|  | if (FileSystem.supported) { | 
|  | test('readEntries', () async { | 
|  | var fileAndDir = await doDirSetup('readEntries'); | 
|  | var reader = await fileAndDir.dir.createReader(); | 
|  | var entries = await reader.readEntries(); | 
|  | expect(entries is List, true); | 
|  | }); | 
|  | } | 
|  | } |