blob: bb2c6e970f612a8b96c662f9059931592e322236 [file] [log] [blame]
// Copyright (c) 2012, 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 "package:expect/expect.dart";
import 'package:path/path.dart' as path;
import "dart:io";
main() {
if (Platform.isWindows) {
Expect.equals("a\\b", Uri.parse("a/b").toFilePath());
Expect.equals("a\\b\\", Uri.parse("a/b/").toFilePath());
Expect.equals("a b", Uri.parse("a%20b").toFilePath());
Expect.equals("\\a b", Uri.parse("file:///a%20b").toFilePath());
Expect.equals("\\a\\b", Uri.parse("file:///a/b").toFilePath());
Expect.equals("C:\\", Uri.parse("file:///C:").toFilePath());
Expect.equals("C:\\", Uri.parse("file:///C:/").toFilePath());
Expect.equals("\\\\host\\a\\b", Uri.parse("file://host/a/b").toFilePath());
Expect.equals("a\\b", new Uri.file("a/b").toFilePath());
Expect.equals("a\\b", new Uri.file("a\\b").toFilePath());
Expect.equals("\\a\\b", new Uri.file("/a/b").toFilePath());
Expect.equals("\\a\\b", new Uri.file("\\a\\b").toFilePath());
Expect.equals("\\a\\b", new Uri.file("\\a/b").toFilePath());
Expect.equals("\\a\\b", new Uri.file("/a\\b").toFilePath());
} else {
Expect.equals("a/b", Uri.parse("a/b").toFilePath());
Expect.equals("a/b/", Uri.parse("a/b/").toFilePath());
Expect.equals("a b", Uri.parse("a%20b").toFilePath());
Expect.equals("/a b", Uri.parse("file:///a%20b").toFilePath());
Expect.equals("/a/b", Uri.parse("file:///a/b").toFilePath());
Expect.equals("/C:", Uri.parse("file:///C:").toFilePath());
Expect.equals("/C:/", Uri.parse("file:///C:/").toFilePath());
Expect.throwsUnsupportedError(
() => Uri.parse("file://host/a/b").toFilePath());
Expect.equals("a/b", new Uri.file("a/b").toFilePath());
Expect.equals("a\\b", new Uri.file("a\\b").toFilePath());
}
// If the current path is only the root prefix (/ (or c:\), then don't add a
// separator at the end.
Expect.equals(
Uri.base,
(Directory.current.path.toString() !=
path.rootPrefix(Directory.current.path.toString()))
? new Uri.file(Directory.current.path + Platform.pathSeparator)
: new Uri.file(Directory.current.path));
}