blob: e20d29f9032bebb063ad8cce1ccf599b65759e78 [file] [log] [blame]
// 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);
}
}