Index: pkg/analysis_server/test/analysis/get_navigation_test.dart |
diff --git a/pkg/analysis_server/test/analysis/get_navigation_test.dart b/pkg/analysis_server/test/analysis/get_navigation_test.dart |
index fb35b3c946b3bf087e536d22b622d29e9c491ddc..752ee2777dac861b502f348b4f9f1352b6778a96 100644 |
--- a/pkg/analysis_server/test/analysis/get_navigation_test.dart |
+++ b/pkg/analysis_server/test/analysis/get_navigation_test.dart |
@@ -28,19 +28,6 @@ class GetNavigationTest extends AbstractNavigationTest { |
createProject(); |
} |
- test_afterAnalysisComplete() async { |
- addTestFile(''' |
-main() { |
- var test = 0; |
- print(test); |
-} |
-'''); |
- await waitForTasksFinished(); |
- await _getNavigation(testFile, testCode.indexOf('test);'), 0); |
- assertHasRegion('test);'); |
- assertHasTarget('test = 0'); |
- } |
- |
test_beforeAnalysisComplete() async { |
addTestFile(''' |
main() { |
@@ -68,6 +55,36 @@ main() { |
return _checkInvalid(file, -1, -1); |
} |
+ test_multipleRegions() async { |
+ addTestFile(''' |
+main() { |
+ var aaa = 1; |
+ var bbb = 2; |
+ var ccc = 3; |
+ var ddd = 4; |
+ print(aaa + bbb + ccc + ddd); |
+} |
+'''); |
+ await waitForTasksFinished(); |
+ // request navigation |
+ String navCode = ' + bbb + '; |
+ await _getNavigation(testFile, testCode.indexOf(navCode), navCode.length); |
+ // verify |
+ { |
+ assertHasRegion('aaa +'); |
+ assertHasTarget('aaa = 1'); |
+ } |
+ { |
+ assertHasRegion('bbb +'); |
+ assertHasTarget('bbb = 2'); |
+ } |
+ { |
+ assertHasRegion('ccc +'); |
+ assertHasTarget('ccc = 3'); |
+ } |
+ assertNoRegionAt('ddd)'); |
+ } |
+ |
test_removeContextAfterRequest() async { |
addTestFile(''' |
main() { |
@@ -90,6 +107,32 @@ main() { |
expect(response.error.code, RequestErrorCode.GET_NAVIGATION_INVALID_FILE); |
} |
+ test_zeroLength_end() async { |
+ addTestFile(''' |
+main() { |
+ var test = 0; |
+ print(test); |
+} |
+'''); |
+ await waitForTasksFinished(); |
+ await _getNavigation(testFile, testCode.indexOf(');'), 0); |
+ assertHasRegion('test);'); |
+ assertHasTarget('test = 0'); |
+ } |
+ |
+ test_zeroLength_start() async { |
+ addTestFile(''' |
+main() { |
+ var test = 0; |
+ print(test); |
+} |
+'''); |
+ await waitForTasksFinished(); |
+ await _getNavigation(testFile, testCode.indexOf('test);'), 0); |
+ assertHasRegion('test);'); |
+ assertHasTarget('test = 0'); |
+ } |
+ |
_checkInvalid(String file, int offset, int length) async { |
Request request = _createGetNavigationRequest(file, offset, length); |
Response response = await serverChannel.sendRequest(request); |