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 |