| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library test.analysis.get_navigation; | 5 library test.analysis.get_navigation; |
| 6 | 6 |
| 7 import 'package:analysis_server/src/domain_analysis.dart'; | 7 import 'package:analysis_server/src/domain_analysis.dart'; |
| 8 import 'package:analysis_server/src/protocol.dart'; | 8 import 'package:analysis_server/src/protocol.dart'; |
| 9 import 'package:analyzer/file_system/file_system.dart'; | 9 import 'package:analyzer/file_system/file_system.dart'; |
| 10 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 10 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 static const String requestId = 'test-getNavigtion'; | 23 static const String requestId = 'test-getNavigtion'; |
| 24 | 24 |
| 25 @override | 25 @override |
| 26 void setUp() { | 26 void setUp() { |
| 27 super.setUp(); | 27 super.setUp(); |
| 28 server.handlers = [new AnalysisDomainHandler(server),]; | 28 server.handlers = [new AnalysisDomainHandler(server),]; |
| 29 createProject(); | 29 createProject(); |
| 30 } | 30 } |
| 31 | 31 |
| 32 test_beforeAnalysisComplete() async { | 32 test_beforeAnalysisComplete() async { |
| 33 print('+++test_beforeAnalysisComplete'); |
| 33 addTestFile(''' | 34 addTestFile(''' |
| 34 main() { | 35 main() { |
| 35 var test = 0; | 36 var test = 0; |
| 36 print(test); | 37 print(test); |
| 37 } | 38 } |
| 38 '''); | 39 '''); |
| 39 await _getNavigation(testFile, testCode.indexOf('test);'), 0); | 40 await _getNavigation(testFile, testCode.indexOf('test);'), 0); |
| 40 assertHasRegion('test);'); | 41 assertHasRegion('test);'); |
| 41 assertHasTarget('test = 0'); | 42 assertHasTarget('test = 0'); |
| 42 } | 43 } |
| 43 | 44 |
| 44 test_fileDoesNotExist() { | 45 test_fileDoesNotExist() { |
| 46 print('+++test_fileDoesNotExist'); |
| 45 String file = '$projectPath/doesNotExist.dart'; | 47 String file = '$projectPath/doesNotExist.dart'; |
| 46 return _checkInvalid(file, -1, -1); | 48 return _checkInvalid(file, -1, -1); |
| 47 } | 49 } |
| 48 | 50 |
| 49 test_fileWithoutContext() { | 51 test_fileWithoutContext() { |
| 52 print('+++test_fileWithoutContext'); |
| 50 String file = '/outside.dart'; | 53 String file = '/outside.dart'; |
| 51 addFile( | 54 addFile( |
| 52 file, | 55 file, |
| 53 ''' | 56 ''' |
| 54 main() { | 57 main() { |
| 55 print(42); | 58 print(42); |
| 56 } | 59 } |
| 57 '''); | 60 '''); |
| 58 return _checkInvalid(file, -1, -1); | 61 return _checkInvalid(file, -1, -1); |
| 59 } | 62 } |
| 60 | 63 |
| 61 test_multipleRegions() async { | 64 test_multipleRegions() async { |
| 65 print('+++test_multipleRegions'); |
| 62 addTestFile(''' | 66 addTestFile(''' |
| 63 main() { | 67 main() { |
| 64 var aaa = 1; | 68 var aaa = 1; |
| 65 var bbb = 2; | 69 var bbb = 2; |
| 66 var ccc = 3; | 70 var ccc = 3; |
| 67 var ddd = 4; | 71 var ddd = 4; |
| 68 print(aaa + bbb + ccc + ddd); | 72 print(aaa + bbb + ccc + ddd); |
| 69 } | 73 } |
| 70 '''); | 74 '''); |
| 71 await waitForTasksFinished(); | 75 await waitForTasksFinished(); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 82 assertHasTarget('bbb = 2'); | 86 assertHasTarget('bbb = 2'); |
| 83 } | 87 } |
| 84 { | 88 { |
| 85 assertHasRegion('ccc +'); | 89 assertHasRegion('ccc +'); |
| 86 assertHasTarget('ccc = 3'); | 90 assertHasTarget('ccc = 3'); |
| 87 } | 91 } |
| 88 assertNoRegionAt('ddd)'); | 92 assertNoRegionAt('ddd)'); |
| 89 } | 93 } |
| 90 | 94 |
| 91 test_removeContextAfterRequest() async { | 95 test_removeContextAfterRequest() async { |
| 96 print('+++test_removeContextAfterRequest'); |
| 92 addTestFile(''' | 97 addTestFile(''' |
| 93 main() { | 98 main() { |
| 94 var test = 0; | 99 var test = 0; |
| 95 print(test); | 100 print(test); |
| 96 } | 101 } |
| 97 '''); | 102 '''); |
| 98 // handle the request synchronously | 103 // handle the request synchronously |
| 99 Request request = | 104 Request request = |
| 100 _createGetNavigationRequest(testFile, testCode.indexOf('test);'), 0); | 105 _createGetNavigationRequest(testFile, testCode.indexOf('test);'), 0); |
| 101 server.handleRequest(request); | 106 server.handleRequest(request); |
| 102 // remove context, causes sending an "invalid file" error | 107 // remove context, causes sending an "invalid file" error |
| 103 { | 108 { |
| 104 Folder projectFolder = resourceProvider.getResource(projectPath); | 109 Folder projectFolder = resourceProvider.getResource(projectPath); |
| 105 server.contextManager.callbacks.removeContext(projectFolder, <String>[]); | 110 server.contextManager.callbacks.removeContext(projectFolder, <String>[]); |
| 106 } | 111 } |
| 107 // wait for an error response | 112 // wait for an error response |
| 108 Response response = await serverChannel.waitForResponse(request); | 113 Response response = await serverChannel.waitForResponse(request); |
| 109 expect(response.error, isNotNull); | 114 expect(response.error, isNotNull); |
| 110 expect(response.error.code, RequestErrorCode.GET_NAVIGATION_INVALID_FILE); | 115 expect(response.error.code, RequestErrorCode.GET_NAVIGATION_INVALID_FILE); |
| 111 } | 116 } |
| 112 | 117 |
| 113 test_zeroLength_end() async { | 118 test_zeroLength_end() async { |
| 119 print('+++test_zeroLength_end'); |
| 114 addTestFile(''' | 120 addTestFile(''' |
| 115 main() { | 121 main() { |
| 116 var test = 0; | 122 var test = 0; |
| 117 print(test); | 123 print(test); |
| 118 } | 124 } |
| 119 '''); | 125 '''); |
| 120 await waitForTasksFinished(); | 126 await waitForTasksFinished(); |
| 121 await _getNavigation(testFile, testCode.indexOf(');'), 0); | 127 await _getNavigation(testFile, testCode.indexOf(');'), 0); |
| 122 assertHasRegion('test);'); | 128 assertHasRegion('test);'); |
| 123 assertHasTarget('test = 0'); | 129 assertHasTarget('test = 0'); |
| 124 } | 130 } |
| 125 | 131 |
| 126 test_zeroLength_start() async { | 132 test_zeroLength_start() async { |
| 133 print('+++test_zeroLength_start'); |
| 127 addTestFile(''' | 134 addTestFile(''' |
| 128 main() { | 135 main() { |
| 129 var test = 0; | 136 var test = 0; |
| 130 print(test); | 137 print(test); |
| 131 } | 138 } |
| 132 '''); | 139 '''); |
| 133 await waitForTasksFinished(); | 140 await waitForTasksFinished(); |
| 134 await _getNavigation(testFile, testCode.indexOf('test);'), 0); | 141 await _getNavigation(testFile, testCode.indexOf('test);'), 0); |
| 135 assertHasRegion('test);'); | 142 assertHasRegion('test);'); |
| 136 assertHasTarget('test = 0'); | 143 assertHasTarget('test = 0'); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 151 _getNavigation(String file, int offset, int length) async { | 158 _getNavigation(String file, int offset, int length) async { |
| 152 Request request = _createGetNavigationRequest(file, offset, length); | 159 Request request = _createGetNavigationRequest(file, offset, length); |
| 153 Response response = await serverChannel.sendRequest(request); | 160 Response response = await serverChannel.sendRequest(request); |
| 154 AnalysisGetNavigationResult result = | 161 AnalysisGetNavigationResult result = |
| 155 new AnalysisGetNavigationResult.fromResponse(response); | 162 new AnalysisGetNavigationResult.fromResponse(response); |
| 156 targetFiles = result.files; | 163 targetFiles = result.files; |
| 157 targets = result.targets; | 164 targets = result.targets; |
| 158 regions = result.regions; | 165 regions = result.regions; |
| 159 } | 166 } |
| 160 } | 167 } |
| OLD | NEW |