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

Side by Side Diff: packages/analyzer/test/source/package_map_provider_test.dart

Issue 2990843002: Removed fixed dependencies (Closed)
Patch Set: Created 3 years, 4 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library test.package.map.provider; 5 library analyzer.test.source.package_map_provider_test;
6 6
7 import 'package:analyzer/file_system/file_system.dart'; 7 import 'package:analyzer/file_system/file_system.dart';
8 import 'package:analyzer/file_system/memory_file_system.dart'; 8 import 'package:analyzer/file_system/memory_file_system.dart';
9 import 'package:analyzer/source/package_map_provider.dart'; 9 import 'package:analyzer/source/package_map_provider.dart';
10 import 'package:analyzer/source/pub_package_map_provider.dart'; 10 import 'package:analyzer/source/pub_package_map_provider.dart';
11 import 'package:analyzer/src/generated/sdk_io.dart'; 11 import 'package:analyzer/src/dart/sdk/sdk.dart';
12 import 'package:analyzer/src/generated/sdk.dart';
13 import 'package:test_reflective_loader/test_reflective_loader.dart';
12 import 'package:unittest/unittest.dart'; 14 import 'package:unittest/unittest.dart';
13 15
14 import '../utils.dart'; 16 import '../utils.dart';
15 17
16 main() { 18 main() {
17 initializeTestEnvironment(); 19 initializeTestEnvironment();
20 defineReflectiveTests(PubPackageMapProviderTest);
21 }
18 22
19 group('PubPackageMapProvider', () { 23 @reflectiveTest
20 group('parsePackageMap', () { 24 class PubPackageMapProviderTest {
21 MemoryResourceProvider resourceProvider; 25 static const String projectPath = '/path/to/project';
22 PubPackageMapProvider packageMapProvider;
23 const String projectPath = '/path/to/project';
24 Folder projectFolder;
25 26
26 setUp(() { 27 DartSdk sdk;
27 resourceProvider = new MemoryResourceProvider(); 28 MemoryResourceProvider resourceProvider;
28 packageMapProvider = new PubPackageMapProvider( 29 PubPackageMapProvider packageMapProvider;
29 resourceProvider, DirectoryBasedDartSdk.defaultSdk); 30 Folder projectFolder;
30 projectFolder = resourceProvider.newFolder(projectPath);
31 });
32 31
33 PackageMapInfo parsePackageMap(Object obj) { 32 PackageMapInfo parsePackageMap(Map obj) {
34 return packageMapProvider.parsePackageMap(obj, projectFolder); 33 return packageMapProvider.parsePackageMap(obj, projectFolder);
34 }
35
36 void setUp() {
37 resourceProvider = new MemoryResourceProvider();
38 sdk = new FolderBasedDartSdk(resourceProvider,
39 FolderBasedDartSdk.defaultSdkDirectory(resourceProvider));
40 packageMapProvider = new PubPackageMapProvider(resourceProvider, sdk);
41 projectFolder = resourceProvider.newFolder(projectPath);
42 }
43
44 void test_computePackageMap_noLockFile() {
45 packageMapProvider =
46 new PubPackageMapProvider(resourceProvider, sdk, (Folder folder) {
47 fail('Unexpected "pub list" invocation');
48 });
49 PackageMapInfo info = packageMapProvider.computePackageMap(projectFolder);
50 expect(info.packageMap, isNull);
51 expect(info.dependencies, unorderedEquals(['$projectPath/pubspec.lock']));
52 }
53
54 void test_parsePackageMap_dontIgnoreNonExistingFolder() {
55 String packageName = 'foo';
56 String folderPath = '/path/to/folder';
57 Map<String, List<Folder>> result = parsePackageMap({
58 'packages': {packageName: folderPath}
59 }).packageMap;
60 expect(result, hasLength(1));
61 expect(result.keys, contains(packageName));
62 expect(result[packageName], hasLength(1));
63 expect(result[packageName][0], new isInstanceOf<Folder>());
64 expect(result[packageName][0].path, equals(folderPath));
65 }
66
67 void test_parsePackageMap_handleDependencies() {
68 String path1 = '/path/to/folder1/pubspec.lock';
69 String path2 = '/path/to/folder2/pubspec.lock';
70 resourceProvider.newFile(path1, '...');
71 resourceProvider.newFile(path2, '...');
72 Set<String> dependencies = parsePackageMap({
73 'packages': {},
74 'input_files': [path1, path2]
75 }).dependencies;
76 expect(dependencies, hasLength(2));
77 expect(dependencies, contains(path1));
78 expect(dependencies, contains(path2));
79 }
80
81 void test_parsePackageMap_normalFolder() {
82 String packageName = 'foo';
83 String folderPath = '/path/to/folder';
84 resourceProvider.newFolder(folderPath);
85 Map<String, List<Folder>> result = parsePackageMap({
86 'packages': {packageName: folderPath}
87 }).packageMap;
88 expect(result, hasLength(1));
89 expect(result.keys, contains(packageName));
90 expect(result[packageName], hasLength(1));
91 expect(result[packageName][0], new isInstanceOf<Folder>());
92 expect(result[packageName][0].path, equals(folderPath));
93 }
94
95 void test_parsePackageMap_packageMapsToList() {
96 String packageName = 'foo';
97 String folderPath1 = '/path/to/folder1';
98 String folderPath2 = '/path/to/folder2';
99 resourceProvider.newFolder(folderPath1);
100 resourceProvider.newFolder(folderPath2);
101 Map<String, List<Folder>> result = parsePackageMap({
102 'packages': {
103 packageName: [folderPath1, folderPath2]
35 } 104 }
105 }).packageMap;
106 expect(result, hasLength(1));
107 expect(result.keys, contains(packageName));
108 expect(result[packageName], hasLength(2));
109 for (int i = 0; i < 2; i++) {
110 expect(result[packageName][i], new isInstanceOf<Folder>());
111 expect(result[packageName][i].path, isIn([folderPath1, folderPath2]));
112 }
113 }
36 114
37 test('normal folder', () { 115 void test_parsePackageMap_relativePahInPackages() {
38 String packageName = 'foo'; 116 String packagePath = '/path/to/package';
39 String folderPath = '/path/to/folder'; 117 String relativePackagePath = '../package';
40 resourceProvider.newFolder(folderPath); 118 String packageName = 'foo';
41 Map<String, List<Folder>> result = parsePackageMap({ 119 resourceProvider.newFolder(projectPath);
42 'packages': {packageName: folderPath} 120 resourceProvider.newFolder(packagePath);
43 }).packageMap; 121 Map<String, List<Folder>> result = parsePackageMap({
44 expect(result, hasLength(1)); 122 'packages': {
45 expect(result.keys, contains(packageName)); 123 packageName: [relativePackagePath]
46 expect(result[packageName], hasLength(1)); 124 }
47 expect(result[packageName][0], new isInstanceOf<Folder>()); 125 }).packageMap;
48 expect(result[packageName][0].path, equals(folderPath)); 126 expect(result[packageName][0].path, equals(packagePath));
49 }); 127 }
50 128
51 test("don't ignore nonexistent folder", () { 129 void test_parsePackageMap_relativePathInDependencies() {
52 String packageName = 'foo'; 130 String dependencyPath = '/path/to/pubspec.lock';
53 String folderPath = '/path/to/folder'; 131 String relativeDependencyPath = '../pubspec.lock';
54 Map<String, List<Folder>> result = parsePackageMap({ 132 resourceProvider.newFolder(projectPath);
55 'packages': {packageName: folderPath} 133 resourceProvider.newFile(dependencyPath, 'contents');
56 }).packageMap; 134 Set<String> dependencies = parsePackageMap({
57 expect(result, hasLength(1)); 135 'packages': {},
58 expect(result.keys, contains(packageName)); 136 'input_files': [relativeDependencyPath]
59 expect(result[packageName], hasLength(1)); 137 }).dependencies;
60 expect(result[packageName][0], new isInstanceOf<Folder>()); 138 expect(dependencies, hasLength(1));
61 expect(result[packageName][0].path, equals(folderPath)); 139 expect(dependencies, contains(dependencyPath));
62 }); 140 }
63
64 test('package maps to list', () {
65 String packageName = 'foo';
66 String folderPath1 = '/path/to/folder1';
67 String folderPath2 = '/path/to/folder2';
68 resourceProvider.newFolder(folderPath1);
69 resourceProvider.newFolder(folderPath2);
70 Map<String, List<Folder>> result = parsePackageMap({
71 'packages': {
72 packageName: [folderPath1, folderPath2]
73 }
74 }).packageMap;
75 expect(result, hasLength(1));
76 expect(result.keys, contains(packageName));
77 expect(result[packageName], hasLength(2));
78 for (int i = 0; i < 2; i++) {
79 expect(result[packageName][i], new isInstanceOf<Folder>());
80 expect(result[packageName][i].path, isIn([folderPath1, folderPath2]));
81 }
82 });
83
84 test('Handle dependencies', () {
85 String path1 = '/path/to/folder1/pubspec.lock';
86 String path2 = '/path/to/folder2/pubspec.lock';
87 resourceProvider.newFile(path1, '...');
88 resourceProvider.newFile(path2, '...');
89 Set<String> dependencies = parsePackageMap({
90 'packages': {},
91 'input_files': [path1, path2]
92 }).dependencies;
93 expect(dependencies, hasLength(2));
94 expect(dependencies, contains(path1));
95 expect(dependencies, contains(path2));
96 });
97
98 test('Relative path in packages', () {
99 String packagePath = '/path/to/package';
100 String relativePackagePath = '../package';
101 String packageName = 'foo';
102 resourceProvider.newFolder(projectPath);
103 resourceProvider.newFolder(packagePath);
104 Map<String, List<Folder>> result = parsePackageMap({
105 'packages': {
106 packageName: [relativePackagePath]
107 }
108 }).packageMap;
109 expect(result[packageName][0].path, equals(packagePath));
110 });
111
112 test('Relative path in dependencies', () {
113 String dependencyPath = '/path/to/pubspec.lock';
114 String relativeDependencyPath = '../pubspec.lock';
115 resourceProvider.newFolder(projectPath);
116 resourceProvider.newFile(dependencyPath, 'contents');
117 Set<String> dependencies = parsePackageMap({
118 'packages': {},
119 'input_files': [relativeDependencyPath]
120 }).dependencies;
121 expect(dependencies, hasLength(1));
122 expect(dependencies, contains(dependencyPath));
123 });
124 });
125 });
126 } 141 }
OLDNEW
« no previous file with comments | « packages/analyzer/test/source/error_processor_test.dart ('k') | packages/analyzer/test/source/package_map_resolver_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698