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 |