| // 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 test program for testing FileSystemEntity.absolute |
| |
| // @dart = 2.9 |
| |
| import "package:expect/expect.dart"; |
| import 'dart:io'; |
| |
| main() { |
| if (Platform.isWindows) { |
| testWindows(); |
| try { |
| Directory.current = 'C:\\'; |
| } catch (e) { |
| return; |
| } |
| testWindows(); |
| } else { |
| testPosix(); |
| Directory.current = '.'; |
| testPosix(); |
| Directory.current = '/'; |
| testPosix(); |
| } |
| } |
| |
| testWindows() { |
| String current = Directory.current.path; |
| for (String relative in ['abd', '..', '.', 'efg/hij', 'abc/']) { |
| if (current.endsWith('\\')) { |
| Expect.equals(new File(relative).absolute.path, '$current$relative'); |
| } else { |
| Expect.equals(new File(relative).absolute.path, '$current\\$relative'); |
| } |
| Expect.isTrue(new File(relative).absolute.isAbsolute); |
| } |
| for (String absolute in [ |
| 'c:/abd', |
| 'D:\\rf', |
| '\\\\a_share\\folder', |
| '\\\\?\\c:\\prefixed\path\\' |
| ]) { |
| Expect.isTrue(new File(absolute).absolute.path == absolute); |
| Expect.isTrue(new File(absolute).absolute.isAbsolute); |
| } |
| } |
| |
| testPosix() { |
| String current = Directory.current.path; |
| for (String relative in ['abd', '..', '.', 'efg/hij', 'abc/']) { |
| if (current.endsWith('/')) { |
| Expect.equals(new File(relative).absolute.path, '$current$relative'); |
| } else { |
| Expect.equals(new File(relative).absolute.path, '$current/$relative'); |
| } |
| Expect.isTrue(new File(relative).absolute.isAbsolute); |
| Expect.equals(new Directory(relative).absolute.path, |
| new Link(relative).absolute.path); |
| Expect.isTrue(new File(relative).absolute is File); |
| Expect.isTrue(new Directory(relative).absolute is Directory); |
| Expect.isTrue(new Link(relative).absolute is Link); |
| } |
| for (String absolute in ['/abd', '/', '/./..\\', '/efg/hij', '/abc/']) { |
| Expect.equals(new File(absolute).absolute.path, absolute); |
| Expect.isTrue(new File(absolute).absolute.isAbsolute); |
| } |
| } |