| 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'); | |
| 34 addTestFile(''' | 33 addTestFile(''' |
| 35 main() { | 34 main() { |
| 36 var test = 0; | 35 var test = 0; |
| 37 print(test); | 36 print(test); |
| 38 } | 37 } |
| 39 '''); | 38 '''); |
| 40 await _getNavigation(testFile, testCode.indexOf('test);'), 0); | 39 await _getNavigation(testFile, testCode.indexOf('test);'), 0); |
| 41 assertHasRegion('test);'); | 40 assertHasRegion('test);'); |
| 42 assertHasTarget('test = 0'); | 41 assertHasTarget('test = 0'); |
| 43 } | 42 } |
| 44 | 43 |
| 45 test_fileDoesNotExist() { | 44 test_fileDoesNotExist() { |
| 46 print('+++test_fileDoesNotExist'); | |
| 47 String file = '$projectPath/doesNotExist.dart'; | 45 String file = '$projectPath/doesNotExist.dart'; |
| 48 return _checkInvalid(file, -1, -1); | 46 return _checkInvalid(file, -1, -1); |
| 49 } | 47 } |
| 50 | 48 |
| 51 test_fileWithoutContext() { | 49 test_fileWithoutContext() { |
| 52 print('+++test_fileWithoutContext'); | |
| 53 String file = '/outside.dart'; | 50 String file = '/outside.dart'; |
| 54 addFile( | 51 addFile( |
| 55 file, | 52 file, |
| 56 ''' | 53 ''' |
| 57 main() { | 54 main() { |
| 58 print(42); | 55 print(42); |
| 59 } | 56 } |
| 60 '''); | 57 '''); |
| 61 return _checkInvalid(file, -1, -1); | 58 return _checkInvalid(file, -1, -1); |
| 62 } | 59 } |
| 63 | 60 |
| 64 test_multipleRegions() async { | 61 test_multipleRegions() async { |
| 65 print('+++test_multipleRegions'); | |
| 66 addTestFile(''' | 62 addTestFile(''' |
| 67 main() { | 63 main() { |
| 68 var aaa = 1; | 64 var aaa = 1; |
| 69 var bbb = 2; | 65 var bbb = 2; |
| 70 var ccc = 3; | 66 var ccc = 3; |
| 71 var ddd = 4; | 67 var ddd = 4; |
| 72 print(aaa + bbb + ccc + ddd); | 68 print(aaa + bbb + ccc + ddd); |
| 73 } | 69 } |
| 74 '''); | 70 '''); |
| 75 await waitForTasksFinished(); | 71 await waitForTasksFinished(); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 86 assertHasTarget('bbb = 2'); | 82 assertHasTarget('bbb = 2'); |
| 87 } | 83 } |
| 88 { | 84 { |
| 89 assertHasRegion('ccc +'); | 85 assertHasRegion('ccc +'); |
| 90 assertHasTarget('ccc = 3'); | 86 assertHasTarget('ccc = 3'); |
| 91 } | 87 } |
| 92 assertNoRegionAt('ddd)'); | 88 assertNoRegionAt('ddd)'); |
| 93 } | 89 } |
| 94 | 90 |
| 95 test_removeContextAfterRequest() async { | 91 test_removeContextAfterRequest() async { |
| 96 print('+++test_removeContextAfterRequest'); | |
| 97 addTestFile(''' | 92 addTestFile(''' |
| 98 main() { | 93 main() { |
| 99 var test = 0; | 94 var test = 0; |
| 100 print(test); | 95 print(test); |
| 101 } | 96 } |
| 102 '''); | 97 '''); |
| 103 // handle the request synchronously | 98 // handle the request synchronously |
| 104 Request request = | 99 Request request = |
| 105 _createGetNavigationRequest(testFile, testCode.indexOf('test);'), 0); | 100 _createGetNavigationRequest(testFile, testCode.indexOf('test);'), 0); |
| 106 server.handleRequest(request); | 101 server.handleRequest(request); |
| 107 // remove context, causes sending an "invalid file" error | 102 // remove context, causes sending an "invalid file" error |
| 108 { | 103 { |
| 109 Folder projectFolder = resourceProvider.getResource(projectPath); | 104 Folder projectFolder = resourceProvider.getResource(projectPath); |
| 110 server.contextManager.callbacks.removeContext(projectFolder, <String>[]); | 105 server.contextManager.callbacks.removeContext(projectFolder, <String>[]); |
| 111 } | 106 } |
| 112 // wait for an error response | 107 // wait for an error response |
| 113 Response response = await serverChannel.waitForResponse(request); | 108 Response response = await serverChannel.waitForResponse(request); |
| 114 expect(response.error, isNotNull); | 109 expect(response.error, isNotNull); |
| 115 expect(response.error.code, RequestErrorCode.GET_NAVIGATION_INVALID_FILE); | 110 expect(response.error.code, RequestErrorCode.GET_NAVIGATION_INVALID_FILE); |
| 116 } | 111 } |
| 117 | 112 |
| 118 test_zeroLength_end() async { | 113 test_zeroLength_end() async { |
| 119 print('+++test_zeroLength_end'); | |
| 120 addTestFile(''' | 114 addTestFile(''' |
| 121 main() { | 115 main() { |
| 122 var test = 0; | 116 var test = 0; |
| 123 print(test); | 117 print(test); |
| 124 } | 118 } |
| 125 '''); | 119 '''); |
| 126 await waitForTasksFinished(); | 120 await waitForTasksFinished(); |
| 127 await _getNavigation(testFile, testCode.indexOf(');'), 0); | 121 await _getNavigation(testFile, testCode.indexOf(');'), 0); |
| 128 assertHasRegion('test);'); | 122 assertHasRegion('test);'); |
| 129 assertHasTarget('test = 0'); | 123 assertHasTarget('test = 0'); |
| 130 } | 124 } |
| 131 | 125 |
| 132 test_zeroLength_start() async { | 126 test_zeroLength_start() async { |
| 133 print('+++test_zeroLength_start'); | |
| 134 addTestFile(''' | 127 addTestFile(''' |
| 135 main() { | 128 main() { |
| 136 var test = 0; | 129 var test = 0; |
| 137 print(test); | 130 print(test); |
| 138 } | 131 } |
| 139 '''); | 132 '''); |
| 140 await waitForTasksFinished(); | 133 await waitForTasksFinished(); |
| 141 await _getNavigation(testFile, testCode.indexOf('test);'), 0); | 134 await _getNavigation(testFile, testCode.indexOf('test);'), 0); |
| 142 assertHasRegion('test);'); | 135 assertHasRegion('test);'); |
| 143 assertHasTarget('test = 0'); | 136 assertHasTarget('test = 0'); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 158 _getNavigation(String file, int offset, int length) async { | 151 _getNavigation(String file, int offset, int length) async { |
| 159 Request request = _createGetNavigationRequest(file, offset, length); | 152 Request request = _createGetNavigationRequest(file, offset, length); |
| 160 Response response = await serverChannel.sendRequest(request); | 153 Response response = await serverChannel.sendRequest(request); |
| 161 AnalysisGetNavigationResult result = | 154 AnalysisGetNavigationResult result = |
| 162 new AnalysisGetNavigationResult.fromResponse(response); | 155 new AnalysisGetNavigationResult.fromResponse(response); |
| 163 targetFiles = result.files; | 156 targetFiles = result.files; |
| 164 targets = result.targets; | 157 targets = result.targets; |
| 165 regions = result.regions; | 158 regions = result.regions; |
| 166 } | 159 } |
| 167 } | 160 } |
| OLD | NEW |