Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(131)

Unified Diff: pkg/analysis_server/test/package_map_provider_test.dart

Issue 367453003: Handle relative paths in the output of "pub list-package-dirs". (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/analysis_server/test/package_map_provider_test.dart
diff --git a/pkg/analysis_server/test/package_map_provider_test.dart b/pkg/analysis_server/test/package_map_provider_test.dart
index 78607a3e0987549987d947f68575ae1c23941662..3e62e29918aa4f5ca8873e6ac4cde399d7346951 100644
--- a/pkg/analysis_server/test/package_map_provider_test.dart
+++ b/pkg/analysis_server/test/package_map_provider_test.dart
@@ -17,18 +17,25 @@ main() {
group('parsePackageMap', () {
MemoryResourceProvider resourceProvider;
PubPackageMapProvider packageMapProvider;
+ const String projectPath = '/path/to/project';
+ Folder projectFolder;
setUp(() {
resourceProvider = new MemoryResourceProvider();
packageMapProvider = new PubPackageMapProvider(resourceProvider);
+ projectFolder = resourceProvider.newFolder(projectPath);
});
+ PackageMapInfo parsePackageMap(Object obj) {
+ return packageMapProvider.parsePackageMap(JSON.encode(obj), projectFolder);
+ }
+
test('normal folder', () {
String packageName = 'foo';
String folderPath = '/path/to/folder';
resourceProvider.newFolder(folderPath);
- Map<String, List<Folder>> result = packageMapProvider.parsePackageMap(
- JSON.encode({'packages': {packageName: folderPath}})).packageMap;
+ Map<String, List<Folder>> result = parsePackageMap(
+ {'packages': {packageName: folderPath}}).packageMap;
expect(result, hasLength(1));
expect(result.keys, contains(packageName));
expect(result[packageName], hasLength(1));
@@ -39,8 +46,8 @@ main() {
test('ignore nonexistent folder', () {
String packageName = 'foo';
String folderPath = '/path/to/folder';
- Map<String, List<Folder>> result = packageMapProvider.parsePackageMap(
- JSON.encode({'packages': {packageName: folderPath}})).packageMap;
+ Map<String, List<Folder>> result = parsePackageMap(
+ {'packages': {packageName: folderPath}}).packageMap;
expect(result, hasLength(0));
});
@@ -50,8 +57,8 @@ main() {
String folderPath2 = '/path/to/folder2';
resourceProvider.newFolder(folderPath1);
resourceProvider.newFolder(folderPath2);
- Map<String, List<Folder>> result = packageMapProvider.parsePackageMap(
- JSON.encode({'packages': {packageName: [folderPath1, folderPath2]}})).packageMap;
+ Map<String, List<Folder>> result = parsePackageMap(
+ {'packages': {packageName: [folderPath1, folderPath2]}}).packageMap;
expect(result, hasLength(1));
expect(result.keys, contains(packageName));
expect(result[packageName], hasLength(2));
@@ -66,12 +73,34 @@ main() {
String path2 = '/path/to/folder2/pubspec.lock';
resourceProvider.newFile(path1, '...');
resourceProvider.newFile(path2, '...');
- Set<String> dependencies = packageMapProvider.parsePackageMap(
- JSON.encode({'packages': {}, 'input_files': [path1, path2]})).dependencies;
+ Set<String> dependencies = parsePackageMap(
+ {'packages': {}, 'input_files': [path1, path2]}).dependencies;
expect(dependencies, hasLength(2));
expect(dependencies, contains(path1));
expect(dependencies, contains(path2));
});
+
+ test('Relative path in packages', () {
+ String packagePath = '/path/to/package';
+ String relativePackagePath = '../package';
+ String packageName = 'foo';
+ resourceProvider.newFolder(projectPath);
+ resourceProvider.newFolder(packagePath);
+ Map<String, List<Folder>> result = parsePackageMap(
+ {'packages': {packageName: [relativePackagePath]}}).packageMap;
+ expect(result[packageName][0].path, equals(packagePath));
+ });
+
+ test('Relative path in dependencies', () {
+ String dependencyPath = '/path/to/pubspec.lock';
+ String relativeDependencyPath = '../pubspec.lock';
+ resourceProvider.newFolder(projectPath);
+ resourceProvider.newFile(dependencyPath, 'contents');
+ Set<String> dependencies = parsePackageMap(
+ {'packages': {}, 'input_files': [relativeDependencyPath]}).dependencies;
+ expect(dependencies, hasLength(1));
+ expect(dependencies, contains(dependencyPath));
+ });
});
});
}

Powered by Google App Engine
This is Rietveld 408576698