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

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

Issue 2231413003: Link packages with an SDK extension. (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
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/dart/element/element.dart'; 5 import 'package:analyzer/dart/element/element.dart';
6 import 'package:analyzer/file_system/file_system.dart'; 6 import 'package:analyzer/file_system/file_system.dart';
7 import 'package:analyzer/source/package_map_resolver.dart'; 7 import 'package:analyzer/source/package_map_resolver.dart';
8 import 'package:analyzer/src/generated/sdk.dart'; 8 import 'package:analyzer/src/generated/sdk.dart';
9 import 'package:analyzer/src/generated/source.dart'; 9 import 'package:analyzer/src/generated/source.dart';
10 import 'package:analyzer/src/summary/idl.dart'; 10 import 'package:analyzer/src/summary/idl.dart';
(...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after
512 expect(linkedPackages, hasLength(1)); 512 expect(linkedPackages, hasLength(1));
513 513
514 // package:aaa 514 // package:aaa
515 { 515 {
516 LinkedPubPackage linkedPackage = linkedPackages 516 LinkedPubPackage linkedPackage = linkedPackages
517 .singleWhere((linkedPackage) => linkedPackage.package.name == 'aaa'); 517 .singleWhere((linkedPackage) => linkedPackage.package.name == 'aaa');
518 _assertHasLinkedVariable(linkedPackage, 'a', 'A', 'src/a2.dart'); 518 _assertHasLinkedVariable(linkedPackage, 'a', 'A', 'src/a2.dart');
519 } 519 }
520 } 520 }
521 521
522 test_getLinkedBundles_useSdkExtension() async {
523 resourceProvider.newFile(
524 '$CACHE/aaa/lib/a.dart',
525 '''
526 import 'dart:bbb';
527 ExtB a;
528 ''');
529 resourceProvider.newFile(
530 '$CACHE/bbb/lib/b.dart',
531 '''
532 import 'dart:bbb';
533 ExtB b;
534 ''');
535 resourceProvider.newFile(
536 '$CACHE/bbb/sdk_ext/extB.dart',
537 '''
538 class ExtB {}
539 ''');
540 resourceProvider.newFile(
541 '$CACHE/bbb/lib/_sdkext',
542 '''
543 {
544 "dart:bbb": "../sdk_ext/extB.dart"
545 }
546 ''');
547
548 // Configure packages resolution.
549 Folder libFolderA = resourceProvider.newFolder('$CACHE/aaa/lib');
550 Folder libFolderB = resourceProvider.newFolder('$CACHE/bbb/lib');
551 context.sourceFactory = new SourceFactory(<UriResolver>[
552 sdkResolver,
553 resourceResolver,
554 new PackageMapUriResolver(resourceProvider, {
555 'aaa': [libFolderA],
556 'bbb': [libFolderB],
557 })
558 ]);
559
560 // Ensure unlinked bundles.
561 manager.getUnlinkedBundles(context);
562 await manager.onUnlinkedComplete;
563
564 // Now we should be able to get linked bundles.
565 PackageBundle sdkBundle = getSdkBundle(sdk);
566 List<LinkedPubPackage> linkedPackages =
567 manager.getLinkedBundles(context, sdkBundle);
568 expect(linkedPackages, hasLength(2));
569
570 // package:aaa
571 {
572 LinkedPubPackage linkedPackage = linkedPackages
573 .singleWhere((linkedPackage) => linkedPackage.package.name == 'aaa');
574 _assertHasLinkedVariable(linkedPackage, 'a', 'ExtB', 'dart:bbb');
575 }
576
577 // package:bbb
578 {
579 LinkedPubPackage linkedPackage = linkedPackages
580 .singleWhere((linkedPackage) => linkedPackage.package.name == 'bbb');
581 _assertHasLinkedVariable(linkedPackage, 'b', 'ExtB', 'dart:bbb');
582 }
583 }
584
522 test_getLinkedBundles_wrongScheme() async { 585 test_getLinkedBundles_wrongScheme() async {
523 resourceProvider.newFile( 586 resourceProvider.newFile(
524 '$CACHE/aaa/lib/a.dart', 587 '$CACHE/aaa/lib/a.dart',
525 ''' 588 '''
526 import 'xxx:yyy/zzz.dart'; 589 import 'xxx:yyy/zzz.dart';
527 Z a; 590 Z a;
528 '''); 591 ''');
529 592
530 // Configure packages resolution. 593 // Configure packages resolution.
531 Folder libFolderA = resourceProvider.newFolder('$CACHE/aaa/lib'); 594 Folder libFolderA = resourceProvider.newFolder('$CACHE/aaa/lib');
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
720 }); 783 });
721 } 784 }
722 785
723 static PackageBundle _getBundleByPackageName( 786 static PackageBundle _getBundleByPackageName(
724 Map<PubPackage, PackageBundle> bundles, String name) { 787 Map<PubPackage, PackageBundle> bundles, String name) {
725 PubPackage package = 788 PubPackage package =
726 bundles.keys.singleWhere((package) => package.name == name); 789 bundles.keys.singleWhere((package) => package.name == name);
727 return bundles[package]; 790 return bundles[package];
728 } 791 }
729 } 792 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698