Index: pkg/analysis_server/test/integration/search_domain_int_test.dart |
diff --git a/pkg/analysis_server/test/integration/search_domain_int_test.dart b/pkg/analysis_server/test/integration/search_domain_int_test.dart |
index 35ff8146a1de74d8fe244452705cd2c5f69f6469..74a3b962650cb61e96a332498a2edaf200db4dfe 100644 |
--- a/pkg/analysis_server/test/integration/search_domain_int_test.dart |
+++ b/pkg/analysis_server/test/integration/search_domain_int_test.dart |
@@ -60,7 +60,29 @@ class HierarchyResults { |
@ReflectiveTestCase() |
class SearchDomainIntegrationTest extends AbstractAnalysisServerIntegrationTest |
{ |
- test_getTypeHierarchy_classElement() { |
+ /** |
+ * Pathname of the main file to run tests in. |
+ */ |
+ String pathname; |
+ |
+ test_getTypeHierarchy() { |
+ pathname = sourcePath('test.dart'); |
+ // Write a dummy file which will be overridden by tests using |
+ // [sendAnalysisUpdateContent]. |
+ writeFile(pathname, '// dummy'); |
+ standardAnalysisRoot(); |
+ |
+ // Run all the getTypeHierarchy tests at once so that the server can take |
+ // advantage of incremental analysis and the test doesn't time out. |
+ List tests = [getTypeHierarchy_classElement, getTypeHierarchy_displayName, |
+ getTypeHierarchy_memberElement, getTypeHierarchy_superclass, |
+ getTypeHierarchy_interfaces, getTypeHierarchy_mixins, |
+ getTypeHierarchy_subclasses, getTypeHierarchy_badTarget, |
+ getTypeHierarchy_functionTarget]; |
+ return Future.forEach(tests, (test) => test()); |
+ } |
+ |
+ Future getTypeHierarchy_classElement() { |
String text = |
r''' |
class Base {} |
@@ -88,8 +110,9 @@ class Derived extends Pivot {} |
}); |
} |
- test_getTypeHierarchy_displayName() { |
- String text = r''' |
+ Future getTypeHierarchy_displayName() { |
+ String text = |
+ r''' |
class Base<T> {} |
class Pivot /* target */ extends Base<int> {} |
'''; |
@@ -101,7 +124,7 @@ class Pivot /* target */ extends Base<int> {} |
}); |
} |
- test_getTypeHierarchy_memberElement() { |
+ Future getTypeHierarchy_memberElement() { |
String text = |
r''' |
class Base1 { |
@@ -129,7 +152,7 @@ class Derived2 extends Derived1 { |
}); |
} |
- test_getTypeHierarchy_superclass() { |
+ Future getTypeHierarchy_superclass() { |
String text = |
r''' |
class Base1 {} |
@@ -148,7 +171,7 @@ class Pivot /* target */ extends Base2 {} |
}); |
} |
- test_getTypeHierarchy_interfaces() { |
+ Future getTypeHierarchy_interfaces() { |
String text = |
r''' |
class Interface1 {} |
@@ -168,7 +191,7 @@ class Pivot /* target */ implements Interface1, Interface2 {} |
}); |
} |
- test_getTypeHierarchy_mixins() { |
+ Future getTypeHierarchy_mixins() { |
String text = |
r''' |
class Base {} |
@@ -188,7 +211,7 @@ class Pivot /* target */ extends Base with Mixin1, Mixin2 {} |
}); |
} |
- test_getTypeHierarchy_subclasses() { |
+ Future getTypeHierarchy_subclasses() { |
String text = |
r''' |
class Base {} |
@@ -213,7 +236,7 @@ class Sub2a extends Sub2 {} |
}); |
} |
- test_getTypeHierarchy_badTarget() { |
+ Future getTypeHierarchy_badTarget() { |
String text = |
r''' |
main() { |
@@ -227,9 +250,8 @@ main() { |
}); |
} |
- test_getTypeHierarchy_functionTarget() { |
- String text = |
- r''' |
+ Future getTypeHierarchy_functionTarget() { |
+ String text = r''' |
main /* target */ () { |
} |
'''; |
@@ -239,10 +261,13 @@ main /* target */ () { |
} |
Future<HierarchyResults> typeHierarchyTest(String text) { |
- String pathname = sourcePath('test.dart'); |
int offset = text.indexOf(' /* target */') - 1; |
- writeFile(pathname, text); |
- standardAnalysisRoot(); |
+ sendAnalysisUpdateContent({ |
+ pathname: { |
+ 'type': 'add', |
+ 'content': text |
+ } |
+ }); |
return analysisFinished.then((_) => sendSearchGetTypeHierarchy(pathname, |
offset)).then((result) { |
if (result.isEmpty) { |