// 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. 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() { if (!FileSystem.supported) return; // Prepend this file name to prevent collisions among tests running on the // same browser. const prefix = 'fileapi_file_entry_'; // 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); 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)); } test('createWriter', () async { var fileAndDir = await doDirSetup('createWriter'); var writer = await fileAndDir.file.createWriter(); expect(writer.position, 0); expect(writer.readyState, FileWriter.INIT); expect(writer.length, 0); }); test('file', () async { var fileAndDir = await doDirSetup('file'); var fileObj = await fileAndDir.file.file(); expect(fileObj.name, fileAndDir.file.name); expect(fileObj.relativePath, ''); expect( new DateTime.now().difference(fileObj.lastModifiedDate).inMinutes < 30, isTrue, ); }); }