Index: utils/tests/pub/install/path/relative_path_test.dart |
diff --git a/utils/tests/pub/install/path/relative_path_test.dart b/utils/tests/pub/install/path/relative_path_test.dart |
index 56fe28a061b98c8c1e7aaec8fa79911662db9380..58d65a5e2354121e737f204d1aeebdb86913c316 100644 |
--- a/utils/tests/pub/install/path/relative_path_test.dart |
+++ b/utils/tests/pub/install/path/relative_path_test.dart |
@@ -2,12 +2,19 @@ |
// 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 '../../../../../pkg/path/lib/path.dart' as path; |
+ |
import '../../../../pub/exit_codes.dart' as exit_codes; |
import '../../test_pub.dart'; |
main() { |
initConfig(); |
- integration('path dependencies cannot use relative paths', () { |
+ integration("can use relative path", () { |
+ dir("foo", [ |
+ libDir("foo"), |
+ libPubspec("foo", "0.0.1") |
+ ]).scheduleCreate(); |
+ |
dir(appPath, [ |
pubspec({ |
"name": "myapp", |
@@ -17,9 +24,49 @@ main() { |
}) |
]).scheduleCreate(); |
- schedulePub(args: ['install'], |
- error: new RegExp("Path dependency for package 'foo' must be an " |
- "absolute path. Was '../foo'."), |
- exitCode: exit_codes.DATA); |
+ schedulePub(args: ["install"], |
+ output: new RegExp(r"Dependencies installed!$")); |
+ |
+ dir(packagesPath, [ |
+ dir("foo", [ |
+ file("foo.dart", 'main() => "foo";') |
+ ]) |
+ ]).scheduleValidate(); |
+ }); |
+ |
+ integration("path is relative to containing pubspec", () { |
+ dir("relative", [ |
+ dir("foo", [ |
+ libDir("foo"), |
+ libPubspec("foo", "0.0.1", deps: [ |
+ {"path": "../bar"} |
+ ]) |
+ ]), |
+ dir("bar", [ |
+ libDir("bar"), |
+ libPubspec("bar", "0.0.1") |
+ ]) |
+ ]).scheduleCreate(); |
+ |
+ dir(appPath, [ |
+ pubspec({ |
+ "name": "myapp", |
+ "dependencies": { |
+ "foo": {"path": "../relative/foo"} |
+ } |
+ }) |
+ ]).scheduleCreate(); |
+ |
+ schedulePub(args: ["install"], |
+ output: new RegExp(r"Dependencies installed!$")); |
+ |
+ dir(packagesPath, [ |
+ dir("foo", [ |
+ file("foo.dart", 'main() => "foo";') |
+ ]), |
+ dir("bar", [ |
+ file("bar.dart", 'main() => "bar";') |
+ ]) |
+ ]).scheduleValidate(); |
}); |
} |