| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |