OLD | NEW |
(Empty) | |
| 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 |
| 3 // BSD-style license that can be found in the LICENSE file. |
| 4 |
| 5 library test.integration.analysis.packageRoot; |
| 6 |
| 7 import 'package:analysis_server/src/protocol.dart'; |
| 8 import 'package:path/path.dart'; |
| 9 import 'package:unittest/unittest.dart'; |
| 10 |
| 11 import '../../reflective_tests.dart'; |
| 12 import '../integration_tests.dart'; |
| 13 |
| 14 @ReflectiveTestCase() |
| 15 class Test extends AbstractAnalysisServerIntegrationTest { |
| 16 test_package_root() { |
| 17 String projPath = sourcePath('project'); |
| 18 String mainPath = join(projPath, 'main.dart'); |
| 19 String packagesPath = sourcePath('packages'); |
| 20 String fooBarPath = join(packagesPath, 'foo', 'bar.dart'); |
| 21 String mainText = """ |
| 22 library main; |
| 23 |
| 24 import 'package:foo/bar.dart' |
| 25 |
| 26 main() { |
| 27 f(); |
| 28 } |
| 29 """; |
| 30 String fooBarText = """ |
| 31 library foo.bar; |
| 32 |
| 33 f() {} |
| 34 """; |
| 35 writeFile(mainPath, mainText); |
| 36 String normalizedFooBarPath = writeFile(fooBarPath, fooBarText); |
| 37 sendServerSetSubscriptions([ServerService.STATUS]); |
| 38 sendAnalysisSetSubscriptions({AnalysisService.NAVIGATION: [mainPath]}); |
| 39 List<NavigationRegion> navigationRegions; |
| 40 onAnalysisNavigation.listen((AnalysisNavigationParams params) { |
| 41 expect(params.file, equals(mainPath)); |
| 42 navigationRegions = params.regions; |
| 43 }); |
| 44 sendAnalysisSetAnalysisRoots([projPath], [], |
| 45 packageRoots: {projPath: packagesPath}); |
| 46 return analysisFinished.then((_) { |
| 47 // Verify that fooBarPath was properly resolved by checking that f() |
| 48 // refers to it. |
| 49 bool found = false; |
| 50 for (NavigationRegion region in navigationRegions) { |
| 51 String navigationSource = |
| 52 mainText.substring(region.offset, region.offset + region.length); |
| 53 if (navigationSource == 'f') { |
| 54 found = true; |
| 55 expect(region.targets, hasLength(1)); |
| 56 Location location = region.targets[0].location; |
| 57 expect(location.file, equals(normalizedFooBarPath)); |
| 58 } |
| 59 } |
| 60 expect(found, isTrue); |
| 61 }); |
| 62 } |
| 63 } |
| 64 |
| 65 main() { |
| 66 runReflectiveTests(Test); |
| 67 } |
OLD | NEW |