| Index: utils/tests/pub/install/path/relative_symlink_test.dart
|
| diff --git a/utils/tests/pub/install/path/relative_symlink_test.dart b/utils/tests/pub/install/path/relative_symlink_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9460d7d4b2a48cc50ee919f72c36d60758f50a81
|
| --- /dev/null
|
| +++ b/utils/tests/pub/install/path/relative_symlink_test.dart
|
| @@ -0,0 +1,54 @@
|
| +// 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.
|
| +
|
| +import 'dart:io';
|
| +
|
| +import '../../../../../pkg/path/lib/path.dart' as path;
|
| +
|
| +import '../../../../pub/exit_codes.dart' as exit_codes;
|
| +import '../../test_pub.dart';
|
| +
|
| +main() {
|
| + // Pub uses NTFS junction points to create links in the packages directory.
|
| + // These (unlike the symlinks that are supported in Vista and later) do not
|
| + // support relative paths. So this test, by design, will not pass on Windows.
|
| + // So just skip it.
|
| + if (Platform.operatingSystem == "windows") return;
|
| +
|
| + initConfig();
|
| + integration("generates a symlink with a relative path if the dependency "
|
| + "path was relative", () {
|
| + dir("foo", [
|
| + libDir("foo"),
|
| + libPubspec("foo", "0.0.1")
|
| + ]).scheduleCreate();
|
| +
|
| + dir(appPath, [
|
| + pubspec({
|
| + "name": "myapp",
|
| + "dependencies": {
|
| + "foo": {"path": "../foo"}
|
| + }
|
| + })
|
| + ]).scheduleCreate();
|
| +
|
| + schedulePub(args: ["install"],
|
| + output: new RegExp(r"Dependencies installed!$"));
|
| +
|
| + dir("moved").scheduleCreate();
|
| +
|
| + // Move the app and package. Since they are still next to each other, it
|
| + // should still be found.
|
| + scheduleRename("foo", path.join("moved", "foo"));
|
| + scheduleRename(appPath, path.join("moved", appPath));
|
| +
|
| + dir("moved", [
|
| + dir(packagesPath, [
|
| + dir("foo", [
|
| + file("foo.dart", 'main() => "foo";')
|
| + ])
|
| + ])
|
| + ]).scheduleValidate();
|
| + });
|
| +}
|
|
|