| // Copyright (c) 2013, 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. |
| |
| // @dart = 2.9 |
| |
| import 'dart:io'; |
| |
| import "package:async_helper/async_helper.dart"; |
| import "package:expect/expect.dart"; |
| |
| void testFromUri() { |
| asyncStart(); |
| Directory originalWorkingDirectory = Directory.current; |
| Directory.systemTemp.createTemp('file_uri').then((temp) { |
| String filename = temp.path + '/from_uri'; |
| Uri fileUri = new Uri.file(filename); |
| File file = new File.fromUri(fileUri); |
| Expect.isTrue(fileUri.isAbsolute); |
| Expect.isTrue(fileUri.path.startsWith('/')); |
| file.createSync(); |
| Expect.isTrue(new File.fromUri(fileUri).existsSync()); |
| Expect.isTrue(new File.fromUri(Uri.base.resolveUri(fileUri)).existsSync()); |
| Directory.current = temp.path; |
| Expect.isTrue(new File.fromUri(Uri.parse('from_uri')).existsSync()); |
| Expect.isTrue(new File.fromUri(Uri.base.resolve('from_uri')).existsSync()); |
| Directory.current = originalWorkingDirectory; |
| file.deleteSync(); |
| temp.deleteSync(recursive: true); |
| asyncEnd(); |
| }); |
| } |
| |
| void testFromUriUnsupported() { |
| Expect.throwsUnsupportedError( |
| () => new File.fromUri(Uri.parse('http://localhost:8080/index.html'))); |
| Expect.throwsUnsupportedError( |
| () => new File.fromUri(Uri.parse('ftp://localhost/tmp/xxx'))); |
| Expect.throwsUnsupportedError( |
| () => new File.fromUri(Uri.parse('name#fragment'))); |
| } |
| |
| void main() { |
| testFromUri(); |
| testFromUriUnsupported(); |
| } |