| Index: pkg/analysis_server/test/services/search/search_engine_test.dart
|
| diff --git a/pkg/analysis_server/test/services/search/search_engine_test.dart b/pkg/analysis_server/test/services/search/search_engine_test.dart
|
| index 228a9069d8c32e34446169062bd047807e81382c..04ef87313b65e312ada041bc66c36dd2b33d4ee9 100644
|
| --- a/pkg/analysis_server/test/services/search/search_engine_test.dart
|
| +++ b/pkg/analysis_server/test/services/search/search_engine_test.dart
|
| @@ -46,6 +46,123 @@ class SearchEngineImpl2Test {
|
| scheduler.start();
|
| }
|
|
|
| + test_membersOfSubtypes_hasMembers() async {
|
| + var a = _p('/test/a.dart');
|
| + var b = _p('/test/b.dart');
|
| + var c = _p('/test/c.dart');
|
| +
|
| + provider.newFile(
|
| + a,
|
| + '''
|
| +class A {
|
| + void a() {}
|
| + void b() {}
|
| + void c() {}
|
| +}
|
| +''');
|
| + provider.newFile(
|
| + b,
|
| + '''
|
| +import 'a.dart';
|
| +class B extends A {
|
| + void a() {}
|
| +}
|
| +''');
|
| + provider.newFile(
|
| + c,
|
| + '''
|
| +import 'a.dart';
|
| +class C extends A {
|
| + void b() {}
|
| +}
|
| +''');
|
| +
|
| + var driver1 = _newDriver();
|
| + var driver2 = _newDriver();
|
| +
|
| + driver1.addFile(a);
|
| + driver2.addFile(b);
|
| + driver2.addFile(c);
|
| + await scheduler.waitForIdle();
|
| +
|
| + var resultA = await driver1.getResult(a);
|
| + ClassElement elementA = resultA.unit.element.types[0];
|
| +
|
| + var searchEngine = new SearchEngineImpl([driver1, driver2]);
|
| + Set<String> members = await searchEngine.membersOfSubtypes(elementA);
|
| + expect(members, unorderedEquals(['a', 'b']));
|
| + }
|
| +
|
| + test_membersOfSubtypes_noMembers() async {
|
| + var a = _p('/test/a.dart');
|
| + var b = _p('/test/b.dart');
|
| +
|
| + provider.newFile(
|
| + a,
|
| + '''
|
| +class A {
|
| + void a() {}
|
| + void b() {}
|
| + void c() {}
|
| +}
|
| +''');
|
| + provider.newFile(
|
| + b,
|
| + '''
|
| +import 'a.dart';
|
| +class B extends A {}
|
| +''');
|
| +
|
| + var driver = _newDriver();
|
| +
|
| + driver.addFile(a);
|
| + driver.addFile(b);
|
| + await scheduler.waitForIdle();
|
| +
|
| + var resultA = await driver.getResult(a);
|
| + ClassElement elementA = resultA.unit.element.types[0];
|
| +
|
| + var searchEngine = new SearchEngineImpl([driver]);
|
| + Set<String> members = await searchEngine.membersOfSubtypes(elementA);
|
| + expect(members, isEmpty);
|
| + }
|
| +
|
| + test_membersOfSubtypes_noSubtypes() async {
|
| + var a = _p('/test/a.dart');
|
| + var b = _p('/test/b.dart');
|
| +
|
| + provider.newFile(
|
| + a,
|
| + '''
|
| +class A {
|
| + void a() {}
|
| + void b() {}
|
| + void c() {}
|
| +}
|
| +''');
|
| + provider.newFile(
|
| + b,
|
| + '''
|
| +import 'a.dart';
|
| +class B {
|
| + void a() {}
|
| +}
|
| +''');
|
| +
|
| + var driver = _newDriver();
|
| +
|
| + driver.addFile(a);
|
| + driver.addFile(b);
|
| + await scheduler.waitForIdle();
|
| +
|
| + var resultA = await driver.getResult(a);
|
| + ClassElement elementA = resultA.unit.element.types[0];
|
| +
|
| + var searchEngine = new SearchEngineImpl([driver]);
|
| + Set<String> members = await searchEngine.membersOfSubtypes(elementA);
|
| + expect(members, isNull);
|
| + }
|
| +
|
| test_searchAllSubtypes() async {
|
| var p = _p('/test.dart');
|
|
|
|
|