| OLD | NEW |
| 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.analysis.get_type_hierarhy; | 5 library test.analysis.get_type_hierarhy; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 | 8 |
| 9 import 'package:analysis_server/src/protocol.dart'; | 9 import 'package:analysis_server/src/protocol.dart'; |
| 10 import 'package:analysis_server/src/search/search_domain.dart'; | 10 import 'package:analysis_server/src/search/search_domain.dart'; |
| 11 import 'package:analysis_server/src/services/index/index.dart'; | 11 import 'package:analysis_server/src/services/index/index.dart'; |
| 12 import 'package:analysis_server/src/services/index/local_memory_index.dart'; | 12 import 'package:analysis_server/src/services/index/local_memory_index.dart'; |
| 13 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 13 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
| 14 import 'package:unittest/unittest.dart'; | 14 import 'package:unittest/unittest.dart'; |
| 15 | 15 |
| 16 import '../analysis_abstract.dart'; | 16 import '../analysis_abstract.dart'; |
| 17 import '../utils.dart'; |
| 17 | 18 |
| 18 main() { | 19 main() { |
| 19 groupSep = ' | '; | 20 initializeTestEnvironment(); |
| 20 defineReflectiveTests(GetTypeHierarchyTest); | 21 defineReflectiveTests(GetTypeHierarchyTest); |
| 21 } | 22 } |
| 22 | 23 |
| 23 @reflectiveTest | 24 @reflectiveTest |
| 24 class GetTypeHierarchyTest extends AbstractAnalysisTest { | 25 class GetTypeHierarchyTest extends AbstractAnalysisTest { |
| 25 static const String requestId = 'test-getTypeHierarchy'; | 26 static const String requestId = 'test-getTypeHierarchy'; |
| 26 | 27 |
| 27 @override | 28 @override |
| 28 Index createIndex() { | 29 Index createIndex() { |
| 29 return createLocalMemoryIndex(); | 30 return createLocalMemoryIndex(); |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 102 var itemB = items[0]; | 103 var itemB = items[0]; |
| 103 var itemA = items[itemB.superclass]; | 104 var itemA = items[itemB.superclass]; |
| 104 expect(itemA.classElement.name, 'A'); | 105 expect(itemA.classElement.name, 'A'); |
| 105 expect(itemB.classElement.name, 'B'); | 106 expect(itemB.classElement.name, 'B'); |
| 106 expect(itemA.displayName, 'A<int>'); | 107 expect(itemA.displayName, 'A<int>'); |
| 107 } | 108 } |
| 108 | 109 |
| 109 test_class_extends_fileAndPackageUris() async { | 110 test_class_extends_fileAndPackageUris() async { |
| 110 // prepare packages | 111 // prepare packages |
| 111 String pkgFile = '/packages/pkgA/libA.dart'; | 112 String pkgFile = '/packages/pkgA/libA.dart'; |
| 112 resourceProvider.newFile(pkgFile, ''' | 113 resourceProvider.newFile( |
| 114 pkgFile, |
| 115 ''' |
| 113 library lib_a; | 116 library lib_a; |
| 114 class A {} | 117 class A {} |
| 115 class B extends A {} | 118 class B extends A {} |
| 116 '''); | 119 '''); |
| 117 packageMapProvider.packageMap['pkgA'] = | 120 packageMapProvider.packageMap['pkgA'] = [ |
| 118 [resourceProvider.getResource('/packages/pkgA')]; | 121 resourceProvider.getResource('/packages/pkgA') |
| 122 ]; |
| 119 // reference the package from a project | 123 // reference the package from a project |
| 120 addTestFile(''' | 124 addTestFile(''' |
| 121 import 'package:pkgA/libA.dart'; | 125 import 'package:pkgA/libA.dart'; |
| 122 class C extends A {} | 126 class C extends A {} |
| 123 '''); | 127 '''); |
| 124 // configure roots | 128 // configure roots |
| 125 Request request = new AnalysisSetAnalysisRootsParams( | 129 Request request = new AnalysisSetAnalysisRootsParams( |
| 126 [projectPath, '/packages/pkgA'], []).toRequest('0'); | 130 [projectPath, '/packages/pkgA'], []).toRequest('0'); |
| 127 handleSuccessfulRequest(request); | 131 handleSuccessfulRequest(request); |
| 128 // test A type hierarchy | 132 // test A type hierarchy |
| (...skipping 661 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 790 Request _createGetTypeHierarchyRequest(String search) { | 794 Request _createGetTypeHierarchyRequest(String search) { |
| 791 return new SearchGetTypeHierarchyParams(testFile, findOffset(search)) | 795 return new SearchGetTypeHierarchyParams(testFile, findOffset(search)) |
| 792 .toRequest(requestId); | 796 .toRequest(requestId); |
| 793 } | 797 } |
| 794 | 798 |
| 795 Future<List<TypeHierarchyItem>> _getTypeHierarchy(String search) async { | 799 Future<List<TypeHierarchyItem>> _getTypeHierarchy(String search) async { |
| 796 await waitForTasksFinished(); | 800 await waitForTasksFinished(); |
| 797 Request request = _createGetTypeHierarchyRequest(search); | 801 Request request = _createGetTypeHierarchyRequest(search); |
| 798 Response response = await serverChannel.sendRequest(request); | 802 Response response = await serverChannel.sendRequest(request); |
| 799 expect(serverErrors, isEmpty); | 803 expect(serverErrors, isEmpty); |
| 800 return new SearchGetTypeHierarchyResult.fromResponse( | 804 return new SearchGetTypeHierarchyResult.fromResponse(response) |
| 801 response).hierarchyItems; | 805 .hierarchyItems; |
| 802 } | 806 } |
| 803 | 807 |
| 804 List _toJson(List<TypeHierarchyItem> items) { | 808 List _toJson(List<TypeHierarchyItem> items) { |
| 805 return items.map((item) => item.toJson()).toList(); | 809 return items.map((item) => item.toJson()).toList(); |
| 806 } | 810 } |
| 807 | 811 |
| 808 static Set<String> _toClassNames(List<TypeHierarchyItem> items) { | 812 static Set<String> _toClassNames(List<TypeHierarchyItem> items) { |
| 809 return items.map((TypeHierarchyItem item) { | 813 return items.map((TypeHierarchyItem item) { |
| 810 return item.classElement.name; | 814 return item.classElement.name; |
| 811 }).toSet(); | 815 }).toSet(); |
| 812 } | 816 } |
| 813 } | 817 } |
| OLD | NEW |