| Index: pkg/analysis_server/test/search/type_hierarchy_test.dart
|
| diff --git a/pkg/analysis_server/test/search/type_hierarchy_test.dart b/pkg/analysis_server/test/search/type_hierarchy_test.dart
|
| index 3dda4791cd3a037620a83ef60e572a8fe2849689..67445aa8ecb42a775bcca15bcc2cc4889b452ba4 100644
|
| --- a/pkg/analysis_server/test/search/type_hierarchy_test.dart
|
| +++ b/pkg/analysis_server/test/search/type_hierarchy_test.dart
|
| @@ -791,14 +791,86 @@ class D extends C {
|
| itemD.memberElement.location.offset, findOffset('test(x) {} // in D'));
|
| }
|
|
|
| - Request _createGetTypeHierarchyRequest(String search) {
|
| - return new SearchGetTypeHierarchyParams(testFile, findOffset(search))
|
| - .toRequest(requestId);
|
| + test_superOnly() async {
|
| + addTestFile('''
|
| +class A {}
|
| +class B {}
|
| +class C extends A implements B {}
|
| +class D extends C {}
|
| +''');
|
| + List<TypeHierarchyItem> items =
|
| + await _getTypeHierarchy('C extends', superOnly: true);
|
| + expect(_toJson(items), [
|
| + {
|
| + 'classElement': {
|
| + 'kind': 'CLASS',
|
| + 'name': 'C',
|
| + 'location': anything,
|
| + 'flags': 0
|
| + },
|
| + 'superclass': 1,
|
| + 'interfaces': [3],
|
| + 'mixins': [],
|
| + 'subclasses': []
|
| + },
|
| + {
|
| + 'classElement': {
|
| + 'kind': 'CLASS',
|
| + 'name': 'A',
|
| + 'location': anything,
|
| + 'flags': 0
|
| + },
|
| + 'superclass': 2,
|
| + 'interfaces': [],
|
| + 'mixins': [],
|
| + 'subclasses': []
|
| + },
|
| + {
|
| + 'classElement': {
|
| + 'kind': 'CLASS',
|
| + 'name': 'Object',
|
| + 'location': anything,
|
| + 'flags': 0
|
| + },
|
| + 'interfaces': [],
|
| + 'mixins': [],
|
| + 'subclasses': []
|
| + },
|
| + {
|
| + 'classElement': {
|
| + 'kind': 'CLASS',
|
| + 'name': 'B',
|
| + 'location': anything,
|
| + 'flags': 0
|
| + },
|
| + 'superclass': 2,
|
| + 'interfaces': [],
|
| + 'mixins': [],
|
| + 'subclasses': []
|
| + }
|
| + ]);
|
| + }
|
| +
|
| + test_superOnly_fileDoesNotExist() async {
|
| + Request request = new SearchGetTypeHierarchyParams(
|
| + '/does/not/exist.dart', 0,
|
| + superOnly: true).toRequest(requestId);
|
| + Response response = await serverChannel.sendRequest(request);
|
| + List<TypeHierarchyItem> items =
|
| + new SearchGetTypeHierarchyResult.fromResponse(response).hierarchyItems;
|
| + expect(items, isNull);
|
| + }
|
| +
|
| + Request _createGetTypeHierarchyRequest(String search, {bool superOnly}) {
|
| + return new SearchGetTypeHierarchyParams(testFile, findOffset(search),
|
| + superOnly: superOnly).toRequest(requestId);
|
| }
|
|
|
| - Future<List<TypeHierarchyItem>> _getTypeHierarchy(String search) async {
|
| + Future<List<TypeHierarchyItem>> _getTypeHierarchy(String search,
|
| + {bool superOnly}) async {
|
| await waitForTasksFinished();
|
| - Request request = _createGetTypeHierarchyRequest(search);
|
| + Request request =
|
| + _createGetTypeHierarchyRequest(search, superOnly: superOnly);
|
| Response response = await serverChannel.sendRequest(request);
|
| expect(serverErrors, isEmpty);
|
| return new SearchGetTypeHierarchyResult.fromResponse(response)
|
|
|