| 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 | 
|---|