Index: utils/tests/pub/install/broken_symlink_test.dart |
diff --git a/utils/tests/pub/install/relative_symlink_test.dart b/utils/tests/pub/install/broken_symlink_test.dart |
similarity index 58% |
copy from utils/tests/pub/install/relative_symlink_test.dart |
copy to utils/tests/pub/install/broken_symlink_test.dart |
index 166a7caa0636c833037fb031b2dc71da486b4f34..07a5530f556242269b8065c98cbe31b57ddc920f 100644 |
--- a/utils/tests/pub/install/relative_symlink_test.dart |
+++ b/utils/tests/pub/install/broken_symlink_test.dart |
@@ -6,50 +6,51 @@ library pub_tests; |
import 'dart:io'; |
+import '../../../../pkg/pathos/lib/path.dart' as path; |
import '../../../../pkg/unittest/lib/unittest.dart'; |
+ |
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('uses a relative symlink for the self link', () { |
+ integration('replaces a broken "packages" symlink', () { |
dir(appPath, [ |
appPubspec([]), |
- libDir('foo') |
Andrei Mouravski
2013/03/06 01:25:46
Could you make all "s into 's?
Bob Nystrom
2013/03/06 20:55:55
Pub doesn't really have a well-defined guideline f
|
+ libDir('foo'), |
+ dir("bin") |
]).scheduleCreate(); |
+ // Create a broken "packages" symlink in "bin". |
nweiz
2013/03/06 20:13:52
'"bin"' -> 'the package root'
|
+ scheduleSymlink("nonexistent", path.join(appPath, "packages")); |
+ |
schedulePub(args: ['install'], |
output: new RegExp(r"Dependencies installed!$")); |
- scheduleRename(appPath, "moved"); |
- |
- dir("moved", [ |
- dir("packages", [ |
- dir("myapp", [ |
- file('foo.dart', 'main() => "foo";') |
+ dir(appPath, [ |
+ dir("bin", [ |
+ dir("packages", [ |
+ dir("myapp", [ |
+ file('foo.dart', 'main() => "foo";') |
+ ]) |
]) |
]) |
]).scheduleValidate(); |
}); |
- integration('uses a relative symlink for secondary packages directory', () { |
+ integration('replaces a broken secondary "packages" symlink', () { |
dir(appPath, [ |
appPubspec([]), |
libDir('foo'), |
dir("bin") |
]).scheduleCreate(); |
+ // Create a broken "packages" symlink in "bin". |
+ scheduleSymlink("nonexistent", path.join(appPath, "bin", "packages")); |
+ |
schedulePub(args: ['install'], |
output: new RegExp(r"Dependencies installed!$")); |
- scheduleRename(appPath, "moved"); |
- |
- dir("moved", [ |
+ dir(appPath, [ |
dir("bin", [ |
dir("packages", [ |
dir("myapp", [ |