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

Side by Side Diff: pkg/analyzer/test/src/summary/pub_summary_test.dart

Issue 2254893003: Add PubSummaryManager.computeUnlinkedForFolder() for Flutter. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 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
« pkg/analyzer/pubspec.yaml ('K') | « pkg/analyzer/pubspec.yaml ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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 import 'package:analyzer/file_system/file_system.dart'; 5 import 'package:analyzer/file_system/file_system.dart';
6 import 'package:analyzer/source/package_map_resolver.dart'; 6 import 'package:analyzer/source/package_map_resolver.dart';
7 import 'package:analyzer/src/generated/sdk.dart';
8 import 'package:analyzer/src/generated/source.dart'; 7 import 'package:analyzer/src/generated/source.dart';
9 import 'package:analyzer/src/summary/format.dart'; 8 import 'package:analyzer/src/summary/format.dart';
10 import 'package:analyzer/src/summary/idl.dart'; 9 import 'package:analyzer/src/summary/idl.dart';
11 import 'package:analyzer/src/summary/pub_summary.dart'; 10 import 'package:analyzer/src/summary/pub_summary.dart';
12 import 'package:analyzer/src/summary/summarize_elements.dart'; 11 import 'package:analyzer/src/summary/summarize_elements.dart';
13 import 'package:analyzer/src/util/fast_uri.dart'; 12 import 'package:analyzer/src/util/fast_uri.dart';
14 import 'package:path/path.dart' as pathos; 13 import 'package:path/path.dart' as pathos;
15 import 'package:unittest/unittest.dart' hide ERROR; 14 import 'package:unittest/unittest.dart' hide ERROR;
16 15
17 import '../../reflective_tests.dart'; 16 import '../../reflective_tests.dart';
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 UnlinkedVariable variable = unlinkedUnit.variables[0]; 140 UnlinkedVariable variable = unlinkedUnit.variables[0];
142 expect(variable.name, 'V2'); 141 expect(variable.name, 'V2');
143 int typeRef = variable.type.reference; 142 int typeRef = variable.type.reference;
144 expect(unlinkedUnit.references[typeRef].name, 'Future'); 143 expect(unlinkedUnit.references[typeRef].name, 'Future');
145 LinkedReference linkedReference = linkedUnit.references[typeRef]; 144 LinkedReference linkedReference = linkedUnit.references[typeRef];
146 expect(linkedLibrary.dependencies[linkedReference.dependency].uri, 145 expect(linkedLibrary.dependencies[linkedReference.dependency].uri,
147 'dart:async'); 146 'dart:async');
148 } 147 }
149 } 148 }
150 149
150 test_computeUnlinkedForFolder() async {
151 // Create package files.
152 resourceProvider.newFile(
153 '/flutter/aaa/lib/a.dart',
154 '''
155 class A {}
156 ''');
157 resourceProvider.newFile(
158 '/flutter/bbb/lib/b.dart',
159 '''
160 class B {}
161 ''');
162
163 // Configure packages resolution.
164 Folder libFolderA = resourceProvider.newFolder('/flutter/aaa/lib');
165 Folder libFolderB = resourceProvider.newFolder('/flutter/bbb/lib');
166 context.sourceFactory = new SourceFactory(<UriResolver>[
167 sdkResolver,
168 resourceResolver,
169 new PackageMapUriResolver(resourceProvider, {
170 'aaa': [libFolderA],
171 'bbb': [libFolderB],
172 })
173 ]);
174
175 await manager.computeUnlinkedForFolder('aaa', libFolderA);
176 await manager.computeUnlinkedForFolder('bbb', libFolderB);
177
178 // The files must be created.
179 _assertFileExists(libFolderA.parent, PubSummaryManager.UNLINKED_NAME);
180 _assertFileExists(libFolderA.parent, PubSummaryManager.UNLINKED_SPEC_NAME);
181 _assertFileExists(libFolderB.parent, PubSummaryManager.UNLINKED_NAME);
182 _assertFileExists(libFolderB.parent, PubSummaryManager.UNLINKED_SPEC_NAME);
183 }
184
151 test_getLinkedBundles_cached() async { 185 test_getLinkedBundles_cached() async {
152 String pathA1 = '$CACHE/aaa-1.0.0'; 186 String pathA1 = '$CACHE/aaa-1.0.0';
153 String pathA2 = '$CACHE/aaa-2.0.0'; 187 String pathA2 = '$CACHE/aaa-2.0.0';
154 resourceProvider.newFile( 188 resourceProvider.newFile(
155 '$pathA1/lib/a.dart', 189 '$pathA1/lib/a.dart',
156 ''' 190 '''
157 class A {} 191 class A {}
158 int a; 192 int a;
159 '''); 193 ''');
160 resourceProvider.newFile( 194 resourceProvider.newFile(
(...skipping 1063 matching lines...) Expand 10 before | Expand all | Expand 10 after
1224 } 1258 }
1225 } 1259 }
1226 } 1260 }
1227 fail('Cannot find variable $variableName in $linkedPackage'); 1261 fail('Cannot find variable $variableName in $linkedPackage');
1228 } 1262 }
1229 1263
1230 void _createManager() { 1264 void _createManager() {
1231 manager = new PubSummaryManager(resourceProvider, '_.temp'); 1265 manager = new PubSummaryManager(resourceProvider, '_.temp');
1232 } 1266 }
1233 1267
1234 List<File> _getLinkedFiles(Folder folder) {
1235 List<File> linkedFiles = <File>[];
1236 for (var child in folder.getChildren()) {
1237 if (child is File && child.shortName.startsWith('linked_')) {
1238 linkedFiles.add(child);
1239 }
1240 }
1241 return linkedFiles;
1242 }
1243
1244 LinkedPubPackage _getLinkedPackage( 1268 LinkedPubPackage _getLinkedPackage(
1245 List<LinkedPubPackage> packages, String name) { 1269 List<LinkedPubPackage> packages, String name) {
1246 return packages 1270 return packages
1247 .singleWhere((linkedPackage) => linkedPackage.package.name == name); 1271 .singleWhere((linkedPackage) => linkedPackage.package.name == name);
1248 } 1272 }
1249 1273
1250 static PackageBundle _getBundleByPackageName( 1274 static PackageBundle _getBundleByPackageName(
1251 Map<PubPackage, PackageBundle> bundles, String name) { 1275 Map<PubPackage, PackageBundle> bundles, String name) {
1252 PubPackage package = 1276 PubPackage package =
1253 bundles.keys.singleWhere((package) => package.name == name); 1277 bundles.keys.singleWhere((package) => package.name == name);
1254 return bundles[package]; 1278 return bundles[package];
1255 } 1279 }
1256 } 1280 }
OLDNEW
« pkg/analyzer/pubspec.yaml ('K') | « pkg/analyzer/pubspec.yaml ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698