Index: pkg/analysis_server/test/services/search/hierarchy_test.dart |
diff --git a/pkg/analysis_server/test/services/search/hierarchy_test.dart b/pkg/analysis_server/test/services/search/hierarchy_test.dart |
index 65820bf640aeae11ed0f3b681676593156e2e609..879d035c512314a2f91e8cd3ffe26654489b18e2 100644 |
--- a/pkg/analysis_server/test/services/search/hierarchy_test.dart |
+++ b/pkg/analysis_server/test/services/search/hierarchy_test.dart |
@@ -10,11 +10,12 @@ import 'package:analysis_server/src/services/index/index.dart'; |
import 'package:analysis_server/src/services/index/local_memory_index.dart'; |
import 'package:analysis_server/src/services/search/hierarchy.dart'; |
import 'package:analysis_server/src/services/search/search_engine_internal.dart'; |
-import '../../abstract_single_unit.dart'; |
-import '../../reflective_tests.dart'; |
import 'package:analyzer/src/generated/element.dart'; |
import 'package:unittest/unittest.dart'; |
+import '../../abstract_single_unit.dart'; |
+import '../../reflective_tests.dart'; |
+ |
main() { |
groupSep = ' | '; |
@@ -72,10 +73,12 @@ class B extends A { |
ClassElement classB = findElement("B"); |
ClassMemberElement memberA = classA.constructors[0]; |
ClassMemberElement memberB = classB.constructors[0]; |
- var futureA = getHierarchyMembers(searchEngine, memberA).then((members) { |
+ var futureA = |
+ getHierarchyMembers(searchEngine, memberA, false).then((members) { |
expect(members, unorderedEquals([memberA])); |
}); |
- var futureB = getHierarchyMembers(searchEngine, memberB).then((members) { |
+ var futureB = |
+ getHierarchyMembers(searchEngine, memberB, false).then((members) { |
expect(members, unorderedEquals([memberB])); |
}); |
return Future.wait([futureA, futureB]); |
@@ -105,16 +108,20 @@ class D { |
ClassMemberElement memberB = classB.fields[0]; |
ClassMemberElement memberC = classC.fields[0]; |
ClassMemberElement memberD = classD.fields[0]; |
- var futureA = getHierarchyMembers(searchEngine, memberA).then((members) { |
+ var futureA = |
+ getHierarchyMembers(searchEngine, memberA, false).then((members) { |
expect(members, unorderedEquals([memberA, memberB, memberC])); |
}); |
- var futureB = getHierarchyMembers(searchEngine, memberB).then((members) { |
+ var futureB = |
+ getHierarchyMembers(searchEngine, memberB, false).then((members) { |
expect(members, unorderedEquals([memberA, memberB, memberC])); |
}); |
- var futureC = getHierarchyMembers(searchEngine, memberC).then((members) { |
+ var futureC = |
+ getHierarchyMembers(searchEngine, memberC, false).then((members) { |
expect(members, unorderedEquals([memberA, memberB, memberC])); |
}); |
- var futureD = getHierarchyMembers(searchEngine, memberD).then((members) { |
+ var futureD = |
+ getHierarchyMembers(searchEngine, memberD, false).then((members) { |
expect(members, unorderedEquals([memberD])); |
}); |
return Future.wait([futureA, futureB, futureC, futureD]); |
@@ -148,24 +155,62 @@ class E extends D { |
ClassMemberElement memberC = classC.methods[0]; |
ClassMemberElement memberD = classD.methods[0]; |
ClassMemberElement memberE = classE.methods[0]; |
- var futureA = getHierarchyMembers(searchEngine, memberA).then((members) { |
+ var futureA = |
+ getHierarchyMembers(searchEngine, memberA, false).then((members) { |
expect(members, unorderedEquals([memberA, memberB, memberC])); |
}); |
- var futureB = getHierarchyMembers(searchEngine, memberB).then((members) { |
+ var futureB = |
+ getHierarchyMembers(searchEngine, memberB, false).then((members) { |
expect(members, unorderedEquals([memberA, memberB, memberC])); |
}); |
- var futureC = getHierarchyMembers(searchEngine, memberC).then((members) { |
+ var futureC = |
+ getHierarchyMembers(searchEngine, memberC, false).then((members) { |
expect(members, unorderedEquals([memberA, memberB, memberC])); |
}); |
- var futureD = getHierarchyMembers(searchEngine, memberD).then((members) { |
+ var futureD = |
+ getHierarchyMembers(searchEngine, memberD, false).then((members) { |
expect(members, unorderedEquals([memberD, memberE])); |
}); |
- var futureE = getHierarchyMembers(searchEngine, memberE).then((members) { |
+ var futureE = |
+ getHierarchyMembers(searchEngine, memberE, false).then((members) { |
expect(members, unorderedEquals([memberD, memberE])); |
}); |
return Future.wait([futureA, futureB, futureC, futureD, futureE]); |
} |
+ Future test_getHierarchyMembers_methods_onlySuper() { |
+ _indexTestUnit(''' |
+class A { |
+ foo() {} |
+} |
+class B extends A { |
+ foo() {} |
+} |
+class C extends B { |
+ foo() {} |
+} |
+'''); |
+ ClassElement classA = findElement("A"); |
+ ClassElement classB = findElement("B"); |
+ ClassElement classC = findElement("C"); |
+ ClassMemberElement memberA = classA.methods[0]; |
+ ClassMemberElement memberB = classB.methods[0]; |
+ ClassMemberElement memberC = classC.methods[0]; |
+ var futureA = |
+ getHierarchyMembers(searchEngine, memberA, true).then((members) { |
+ expect(members, unorderedEquals([memberA])); |
+ }); |
+ var futureB = |
+ getHierarchyMembers(searchEngine, memberB, true).then((members) { |
+ expect(members, unorderedEquals([memberA, memberB])); |
+ }); |
+ var futureC = |
+ getHierarchyMembers(searchEngine, memberC, true).then((members) { |
+ expect(members, unorderedEquals([memberA, memberB, memberC])); |
+ }); |
+ return Future.wait([futureA, futureB, futureC]); |
+ } |
+ |
Future test_getHierarchyMembers_withInterfaces() { |
_indexTestUnit(''' |
class A { |
@@ -191,13 +236,16 @@ class E { |
ClassMemberElement memberA = classA.methods[0]; |
ClassMemberElement memberB = classB.methods[0]; |
ClassMemberElement memberD = classD.methods[0]; |
- var futureA = getHierarchyMembers(searchEngine, memberA).then((members) { |
+ var futureA = |
+ getHierarchyMembers(searchEngine, memberA, false).then((members) { |
expect(members, unorderedEquals([memberA, memberB, memberD])); |
}); |
- var futureB = getHierarchyMembers(searchEngine, memberB).then((members) { |
+ var futureB = |
+ getHierarchyMembers(searchEngine, memberB, false).then((members) { |
expect(members, unorderedEquals([memberA, memberB, memberD])); |
}); |
- var futureD = getHierarchyMembers(searchEngine, memberD).then((members) { |
+ var futureD = |
+ getHierarchyMembers(searchEngine, memberD, false).then((members) { |
expect(members, unorderedEquals([memberA, memberB, memberD])); |
}); |
return Future.wait([futureA, futureB, futureD]); |