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 |