Index: pkg/analysis_server/test/integration/analysis/get_hover_test.dart |
diff --git a/pkg/analysis_server/test/integration/analysis/get_hover_test.dart b/pkg/analysis_server/test/integration/analysis/get_hover_test.dart |
index 08431bc5e3d4e8715b2106ee00512910b8fa2291..0356b8173f1c52a4aa626aaa46437a942393c8d2 100644 |
--- a/pkg/analysis_server/test/integration/analysis/get_hover_test.dart |
+++ b/pkg/analysis_server/test/integration/analysis/get_hover_test.dart |
@@ -13,6 +13,10 @@ import 'package:unittest/unittest.dart'; |
import '../../reflective_tests.dart'; |
import '../integration_tests.dart'; |
+main() { |
+ runReflectiveTests(AnalysisGetHoverIntegrationTest); |
+} |
+ |
@ReflectiveTestCase() |
class AnalysisGetHoverIntegrationTest extends |
AbstractAnalysisServerIntegrationTest { |
@@ -24,8 +28,7 @@ class AnalysisGetHoverIntegrationTest extends |
/** |
* Dart code under test. |
*/ |
- final String text = |
- r''' |
+ final String text = r''' |
library lib.test; |
List topLevelVar; |
@@ -45,54 +48,6 @@ main() { |
} |
'''; |
- setUp() { |
- return super.setUp().then((_) { |
- pathname = sourcePath('test.dart'); |
- }); |
- } |
- |
- test_getHover() { |
- writeFile(pathname, text); |
- standardAnalysisSetup(); |
- |
- // Note: analysis.getHover doesn't wait for analysis to complete--it simply |
- // returns the latest results that are available at the time that the |
- // request is made. So wait for analysis to finish before testing anything. |
- return analysisFinished.then((_) { |
- List<Future> tests = []; |
- tests.add(checkHover('topLevelVar;', 11, ['List', 'topLevelVar'], |
- 'top level variable', ['List'])); |
- tests.add(checkHover('func(', 4, ['func', 'int', 'param'], 'function', |
- ['int', 'void'], docRegexp: 'Documentation for func')); |
- tests.add(checkHover('int param', 3, ['int'], 'class', ['int'], isCore: |
- true, docRegexp: '.*')); |
- tests.add(checkHover('param)', 5, ['int', 'param'], 'parameter', ['int'], |
- docRegexp: 'Documentation for func')); |
- tests.add(checkHover('num localVar', 3, ['num'], 'class', ['num'], isCore: |
- true, docRegexp: '.*')); |
- tests.add(checkHover('localVar =', 8, ['num', 'localVar'], |
- 'local variable', ['num'], propagatedType: 'int')); |
- tests.add(checkHover('topLevelVar.length;', 11, ['List', 'topLevelVar'], |
- 'top level variable', ['List'])); |
- tests.add(checkHover('length;', 6, ['get', 'length', 'int'], 'getter', |
- ['int'], isCore: true, docRegexp: '.*')); |
- tests.add(checkHover('length =', 6, ['set', 'length', 'int'], 'setter', |
- ['int'], isCore: true, docRegexp: '.*')); |
- tests.add(checkHover('param;', 5, ['int', 'param'], 'parameter', ['int'], |
- docRegexp: 'Documentation for func', parameterRegexps: ['.*'])); |
- tests.add(checkHover('add(', 3, ['List', 'add'], 'method', null, isCore: |
- true, docRegexp: '.*')); |
- tests.add(checkHover('localVar)', 8, ['num', 'localVar'], |
- 'local variable', ['num'], parameterRegexps: ['.*'], propagatedType: 'int')); |
- tests.add(checkHover('func(35', 4, ['func', 'int', 'param'], 'function', |
- null, docRegexp: 'Documentation for func')); |
- tests.add(checkHover('35', 2, null, null, ['int'], isLiteral: true, |
- parameterRegexps: ['int', 'param'])); |
- tests.add(checkNoHover('comment')); |
- return Future.wait(tests); |
- }); |
- } |
- |
/** |
* Check that a getHover request on the substring [target] produces a result |
* which has length [length], has an elementDescription matching every |
@@ -106,9 +61,9 @@ main() { |
* match the hover parameters. [propagatedType], if specified, is the |
* expected propagated type of the element. |
*/ |
- checkHover(String target, int length, List<String> descriptionRegexps, String |
- kind, List<String> staticTypeRegexps, {bool isCore: false, String docRegexp: |
- null, bool isLiteral: false, List<String> parameterRegexps: |
+ checkHover(String target, int length, List<String> descriptionRegexps, |
+ String kind, List<String> staticTypeRegexps, {bool isCore: false, |
+ String docRegexp: null, bool isLiteral: false, List<String> parameterRegexps: |
null, propagatedType: null}) { |
int offset = text.indexOf(target); |
return sendAnalysisGetHover(pathname, offset).then((result) { |
@@ -170,8 +125,142 @@ main() { |
expect(result.hovers, hasLength(0)); |
}); |
} |
-} |
-main() { |
- runReflectiveTests(AnalysisGetHoverIntegrationTest); |
+ setUp() { |
+ return super.setUp().then((_) { |
+ pathname = sourcePath('test.dart'); |
+ }); |
+ } |
+ |
+ test_getHover() { |
+ writeFile(pathname, text); |
+ standardAnalysisSetup(); |
+ |
+ // Note: analysis.getHover doesn't wait for analysis to complete--it simply |
+ // returns the latest results that are available at the time that the |
+ // request is made. So wait for analysis to finish before testing anything. |
+ return analysisFinished.then((_) { |
+ List<Future> tests = []; |
+ tests.add( |
+ checkHover( |
+ 'topLevelVar;', |
+ 11, |
+ ['List', 'topLevelVar'], |
+ 'top level variable', |
+ ['List'])); |
+ tests.add( |
+ checkHover( |
+ 'func(', |
+ 4, |
+ ['func', 'int', 'param'], |
+ 'function', |
+ ['int', 'void'], |
+ docRegexp: 'Documentation for func')); |
+ tests.add( |
+ checkHover( |
+ 'int param', |
+ 3, |
+ ['int'], |
+ 'class', |
+ ['int'], |
+ isCore: true, |
+ docRegexp: '.*')); |
+ tests.add( |
+ checkHover( |
+ 'param)', |
+ 5, |
+ ['int', 'param'], |
+ 'parameter', |
+ ['int'], |
+ docRegexp: 'Documentation for func')); |
+ tests.add( |
+ checkHover( |
+ 'num localVar', |
+ 3, |
+ ['num'], |
+ 'class', |
+ ['num'], |
+ isCore: true, |
+ docRegexp: '.*')); |
+ tests.add( |
+ checkHover( |
+ 'localVar =', |
+ 8, |
+ ['num', 'localVar'], |
+ 'local variable', |
+ ['num'], |
+ propagatedType: 'int')); |
+ tests.add( |
+ checkHover( |
+ 'topLevelVar.length;', |
+ 11, |
+ ['List', 'topLevelVar'], |
+ 'top level variable', |
+ ['List'])); |
+ tests.add( |
+ checkHover( |
+ 'length;', |
+ 6, |
+ ['get', 'length', 'int'], |
+ 'getter', |
+ ['int'], |
+ isCore: true, |
+ docRegexp: '.*')); |
+ tests.add( |
+ checkHover( |
+ 'length =', |
+ 6, |
+ ['set', 'length', 'int'], |
+ 'setter', |
+ ['int'], |
+ isCore: true, |
+ docRegexp: '.*')); |
+ tests.add( |
+ checkHover( |
+ 'param;', |
+ 5, |
+ ['int', 'param'], |
+ 'parameter', |
+ ['int'], |
+ docRegexp: 'Documentation for func', |
+ parameterRegexps: ['.*'])); |
+ tests.add( |
+ checkHover( |
+ 'add(', |
+ 3, |
+ ['List', 'add'], |
+ 'method', |
+ null, |
+ isCore: true, |
+ docRegexp: '.*')); |
+ tests.add( |
+ checkHover( |
+ 'localVar)', |
+ 8, |
+ ['num', 'localVar'], |
+ 'local variable', |
+ ['num'], |
+ parameterRegexps: ['.*'], |
+ propagatedType: 'int')); |
+ tests.add( |
+ checkHover( |
+ 'func(35', |
+ 4, |
+ ['func', 'int', 'param'], |
+ 'function', |
+ null, |
+ docRegexp: 'Documentation for func')); |
+ tests.add( |
+ checkHover( |
+ '35', |
+ 2, |
+ null, |
+ null, |
+ ['int'], |
+ isLiteral: true, |
+ parameterRegexps: ['int', 'param'])); |
+ tests.add(checkNoHover('comment')); |
+ return Future.wait(tests); |
+ }); |
+ } |
} |