Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(376)

Side by Side Diff: pkg/analysis_server/test/services/correction/assist_test.dart

Issue 1073383002: Create a public API for contributing assists and make assists pluggable (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address comments Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « pkg/analysis_server/lib/src/services/correction/fix_internal.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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.services.correction.assist; 5 library test.services.correction.assist;
6 6
7 import 'package:analysis_server/edit/assist/assist_core.dart';
8 import 'package:analysis_server/src/plugin/server_plugin.dart';
7 import 'package:analysis_server/src/protocol.dart'; 9 import 'package:analysis_server/src/protocol.dart';
8 import 'package:analysis_server/src/services/correction/assist.dart'; 10 import 'package:analysis_server/src/services/correction/assist.dart';
9 import 'package:analyzer/src/generated/source.dart'; 11 import 'package:analyzer/src/generated/source.dart';
12 import 'package:analyzer/src/plugin/plugin_impl.dart';
10 import 'package:unittest/unittest.dart'; 13 import 'package:unittest/unittest.dart';
11 14
12 import '../../abstract_single_unit.dart'; 15 import '../../abstract_single_unit.dart';
13 import '../../reflective_tests.dart'; 16 import '../../reflective_tests.dart';
14 17
15 main() { 18 main() {
16 groupSep = ' | '; 19 groupSep = ' | ';
17 runReflectiveTests(AssistProcessorTest); 20 runReflectiveTests(AssistProcessorTest);
18 } 21 }
19 22
20 @reflectiveTest 23 @reflectiveTest
21 class AssistProcessorTest extends AbstractSingleUnitTest { 24 class AssistProcessorTest extends AbstractSingleUnitTest {
22 int offset; 25 int offset;
23 int length; 26 int length;
24 27
28 ServerPlugin plugin;
25 Assist assist; 29 Assist assist;
26 SourceChange change; 30 SourceChange change;
27 String resultCode; 31 String resultCode;
28 LinkedEditGroup linkedPositionGroup; 32 LinkedEditGroup linkedPositionGroup;
29 33
30 /** 34 /**
31 * Asserts that there is an [Assist] of the given [kind] at [offset] which 35 * Asserts that there is an [Assist] of the given [kind] at [offset] which
32 * produces the [expected] code when applied to [testCode]. 36 * produces the [expected] code when applied to [testCode].
33 */ 37 */
34 void assertHasAssist(AssistKind kind, String expected) { 38 void assertHasAssist(AssistKind kind, String expected) {
(...skipping 13 matching lines...) Expand all
48 void assertHasAssistAt( 52 void assertHasAssistAt(
49 String offsetSearch, AssistKind kind, String expected) { 53 String offsetSearch, AssistKind kind, String expected) {
50 offset = findOffset(offsetSearch); 54 offset = findOffset(offsetSearch);
51 assertHasAssist(kind, expected); 55 assertHasAssist(kind, expected);
52 } 56 }
53 57
54 /** 58 /**
55 * Asserts that there is no [Assist] of the given [kind] at [offset]. 59 * Asserts that there is no [Assist] of the given [kind] at [offset].
56 */ 60 */
57 void assertNoAssist(AssistKind kind) { 61 void assertNoAssist(AssistKind kind) {
58 List<Assist> assists = computeAssists(testUnit, offset, length); 62 List<Assist> assists = computeAssists(
63 plugin, context, testUnit.element.source, offset, length);
59 for (Assist assist in assists) { 64 for (Assist assist in assists) {
60 if (assist.kind == kind) { 65 if (assist.kind == kind) {
61 throw fail('Unexpected assist $kind in\n${assists.join('\n')}'); 66 throw fail('Unexpected assist $kind in\n${assists.join('\n')}');
62 } 67 }
63 } 68 }
64 } 69 }
65 70
66 /** 71 /**
67 * Calls [assertNoAssist] at the offset of [offsetSearch] in [testCode]. 72 * Calls [assertNoAssist] at the offset of [offsetSearch] in [testCode].
68 */ 73 */
(...skipping 19 matching lines...) Expand all
88 LinkedEditSuggestionKind kind, List<String> values) { 93 LinkedEditSuggestionKind kind, List<String> values) {
89 return values.map((value) { 94 return values.map((value) {
90 return new LinkedEditSuggestion(value, kind); 95 return new LinkedEditSuggestion(value, kind);
91 }).toList(); 96 }).toList();
92 } 97 }
93 98
94 void setUp() { 99 void setUp() {
95 super.setUp(); 100 super.setUp();
96 offset = 0; 101 offset = 0;
97 length = 0; 102 length = 0;
103 ExtensionManager manager = new ExtensionManager();
104 plugin = new ServerPlugin();
105 manager.processPlugins([plugin]);
98 } 106 }
99 107
100 void test_addTypeAnnotation_BAD_privateType_closureParameter() { 108 void test_addTypeAnnotation_BAD_privateType_closureParameter() {
101 addSource('/my_lib.dart', ''' 109 addSource('/my_lib.dart', '''
102 library my_lib; 110 library my_lib;
103 class A {} 111 class A {}
104 class _B extends A {} 112 class _B extends A {}
105 foo(f(_B p)) {} 113 foo(f(_B p)) {}
106 '''); 114 ''');
107 resolveTestUnit(''' 115 resolveTestUnit('''
108 import 'my_lib.dart'; 116 import 'my_lib.dart';
109 main() { 117 main() {
110 foo((test) {}); 118 foo((test) {});
111 } 119 }
112 '''); 120 ''');
113 assertNoAssistAt('test)', AssistKind.ADD_TYPE_ANNOTATION); 121 assertNoAssistAt('test)', DartAssistKind.ADD_TYPE_ANNOTATION);
114 } 122 }
115 123
116 void test_addTypeAnnotation_BAD_privateType_declaredIdentifier() { 124 void test_addTypeAnnotation_BAD_privateType_declaredIdentifier() {
117 addSource('/my_lib.dart', ''' 125 addSource('/my_lib.dart', '''
118 library my_lib; 126 library my_lib;
119 class A {} 127 class A {}
120 class _B extends A {} 128 class _B extends A {}
121 List<_B> getValues() => []; 129 List<_B> getValues() => [];
122 '''); 130 ''');
123 resolveTestUnit(''' 131 resolveTestUnit('''
124 import 'my_lib.dart'; 132 import 'my_lib.dart';
125 class A<T> { 133 class A<T> {
126 main() { 134 main() {
127 for (var item in getValues()) { 135 for (var item in getValues()) {
128 } 136 }
129 } 137 }
130 } 138 }
131 '''); 139 ''');
132 assertNoAssistAt('var item', AssistKind.ADD_TYPE_ANNOTATION); 140 assertNoAssistAt('var item', DartAssistKind.ADD_TYPE_ANNOTATION);
133 } 141 }
134 142
135 void test_addTypeAnnotation_BAD_privateType_list() { 143 void test_addTypeAnnotation_BAD_privateType_list() {
136 addSource('/my_lib.dart', ''' 144 addSource('/my_lib.dart', '''
137 library my_lib; 145 library my_lib;
138 class A {} 146 class A {}
139 class _B extends A {} 147 class _B extends A {}
140 List<_B> getValues() => []; 148 List<_B> getValues() => [];
141 '''); 149 ''');
142 resolveTestUnit(''' 150 resolveTestUnit('''
143 import 'my_lib.dart'; 151 import 'my_lib.dart';
144 main() { 152 main() {
145 var v = getValues(); 153 var v = getValues();
146 } 154 }
147 '''); 155 ''');
148 assertNoAssistAt('var ', AssistKind.ADD_TYPE_ANNOTATION); 156 assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION);
149 } 157 }
150 158
151 void test_addTypeAnnotation_BAD_privateType_variable() { 159 void test_addTypeAnnotation_BAD_privateType_variable() {
152 addSource('/my_lib.dart', ''' 160 addSource('/my_lib.dart', '''
153 library my_lib; 161 library my_lib;
154 class A {} 162 class A {}
155 class _B extends A {} 163 class _B extends A {}
156 _B getValue() => new _B(); 164 _B getValue() => new _B();
157 '''); 165 ''');
158 resolveTestUnit(''' 166 resolveTestUnit('''
159 import 'my_lib.dart'; 167 import 'my_lib.dart';
160 main() { 168 main() {
161 var v = getValue(); 169 var v = getValue();
162 } 170 }
163 '''); 171 ''');
164 assertNoAssistAt('var ', AssistKind.ADD_TYPE_ANNOTATION); 172 assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION);
165 } 173 }
166 174
167 void test_addTypeAnnotation_classField_OK_final() { 175 void test_addTypeAnnotation_classField_OK_final() {
168 resolveTestUnit(''' 176 resolveTestUnit('''
169 class A { 177 class A {
170 final f = 0; 178 final f = 0;
171 } 179 }
172 '''); 180 ''');
173 assertHasAssistAt('final ', AssistKind.ADD_TYPE_ANNOTATION, ''' 181 assertHasAssistAt('final ', DartAssistKind.ADD_TYPE_ANNOTATION, '''
174 class A { 182 class A {
175 final int f = 0; 183 final int f = 0;
176 } 184 }
177 '''); 185 ''');
178 } 186 }
179 187
180 void test_addTypeAnnotation_classField_OK_int() { 188 void test_addTypeAnnotation_classField_OK_int() {
181 resolveTestUnit(''' 189 resolveTestUnit('''
182 class A { 190 class A {
183 var f = 0; 191 var f = 0;
184 } 192 }
185 '''); 193 ''');
186 assertHasAssistAt('var ', AssistKind.ADD_TYPE_ANNOTATION, ''' 194 assertHasAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION, '''
187 class A { 195 class A {
188 int f = 0; 196 int f = 0;
189 } 197 }
190 '''); 198 ''');
191 } 199 }
192 200
193 void test_addTypeAnnotation_declaredIdentifier_BAD_hasTypeAnnotation() { 201 void test_addTypeAnnotation_declaredIdentifier_BAD_hasTypeAnnotation() {
194 resolveTestUnit(''' 202 resolveTestUnit('''
195 main(List<String> items) { 203 main(List<String> items) {
196 for (String item in items) { 204 for (String item in items) {
197 } 205 }
198 } 206 }
199 '''); 207 ''');
200 assertNoAssistAt('item in', AssistKind.ADD_TYPE_ANNOTATION); 208 assertNoAssistAt('item in', DartAssistKind.ADD_TYPE_ANNOTATION);
201 } 209 }
202 210
203 void test_addTypeAnnotation_declaredIdentifier_BAD_inForEachBody() { 211 void test_addTypeAnnotation_declaredIdentifier_BAD_inForEachBody() {
204 resolveTestUnit(''' 212 resolveTestUnit('''
205 main(List<String> items) { 213 main(List<String> items) {
206 for (var item in items) { 214 for (var item in items) {
207 42; 215 42;
208 } 216 }
209 } 217 }
210 '''); 218 ''');
211 assertNoAssistAt('42;', AssistKind.ADD_TYPE_ANNOTATION); 219 assertNoAssistAt('42;', DartAssistKind.ADD_TYPE_ANNOTATION);
212 } 220 }
213 221
214 void test_addTypeAnnotation_declaredIdentifier_BAD_unknownType() { 222 void test_addTypeAnnotation_declaredIdentifier_BAD_unknownType() {
215 verifyNoTestUnitErrors = false; 223 verifyNoTestUnitErrors = false;
216 resolveTestUnit(''' 224 resolveTestUnit('''
217 main() { 225 main() {
218 for (var item in unknownList) { 226 for (var item in unknownList) {
219 } 227 }
220 } 228 }
221 '''); 229 ''');
222 assertNoAssistAt('item in', AssistKind.ADD_TYPE_ANNOTATION); 230 assertNoAssistAt('item in', DartAssistKind.ADD_TYPE_ANNOTATION);
223 } 231 }
224 232
225 void test_addTypeAnnotation_declaredIdentifier_generic_OK() { 233 void test_addTypeAnnotation_declaredIdentifier_generic_OK() {
226 resolveTestUnit(''' 234 resolveTestUnit('''
227 class A<T> { 235 class A<T> {
228 main(List<List<T>> items) { 236 main(List<List<T>> items) {
229 for (var item in items) { 237 for (var item in items) {
230 } 238 }
231 } 239 }
232 } 240 }
233 '''); 241 ''');
234 assertHasAssistAt('item in', AssistKind.ADD_TYPE_ANNOTATION, ''' 242 assertHasAssistAt('item in', DartAssistKind.ADD_TYPE_ANNOTATION, '''
235 class A<T> { 243 class A<T> {
236 main(List<List<T>> items) { 244 main(List<List<T>> items) {
237 for (List<T> item in items) { 245 for (List<T> item in items) {
238 } 246 }
239 } 247 }
240 } 248 }
241 '''); 249 ''');
242 } 250 }
243 251
244 void test_addTypeAnnotation_declaredIdentifier_OK() { 252 void test_addTypeAnnotation_declaredIdentifier_OK() {
245 resolveTestUnit(''' 253 resolveTestUnit('''
246 main(List<String> items) { 254 main(List<String> items) {
247 for (var item in items) { 255 for (var item in items) {
248 } 256 }
249 } 257 }
250 '''); 258 ''');
251 // on identifier 259 // on identifier
252 assertHasAssistAt('item in', AssistKind.ADD_TYPE_ANNOTATION, ''' 260 assertHasAssistAt('item in', DartAssistKind.ADD_TYPE_ANNOTATION, '''
253 main(List<String> items) { 261 main(List<String> items) {
254 for (String item in items) { 262 for (String item in items) {
255 } 263 }
256 } 264 }
257 '''); 265 ''');
258 // on "for" 266 // on "for"
259 assertHasAssistAt('for (', AssistKind.ADD_TYPE_ANNOTATION, ''' 267 assertHasAssistAt('for (', DartAssistKind.ADD_TYPE_ANNOTATION, '''
260 main(List<String> items) { 268 main(List<String> items) {
261 for (String item in items) { 269 for (String item in items) {
262 } 270 }
263 } 271 }
264 '''); 272 ''');
265 } 273 }
266 274
267 void test_addTypeAnnotation_declaredIdentifier_OK_addImport_dartUri() { 275 void test_addTypeAnnotation_declaredIdentifier_OK_addImport_dartUri() {
268 addSource('/my_lib.dart', r''' 276 addSource('/my_lib.dart', r'''
269 import 'dart:async'; 277 import 'dart:async';
270 List<Future<int>> getFutures() => null; 278 List<Future<int>> getFutures() => null;
271 '''); 279 ''');
272 resolveTestUnit(''' 280 resolveTestUnit('''
273 import 'my_lib.dart'; 281 import 'my_lib.dart';
274 main() { 282 main() {
275 for (var future in getFutures()) { 283 for (var future in getFutures()) {
276 } 284 }
277 } 285 }
278 '''); 286 ''');
279 assertHasAssistAt('future in', AssistKind.ADD_TYPE_ANNOTATION, ''' 287 assertHasAssistAt('future in', DartAssistKind.ADD_TYPE_ANNOTATION, '''
280 import 'my_lib.dart'; 288 import 'my_lib.dart';
281 import 'dart:async'; 289 import 'dart:async';
282 main() { 290 main() {
283 for (Future<int> future in getFutures()) { 291 for (Future<int> future in getFutures()) {
284 } 292 }
285 } 293 }
286 '''); 294 ''');
287 } 295 }
288 296
289 void test_addTypeAnnotation_declaredIdentifier_OK_final() { 297 void test_addTypeAnnotation_declaredIdentifier_OK_final() {
290 resolveTestUnit(''' 298 resolveTestUnit('''
291 main(List<String> items) { 299 main(List<String> items) {
292 for (final item in items) { 300 for (final item in items) {
293 } 301 }
294 } 302 }
295 '''); 303 ''');
296 assertHasAssistAt('item in', AssistKind.ADD_TYPE_ANNOTATION, ''' 304 assertHasAssistAt('item in', DartAssistKind.ADD_TYPE_ANNOTATION, '''
297 main(List<String> items) { 305 main(List<String> items) {
298 for (final String item in items) { 306 for (final String item in items) {
299 } 307 }
300 } 308 }
301 '''); 309 ''');
302 } 310 }
303 311
304 void test_addTypeAnnotation_local_generic_OK_literal() { 312 void test_addTypeAnnotation_local_generic_OK_literal() {
305 resolveTestUnit(''' 313 resolveTestUnit('''
306 class A { 314 class A {
307 main(List<int> items) { 315 main(List<int> items) {
308 var v = items; 316 var v = items;
309 } 317 }
310 } 318 }
311 '''); 319 ''');
312 assertHasAssistAt('v =', AssistKind.ADD_TYPE_ANNOTATION, ''' 320 assertHasAssistAt('v =', DartAssistKind.ADD_TYPE_ANNOTATION, '''
313 class A { 321 class A {
314 main(List<int> items) { 322 main(List<int> items) {
315 List<int> v = items; 323 List<int> v = items;
316 } 324 }
317 } 325 }
318 '''); 326 ''');
319 } 327 }
320 328
321 void test_addTypeAnnotation_local_generic_OK_local() { 329 void test_addTypeAnnotation_local_generic_OK_local() {
322 resolveTestUnit(''' 330 resolveTestUnit('''
323 class A<T> { 331 class A<T> {
324 main(List<T> items) { 332 main(List<T> items) {
325 var v = items; 333 var v = items;
326 } 334 }
327 } 335 }
328 '''); 336 ''');
329 assertHasAssistAt('v =', AssistKind.ADD_TYPE_ANNOTATION, ''' 337 assertHasAssistAt('v =', DartAssistKind.ADD_TYPE_ANNOTATION, '''
330 class A<T> { 338 class A<T> {
331 main(List<T> items) { 339 main(List<T> items) {
332 List<T> v = items; 340 List<T> v = items;
333 } 341 }
334 } 342 }
335 '''); 343 ''');
336 } 344 }
337 345
338 void test_addTypeAnnotation_local_OK_addImport_dartUri() { 346 void test_addTypeAnnotation_local_OK_addImport_dartUri() {
339 addSource('/my_lib.dart', r''' 347 addSource('/my_lib.dart', r'''
340 import 'dart:async'; 348 import 'dart:async';
341 Future<int> getFutureInt() => null; 349 Future<int> getFutureInt() => null;
342 '''); 350 ''');
343 resolveTestUnit(''' 351 resolveTestUnit('''
344 import 'my_lib.dart'; 352 import 'my_lib.dart';
345 main() { 353 main() {
346 var v = getFutureInt(); 354 var v = getFutureInt();
347 } 355 }
348 '''); 356 ''');
349 assertHasAssistAt('v =', AssistKind.ADD_TYPE_ANNOTATION, ''' 357 assertHasAssistAt('v =', DartAssistKind.ADD_TYPE_ANNOTATION, '''
350 import 'my_lib.dart'; 358 import 'my_lib.dart';
351 import 'dart:async'; 359 import 'dart:async';
352 main() { 360 main() {
353 Future<int> v = getFutureInt(); 361 Future<int> v = getFutureInt();
354 } 362 }
355 '''); 363 ''');
356 } 364 }
357 365
358 void test_addTypeAnnotation_local_OK_addImport_notLibraryUnit() { 366 void test_addTypeAnnotation_local_OK_addImport_notLibraryUnit() {
359 // prepare library 367 // prepare library
(...skipping 17 matching lines...) Expand all
377 Source appSource = addSource('/app.dart', appCode); 385 Source appSource = addSource('/app.dart', appCode);
378 testSource = addSource('/test.dart', testCode); 386 testSource = addSource('/test.dart', testCode);
379 // resolve 387 // resolve
380 context.resolveCompilationUnit2(appSource, appSource); 388 context.resolveCompilationUnit2(appSource, appSource);
381 testUnit = context.resolveCompilationUnit2(testSource, appSource); 389 testUnit = context.resolveCompilationUnit2(testSource, appSource);
382 assertNoErrorsInSource(testSource); 390 assertNoErrorsInSource(testSource);
383 testUnitElement = testUnit.element; 391 testUnitElement = testUnit.element;
384 testLibraryElement = testUnitElement.library; 392 testLibraryElement = testUnitElement.library;
385 // prepare the assist 393 // prepare the assist
386 offset = findOffset('v = '); 394 offset = findOffset('v = ');
387 assist = _assertHasAssist(AssistKind.ADD_TYPE_ANNOTATION); 395 assist = _assertHasAssist(DartAssistKind.ADD_TYPE_ANNOTATION);
388 change = assist.change; 396 change = assist.change;
389 // verify 397 // verify
390 { 398 {
391 var testFileEdit = change.getFileEdit('/app.dart'); 399 var testFileEdit = change.getFileEdit('/app.dart');
392 var resultCode = SourceEdit.applySequence(appCode, testFileEdit.edits); 400 var resultCode = SourceEdit.applySequence(appCode, testFileEdit.edits);
393 expect(resultCode, ''' 401 expect(resultCode, '''
394 library my_app; 402 library my_app;
395 import 'my_lib.dart'; 403 import 'my_lib.dart';
396 import 'dart:async'; 404 import 'dart:async';
397 part 'test.dart'; 405 part 'test.dart';
(...skipping 18 matching lines...) Expand all
416 addSource('/ccc/lib_b.dart', r''' 424 addSource('/ccc/lib_b.dart', r'''
417 import '../aa/bbb/lib_a.dart'; 425 import '../aa/bbb/lib_a.dart';
418 MyClass newMyClass() => null; 426 MyClass newMyClass() => null;
419 '''); 427 ''');
420 resolveTestUnit(''' 428 resolveTestUnit('''
421 import 'ccc/lib_b.dart'; 429 import 'ccc/lib_b.dart';
422 main() { 430 main() {
423 var v = newMyClass(); 431 var v = newMyClass();
424 } 432 }
425 '''); 433 ''');
426 assertHasAssistAt('v =', AssistKind.ADD_TYPE_ANNOTATION, ''' 434 assertHasAssistAt('v =', DartAssistKind.ADD_TYPE_ANNOTATION, '''
427 import 'ccc/lib_b.dart'; 435 import 'ccc/lib_b.dart';
428 import 'aa/bbb/lib_a.dart'; 436 import 'aa/bbb/lib_a.dart';
429 main() { 437 main() {
430 MyClass v = newMyClass(); 438 MyClass v = newMyClass();
431 } 439 }
432 '''); 440 ''');
433 } 441 }
434 442
435 void test_addTypeAnnotation_local_OK_Function() { 443 void test_addTypeAnnotation_local_OK_Function() {
436 resolveTestUnit(''' 444 resolveTestUnit('''
437 main() { 445 main() {
438 var v = () => 1; 446 var v = () => 1;
439 } 447 }
440 '''); 448 ''');
441 assertHasAssistAt('v =', AssistKind.ADD_TYPE_ANNOTATION, ''' 449 assertHasAssistAt('v =', DartAssistKind.ADD_TYPE_ANNOTATION, '''
442 main() { 450 main() {
443 Function v = () => 1; 451 Function v = () => 1;
444 } 452 }
445 '''); 453 ''');
446 } 454 }
447 455
448 void test_addTypeAnnotation_local_OK_int() { 456 void test_addTypeAnnotation_local_OK_int() {
449 resolveTestUnit(''' 457 resolveTestUnit('''
450 main() { 458 main() {
451 var v = 0; 459 var v = 0;
452 } 460 }
453 '''); 461 ''');
454 assertHasAssistAt('v =', AssistKind.ADD_TYPE_ANNOTATION, ''' 462 assertHasAssistAt('v =', DartAssistKind.ADD_TYPE_ANNOTATION, '''
455 main() { 463 main() {
456 int v = 0; 464 int v = 0;
457 } 465 }
458 '''); 466 ''');
459 } 467 }
460 468
461 void test_addTypeAnnotation_local_OK_List() { 469 void test_addTypeAnnotation_local_OK_List() {
462 resolveTestUnit(''' 470 resolveTestUnit('''
463 main() { 471 main() {
464 var v = <String>[]; 472 var v = <String>[];
465 } 473 }
466 '''); 474 ''');
467 assertHasAssistAt('v =', AssistKind.ADD_TYPE_ANNOTATION, ''' 475 assertHasAssistAt('v =', DartAssistKind.ADD_TYPE_ANNOTATION, '''
468 main() { 476 main() {
469 List<String> v = <String>[]; 477 List<String> v = <String>[];
470 } 478 }
471 '''); 479 ''');
472 } 480 }
473 481
474 void test_addTypeAnnotation_local_OK_localType() { 482 void test_addTypeAnnotation_local_OK_localType() {
475 resolveTestUnit(''' 483 resolveTestUnit('''
476 class C {} 484 class C {}
477 C f() => null; 485 C f() => null;
478 main() { 486 main() {
479 var x = f(); 487 var x = f();
480 } 488 }
481 '''); 489 ''');
482 assertHasAssistAt('x =', AssistKind.ADD_TYPE_ANNOTATION, ''' 490 assertHasAssistAt('x =', DartAssistKind.ADD_TYPE_ANNOTATION, '''
483 class C {} 491 class C {}
484 C f() => null; 492 C f() => null;
485 main() { 493 main() {
486 C x = f(); 494 C x = f();
487 } 495 }
488 '''); 496 ''');
489 } 497 }
490 498
491 void test_addTypeAnnotation_local_OK_onInitializer() { 499 void test_addTypeAnnotation_local_OK_onInitializer() {
492 resolveTestUnit(''' 500 resolveTestUnit('''
493 main() { 501 main() {
494 var v = 123; 502 var v = 123;
495 } 503 }
496 '''); 504 ''');
497 assertHasAssistAt('23', AssistKind.ADD_TYPE_ANNOTATION, ''' 505 assertHasAssistAt('23', DartAssistKind.ADD_TYPE_ANNOTATION, '''
498 main() { 506 main() {
499 int v = 123; 507 int v = 123;
500 } 508 }
501 '''); 509 ''');
502 } 510 }
503 511
504 void test_addTypeAnnotation_local_OK_onName() { 512 void test_addTypeAnnotation_local_OK_onName() {
505 resolveTestUnit(''' 513 resolveTestUnit('''
506 main() { 514 main() {
507 var abc = 0; 515 var abc = 0;
508 } 516 }
509 '''); 517 ''');
510 assertHasAssistAt('bc', AssistKind.ADD_TYPE_ANNOTATION, ''' 518 assertHasAssistAt('bc', DartAssistKind.ADD_TYPE_ANNOTATION, '''
511 main() { 519 main() {
512 int abc = 0; 520 int abc = 0;
513 } 521 }
514 '''); 522 ''');
515 } 523 }
516 524
517 void test_addTypeAnnotation_local_OK_onVar() { 525 void test_addTypeAnnotation_local_OK_onVar() {
518 resolveTestUnit(''' 526 resolveTestUnit('''
519 main() { 527 main() {
520 var v = 0; 528 var v = 0;
521 } 529 }
522 '''); 530 ''');
523 assertHasAssistAt('var ', AssistKind.ADD_TYPE_ANNOTATION, ''' 531 assertHasAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION, '''
524 main() { 532 main() {
525 int v = 0; 533 int v = 0;
526 } 534 }
527 '''); 535 ''');
528 } 536 }
529 537
530 void test_addTypeAnnotation_local_OK_onVariableDeclarationStatement() { 538 void test_addTypeAnnotation_local_OK_onVariableDeclarationStatement() {
531 resolveTestUnit(''' 539 resolveTestUnit('''
532 main() { 540 main() {
533 var v = 123; // marker 541 var v = 123; // marker
534 } 542 }
535 '''); 543 ''');
536 assertHasAssistAt(' // marker', AssistKind.ADD_TYPE_ANNOTATION, ''' 544 assertHasAssistAt(' // marker', DartAssistKind.ADD_TYPE_ANNOTATION, '''
537 main() { 545 main() {
538 int v = 123; // marker 546 int v = 123; // marker
539 } 547 }
540 '''); 548 ''');
541 } 549 }
542 550
543 void test_addTypeAnnotation_local_wrong_hasTypeAnnotation() { 551 void test_addTypeAnnotation_local_wrong_hasTypeAnnotation() {
544 resolveTestUnit(''' 552 resolveTestUnit('''
545 main() { 553 main() {
546 int v = 42; 554 int v = 42;
547 } 555 }
548 '''); 556 ''');
549 assertNoAssistAt(' = 42', AssistKind.ADD_TYPE_ANNOTATION); 557 assertNoAssistAt(' = 42', DartAssistKind.ADD_TYPE_ANNOTATION);
550 } 558 }
551 559
552 void test_addTypeAnnotation_local_wrong_multiple() { 560 void test_addTypeAnnotation_local_wrong_multiple() {
553 resolveTestUnit(''' 561 resolveTestUnit('''
554 main() { 562 main() {
555 var a = 1, b = ''; 563 var a = 1, b = '';
556 } 564 }
557 '''); 565 ''');
558 assertNoAssistAt('var ', AssistKind.ADD_TYPE_ANNOTATION); 566 assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION);
559 } 567 }
560 568
561 void test_addTypeAnnotation_local_wrong_noValue() { 569 void test_addTypeAnnotation_local_wrong_noValue() {
562 verifyNoTestUnitErrors = false; 570 verifyNoTestUnitErrors = false;
563 resolveTestUnit(''' 571 resolveTestUnit('''
564 main() { 572 main() {
565 var v; 573 var v;
566 } 574 }
567 '''); 575 ''');
568 assertNoAssistAt('var ', AssistKind.ADD_TYPE_ANNOTATION); 576 assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION);
569 } 577 }
570 578
571 void test_addTypeAnnotation_local_wrong_null() { 579 void test_addTypeAnnotation_local_wrong_null() {
572 resolveTestUnit(''' 580 resolveTestUnit('''
573 main() { 581 main() {
574 var v = null; 582 var v = null;
575 } 583 }
576 '''); 584 ''');
577 assertNoAssistAt('var ', AssistKind.ADD_TYPE_ANNOTATION); 585 assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION);
578 } 586 }
579 587
580 void test_addTypeAnnotation_local_wrong_unknown() { 588 void test_addTypeAnnotation_local_wrong_unknown() {
581 verifyNoTestUnitErrors = false; 589 verifyNoTestUnitErrors = false;
582 resolveTestUnit(''' 590 resolveTestUnit('''
583 main() { 591 main() {
584 var v = unknownVar; 592 var v = unknownVar;
585 } 593 }
586 '''); 594 ''');
587 assertNoAssistAt('var ', AssistKind.ADD_TYPE_ANNOTATION); 595 assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION);
588 } 596 }
589 597
590 void test_addTypeAnnotation_OK_privateType_sameLibrary() { 598 void test_addTypeAnnotation_OK_privateType_sameLibrary() {
591 resolveTestUnit(''' 599 resolveTestUnit('''
592 class _A {} 600 class _A {}
593 _A getValue() => new _A(); 601 _A getValue() => new _A();
594 main() { 602 main() {
595 var v = getValue(); 603 var v = getValue();
596 } 604 }
597 '''); 605 ''');
598 assertHasAssistAt('var ', AssistKind.ADD_TYPE_ANNOTATION, ''' 606 assertHasAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION, '''
599 class _A {} 607 class _A {}
600 _A getValue() => new _A(); 608 _A getValue() => new _A();
601 main() { 609 main() {
602 _A v = getValue(); 610 _A v = getValue();
603 } 611 }
604 '''); 612 ''');
605 } 613 }
606 614
607 void test_addTypeAnnotation_parameter_BAD_hasExplicitType() { 615 void test_addTypeAnnotation_parameter_BAD_hasExplicitType() {
608 resolveTestUnit(''' 616 resolveTestUnit('''
609 foo(f(int p)) {} 617 foo(f(int p)) {}
610 main() { 618 main() {
611 foo((num test) {}); 619 foo((num test) {});
612 } 620 }
613 '''); 621 ''');
614 assertNoAssistAt('test', AssistKind.ADD_TYPE_ANNOTATION); 622 assertNoAssistAt('test', DartAssistKind.ADD_TYPE_ANNOTATION);
615 } 623 }
616 624
617 void test_addTypeAnnotation_parameter_BAD_noPropagatedType() { 625 void test_addTypeAnnotation_parameter_BAD_noPropagatedType() {
618 resolveTestUnit(''' 626 resolveTestUnit('''
619 foo(f(p)) {} 627 foo(f(p)) {}
620 main() { 628 main() {
621 foo((test) {}); 629 foo((test) {});
622 } 630 }
623 '''); 631 ''');
624 assertNoAssistAt('test', AssistKind.ADD_TYPE_ANNOTATION); 632 assertNoAssistAt('test', DartAssistKind.ADD_TYPE_ANNOTATION);
625 } 633 }
626 634
627 void test_addTypeAnnotation_parameter_OK() { 635 void test_addTypeAnnotation_parameter_OK() {
628 resolveTestUnit(''' 636 resolveTestUnit('''
629 foo(f(int p)) {} 637 foo(f(int p)) {}
630 main() { 638 main() {
631 foo((test) {}); 639 foo((test) {});
632 } 640 }
633 '''); 641 ''');
634 assertHasAssistAt('test', AssistKind.ADD_TYPE_ANNOTATION, ''' 642 assertHasAssistAt('test', DartAssistKind.ADD_TYPE_ANNOTATION, '''
635 foo(f(int p)) {} 643 foo(f(int p)) {}
636 main() { 644 main() {
637 foo((int test) {}); 645 foo((int test) {});
638 } 646 }
639 '''); 647 ''');
640 } 648 }
641 649
642 void test_addTypeAnnotation_topLevelField_OK_int() { 650 void test_addTypeAnnotation_topLevelField_OK_int() {
643 resolveTestUnit(''' 651 resolveTestUnit('''
644 var V = 0; 652 var V = 0;
645 '''); 653 ''');
646 assertHasAssistAt('var ', AssistKind.ADD_TYPE_ANNOTATION, ''' 654 assertHasAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION, '''
647 int V = 0; 655 int V = 0;
648 '''); 656 ''');
649 } 657 }
650 658
651 void test_addTypeAnnotation_topLevelField_wrong_multiple() { 659 void test_addTypeAnnotation_topLevelField_wrong_multiple() {
652 resolveTestUnit(''' 660 resolveTestUnit('''
653 var A = 1, V = ''; 661 var A = 1, V = '';
654 '''); 662 ''');
655 assertNoAssistAt('var ', AssistKind.ADD_TYPE_ANNOTATION); 663 assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION);
656 } 664 }
657 665
658 void test_addTypeAnnotation_topLevelField_wrong_noValue() { 666 void test_addTypeAnnotation_topLevelField_wrong_noValue() {
659 resolveTestUnit(''' 667 resolveTestUnit('''
660 var V; 668 var V;
661 '''); 669 ''');
662 assertNoAssistAt('var ', AssistKind.ADD_TYPE_ANNOTATION); 670 assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION);
663 } 671 }
664 672
665 void test_assignToLocalVariable() { 673 void test_assignToLocalVariable() {
666 resolveTestUnit(''' 674 resolveTestUnit('''
667 main() { 675 main() {
668 List<int> bytes; 676 List<int> bytes;
669 readBytes(); 677 readBytes();
670 } 678 }
671 List<int> readBytes() => <int>[]; 679 List<int> readBytes() => <int>[];
672 '''); 680 ''');
673 assertHasAssistAt('readBytes();', AssistKind.ASSIGN_TO_LOCAL_VARIABLE, ''' 681 assertHasAssistAt('readBytes();', DartAssistKind.ASSIGN_TO_LOCAL_VARIABLE,
682 '''
674 main() { 683 main() {
675 List<int> bytes; 684 List<int> bytes;
676 var readBytes = readBytes(); 685 var readBytes = readBytes();
677 } 686 }
678 List<int> readBytes() => <int>[]; 687 List<int> readBytes() => <int>[];
679 '''); 688 ''');
680 _assertLinkedGroup(change.linkedEditGroups[0], [ 689 _assertLinkedGroup(change.linkedEditGroups[0], [
681 'readBytes = ' 690 'readBytes = '
682 ], expectedSuggestions( 691 ], expectedSuggestions(
683 LinkedEditSuggestionKind.VARIABLE, ['list', 'bytes2', 'readBytes'])); 692 LinkedEditSuggestionKind.VARIABLE, ['list', 'bytes2', 'readBytes']));
684 } 693 }
685 694
686 void test_assignToLocalVariable_alreadyAssignment() { 695 void test_assignToLocalVariable_alreadyAssignment() {
687 resolveTestUnit(''' 696 resolveTestUnit('''
688 main() { 697 main() {
689 var vvv; 698 var vvv;
690 vvv = 42; 699 vvv = 42;
691 } 700 }
692 '''); 701 ''');
693 assertNoAssistAt('vvv =', AssistKind.ASSIGN_TO_LOCAL_VARIABLE); 702 assertNoAssistAt('vvv =', DartAssistKind.ASSIGN_TO_LOCAL_VARIABLE);
694 } 703 }
695 704
696 void test_assignToLocalVariable_invocationArgument() { 705 void test_assignToLocalVariable_invocationArgument() {
697 resolveTestUnit(r''' 706 resolveTestUnit(r'''
698 main() { 707 main() {
699 f(12345); 708 f(12345);
700 } 709 }
701 int f(p) {} 710 int f(p) {}
702 '''); 711 ''');
703 assertNoAssistAt('345', AssistKind.ASSIGN_TO_LOCAL_VARIABLE); 712 assertNoAssistAt('345', DartAssistKind.ASSIGN_TO_LOCAL_VARIABLE);
704 } 713 }
705 714
706 void test_assignToLocalVariable_throw() { 715 void test_assignToLocalVariable_throw() {
707 resolveTestUnit(''' 716 resolveTestUnit('''
708 main() { 717 main() {
709 throw 42; 718 throw 42;
710 } 719 }
711 '''); 720 ''');
712 assertNoAssistAt('throw ', AssistKind.ASSIGN_TO_LOCAL_VARIABLE); 721 assertNoAssistAt('throw ', DartAssistKind.ASSIGN_TO_LOCAL_VARIABLE);
713 } 722 }
714 723
715 void test_assignToLocalVariable_void() { 724 void test_assignToLocalVariable_void() {
716 resolveTestUnit(''' 725 resolveTestUnit('''
717 main() { 726 main() {
718 f(); 727 f();
719 } 728 }
720 void f() {} 729 void f() {}
721 '''); 730 ''');
722 assertNoAssistAt('f();', AssistKind.ASSIGN_TO_LOCAL_VARIABLE); 731 assertNoAssistAt('f();', DartAssistKind.ASSIGN_TO_LOCAL_VARIABLE);
723 } 732 }
724 733
725 void test_convertToBlockBody_OK_closure() { 734 void test_convertToBlockBody_OK_closure() {
726 resolveTestUnit(''' 735 resolveTestUnit('''
727 setup(x) {} 736 setup(x) {}
728 main() { 737 main() {
729 setup(() => print('done')); 738 setup(() => print('done'));
730 } 739 }
731 '''); 740 ''');
732 assertHasAssistAt('() => print', AssistKind.CONVERT_INTO_BLOCK_BODY, ''' 741 assertHasAssistAt('() => print', DartAssistKind.CONVERT_INTO_BLOCK_BODY, '''
733 setup(x) {} 742 setup(x) {}
734 main() { 743 main() {
735 setup(() { 744 setup(() {
736 return print('done'); 745 return print('done');
737 }); 746 });
738 } 747 }
739 '''); 748 ''');
740 } 749 }
741 750
742 void test_convertToBlockBody_OK_constructor() { 751 void test_convertToBlockBody_OK_constructor() {
743 resolveTestUnit(''' 752 resolveTestUnit('''
744 class A { 753 class A {
745 factory A() => null; 754 factory A() => null;
746 } 755 }
747 '''); 756 ''');
748 assertHasAssistAt('A()', AssistKind.CONVERT_INTO_BLOCK_BODY, ''' 757 assertHasAssistAt('A()', DartAssistKind.CONVERT_INTO_BLOCK_BODY, '''
749 class A { 758 class A {
750 factory A() { 759 factory A() {
751 return null; 760 return null;
752 } 761 }
753 } 762 }
754 '''); 763 ''');
755 } 764 }
756 765
757 void test_convertToBlockBody_OK_method() { 766 void test_convertToBlockBody_OK_method() {
758 resolveTestUnit(''' 767 resolveTestUnit('''
759 class A { 768 class A {
760 mmm() => 123; 769 mmm() => 123;
761 } 770 }
762 '''); 771 ''');
763 assertHasAssistAt('mmm()', AssistKind.CONVERT_INTO_BLOCK_BODY, ''' 772 assertHasAssistAt('mmm()', DartAssistKind.CONVERT_INTO_BLOCK_BODY, '''
764 class A { 773 class A {
765 mmm() { 774 mmm() {
766 return 123; 775 return 123;
767 } 776 }
768 } 777 }
769 '''); 778 ''');
770 } 779 }
771 780
772 void test_convertToBlockBody_OK_onName() { 781 void test_convertToBlockBody_OK_onName() {
773 resolveTestUnit(''' 782 resolveTestUnit('''
774 fff() => 123; 783 fff() => 123;
775 '''); 784 ''');
776 assertHasAssistAt('fff()', AssistKind.CONVERT_INTO_BLOCK_BODY, ''' 785 assertHasAssistAt('fff()', DartAssistKind.CONVERT_INTO_BLOCK_BODY, '''
777 fff() { 786 fff() {
778 return 123; 787 return 123;
779 } 788 }
780 '''); 789 ''');
781 } 790 }
782 791
783 void test_convertToBlockBody_OK_onValue() { 792 void test_convertToBlockBody_OK_onValue() {
784 resolveTestUnit(''' 793 resolveTestUnit('''
785 fff() => 123; 794 fff() => 123;
786 '''); 795 ''');
787 assertHasAssistAt('23;', AssistKind.CONVERT_INTO_BLOCK_BODY, ''' 796 assertHasAssistAt('23;', DartAssistKind.CONVERT_INTO_BLOCK_BODY, '''
788 fff() { 797 fff() {
789 return 123; 798 return 123;
790 } 799 }
791 '''); 800 ''');
792 } 801 }
793 802
794 void test_convertToBlockBody_wrong_noEnclosingFunction() { 803 void test_convertToBlockBody_wrong_noEnclosingFunction() {
795 resolveTestUnit(''' 804 resolveTestUnit('''
796 var v = 123; 805 var v = 123;
797 '''); 806 ''');
798 assertNoAssistAt('v =', AssistKind.CONVERT_INTO_BLOCK_BODY); 807 assertNoAssistAt('v =', DartAssistKind.CONVERT_INTO_BLOCK_BODY);
799 } 808 }
800 809
801 void test_convertToBlockBody_wrong_notExpressionBlock() { 810 void test_convertToBlockBody_wrong_notExpressionBlock() {
802 resolveTestUnit(''' 811 resolveTestUnit('''
803 fff() { 812 fff() {
804 return 123; 813 return 123;
805 } 814 }
806 '''); 815 ''');
807 assertNoAssistAt('fff() {', AssistKind.CONVERT_INTO_BLOCK_BODY); 816 assertNoAssistAt('fff() {', DartAssistKind.CONVERT_INTO_BLOCK_BODY);
808 } 817 }
809 818
810 void test_convertToExpressionBody_OK_closure() { 819 void test_convertToExpressionBody_OK_closure() {
811 resolveTestUnit(''' 820 resolveTestUnit('''
812 setup(x) {} 821 setup(x) {}
813 main() { 822 main() {
814 setup(() { 823 setup(() {
815 return 42; 824 return 42;
816 }); 825 });
817 } 826 }
818 '''); 827 ''');
819 assertHasAssistAt('42;', AssistKind.CONVERT_INTO_EXPRESSION_BODY, ''' 828 assertHasAssistAt('42;', DartAssistKind.CONVERT_INTO_EXPRESSION_BODY, '''
820 setup(x) {} 829 setup(x) {}
821 main() { 830 main() {
822 setup(() => 42); 831 setup(() => 42);
823 } 832 }
824 '''); 833 ''');
825 } 834 }
826 835
827 void test_convertToExpressionBody_OK_constructor() { 836 void test_convertToExpressionBody_OK_constructor() {
828 resolveTestUnit(''' 837 resolveTestUnit('''
829 class A { 838 class A {
830 factory A() { 839 factory A() {
831 return null; 840 return null;
832 } 841 }
833 } 842 }
834 '''); 843 ''');
835 assertHasAssistAt('A()', AssistKind.CONVERT_INTO_EXPRESSION_BODY, ''' 844 assertHasAssistAt('A()', DartAssistKind.CONVERT_INTO_EXPRESSION_BODY, '''
836 class A { 845 class A {
837 factory A() => null; 846 factory A() => null;
838 } 847 }
839 '''); 848 ''');
840 } 849 }
841 850
842 void test_convertToExpressionBody_OK_function_onBlock() { 851 void test_convertToExpressionBody_OK_function_onBlock() {
843 resolveTestUnit(''' 852 resolveTestUnit('''
844 fff() { 853 fff() {
845 return 42; 854 return 42;
846 } 855 }
847 '''); 856 ''');
848 assertHasAssistAt('{', AssistKind.CONVERT_INTO_EXPRESSION_BODY, ''' 857 assertHasAssistAt('{', DartAssistKind.CONVERT_INTO_EXPRESSION_BODY, '''
849 fff() => 42; 858 fff() => 42;
850 '''); 859 ''');
851 } 860 }
852 861
853 void test_convertToExpressionBody_OK_function_onName() { 862 void test_convertToExpressionBody_OK_function_onName() {
854 resolveTestUnit(''' 863 resolveTestUnit('''
855 fff() { 864 fff() {
856 return 42; 865 return 42;
857 } 866 }
858 '''); 867 ''');
859 assertHasAssistAt('ff()', AssistKind.CONVERT_INTO_EXPRESSION_BODY, ''' 868 assertHasAssistAt('ff()', DartAssistKind.CONVERT_INTO_EXPRESSION_BODY, '''
860 fff() => 42; 869 fff() => 42;
861 '''); 870 ''');
862 } 871 }
863 872
864 void test_convertToExpressionBody_OK_method_onBlock() { 873 void test_convertToExpressionBody_OK_method_onBlock() {
865 resolveTestUnit(''' 874 resolveTestUnit('''
866 class A { 875 class A {
867 m() { // marker 876 m() { // marker
868 return 42; 877 return 42;
869 } 878 }
870 } 879 }
871 '''); 880 ''');
872 assertHasAssistAt('{ // marker', AssistKind.CONVERT_INTO_EXPRESSION_BODY, 881 assertHasAssistAt('{ // marker',
873 ''' 882 DartAssistKind.CONVERT_INTO_EXPRESSION_BODY, '''
874 class A { 883 class A {
875 m() => 42; 884 m() => 42;
876 } 885 }
877 '''); 886 ''');
878 } 887 }
879 888
880 void test_convertToExpressionBody_OK_topFunction_onReturnStatement() { 889 void test_convertToExpressionBody_OK_topFunction_onReturnStatement() {
881 resolveTestUnit(''' 890 resolveTestUnit('''
882 fff() { 891 fff() {
883 return 42; 892 return 42;
884 } 893 }
885 '''); 894 ''');
886 assertHasAssistAt('return', AssistKind.CONVERT_INTO_EXPRESSION_BODY, ''' 895 assertHasAssistAt('return', DartAssistKind.CONVERT_INTO_EXPRESSION_BODY, '''
887 fff() => 42; 896 fff() => 42;
888 '''); 897 ''');
889 } 898 }
890 899
891 void test_convertToExpressionBody_wrong_already() { 900 void test_convertToExpressionBody_wrong_already() {
892 resolveTestUnit(''' 901 resolveTestUnit('''
893 fff() => 42; 902 fff() => 42;
894 '''); 903 ''');
895 assertNoAssistAt('fff()', AssistKind.CONVERT_INTO_EXPRESSION_BODY); 904 assertNoAssistAt('fff()', DartAssistKind.CONVERT_INTO_EXPRESSION_BODY);
896 } 905 }
897 906
898 void test_convertToExpressionBody_wrong_moreThanOneStatement() { 907 void test_convertToExpressionBody_wrong_moreThanOneStatement() {
899 resolveTestUnit(''' 908 resolveTestUnit('''
900 fff() { 909 fff() {
901 var v = 42; 910 var v = 42;
902 return v; 911 return v;
903 } 912 }
904 '''); 913 ''');
905 assertNoAssistAt('fff()', AssistKind.CONVERT_INTO_EXPRESSION_BODY); 914 assertNoAssistAt('fff()', DartAssistKind.CONVERT_INTO_EXPRESSION_BODY);
906 } 915 }
907 916
908 void test_convertToExpressionBody_wrong_noEnclosingFunction() { 917 void test_convertToExpressionBody_wrong_noEnclosingFunction() {
909 resolveTestUnit(''' 918 resolveTestUnit('''
910 var V = 42; 919 var V = 42;
911 '''); 920 ''');
912 assertNoAssistAt('V = ', AssistKind.CONVERT_INTO_EXPRESSION_BODY); 921 assertNoAssistAt('V = ', DartAssistKind.CONVERT_INTO_EXPRESSION_BODY);
913 } 922 }
914 923
915 void test_convertToExpressionBody_wrong_noReturn() { 924 void test_convertToExpressionBody_wrong_noReturn() {
916 resolveTestUnit(''' 925 resolveTestUnit('''
917 fff() { 926 fff() {
918 var v = 42; 927 var v = 42;
919 } 928 }
920 '''); 929 ''');
921 assertNoAssistAt('fff()', AssistKind.CONVERT_INTO_EXPRESSION_BODY); 930 assertNoAssistAt('fff()', DartAssistKind.CONVERT_INTO_EXPRESSION_BODY);
922 } 931 }
923 932
924 void test_convertToExpressionBody_wrong_noReturnValue() { 933 void test_convertToExpressionBody_wrong_noReturnValue() {
925 resolveTestUnit(''' 934 resolveTestUnit('''
926 fff() { 935 fff() {
927 return; 936 return;
928 } 937 }
929 '''); 938 ''');
930 assertNoAssistAt('fff()', AssistKind.CONVERT_INTO_EXPRESSION_BODY); 939 assertNoAssistAt('fff()', DartAssistKind.CONVERT_INTO_EXPRESSION_BODY);
931 } 940 }
932 941
933 void test_convertToForIndex_BAD_bodyNotBlock() { 942 void test_convertToForIndex_BAD_bodyNotBlock() {
934 resolveTestUnit(''' 943 resolveTestUnit('''
935 main(List<String> items) { 944 main(List<String> items) {
936 for (String item in items) print(item); 945 for (String item in items) print(item);
937 } 946 }
938 '''); 947 ''');
939 assertNoAssistAt('for (String', AssistKind.CONVERT_INTO_FOR_INDEX); 948 assertNoAssistAt('for (String', DartAssistKind.CONVERT_INTO_FOR_INDEX);
940 } 949 }
941 950
942 void test_convertToForIndex_BAD_doesNotDeclareVariable() { 951 void test_convertToForIndex_BAD_doesNotDeclareVariable() {
943 resolveTestUnit(''' 952 resolveTestUnit('''
944 main(List<String> items) { 953 main(List<String> items) {
945 String item; 954 String item;
946 for (item in items) { 955 for (item in items) {
947 print(item); 956 print(item);
948 } 957 }
949 } 958 }
950 '''); 959 ''');
951 assertNoAssistAt('for (item', AssistKind.CONVERT_INTO_FOR_INDEX); 960 assertNoAssistAt('for (item', DartAssistKind.CONVERT_INTO_FOR_INDEX);
952 } 961 }
953 962
954 void test_convertToForIndex_BAD_iterableIsNotVariable() { 963 void test_convertToForIndex_BAD_iterableIsNotVariable() {
955 resolveTestUnit(''' 964 resolveTestUnit('''
956 main() { 965 main() {
957 for (String item in ['a', 'b', 'c']) { 966 for (String item in ['a', 'b', 'c']) {
958 print(item); 967 print(item);
959 } 968 }
960 } 969 }
961 '''); 970 ''');
962 assertNoAssistAt('for (String', AssistKind.CONVERT_INTO_FOR_INDEX); 971 assertNoAssistAt('for (String', DartAssistKind.CONVERT_INTO_FOR_INDEX);
963 } 972 }
964 973
965 void test_convertToForIndex_BAD_iterableNotList() { 974 void test_convertToForIndex_BAD_iterableNotList() {
966 resolveTestUnit(''' 975 resolveTestUnit('''
967 main(Iterable<String> items) { 976 main(Iterable<String> items) {
968 for (String item in items) { 977 for (String item in items) {
969 print(item); 978 print(item);
970 } 979 }
971 } 980 }
972 '''); 981 ''');
973 assertNoAssistAt('for (String', AssistKind.CONVERT_INTO_FOR_INDEX); 982 assertNoAssistAt('for (String', DartAssistKind.CONVERT_INTO_FOR_INDEX);
974 } 983 }
975 984
976 void test_convertToForIndex_BAD_usesIJK() { 985 void test_convertToForIndex_BAD_usesIJK() {
977 resolveTestUnit(''' 986 resolveTestUnit('''
978 main(List<String> items) { 987 main(List<String> items) {
979 for (String item in items) { 988 for (String item in items) {
980 print(item); 989 print(item);
981 int i, j, k; 990 int i, j, k;
982 } 991 }
983 } 992 }
984 '''); 993 ''');
985 assertNoAssistAt('for (String', AssistKind.CONVERT_INTO_FOR_INDEX); 994 assertNoAssistAt('for (String', DartAssistKind.CONVERT_INTO_FOR_INDEX);
986 } 995 }
987 996
988 void test_convertToForIndex_OK_onDeclaredIdentifier_name() { 997 void test_convertToForIndex_OK_onDeclaredIdentifier_name() {
989 resolveTestUnit(''' 998 resolveTestUnit('''
990 main(List<String> items) { 999 main(List<String> items) {
991 for (String item in items) { 1000 for (String item in items) {
992 print(item); 1001 print(item);
993 } 1002 }
994 } 1003 }
995 '''); 1004 ''');
996 assertHasAssistAt('item in', AssistKind.CONVERT_INTO_FOR_INDEX, ''' 1005 assertHasAssistAt('item in', DartAssistKind.CONVERT_INTO_FOR_INDEX, '''
997 main(List<String> items) { 1006 main(List<String> items) {
998 for (int i = 0; i < items.length; i++) { 1007 for (int i = 0; i < items.length; i++) {
999 String item = items[i]; 1008 String item = items[i];
1000 print(item); 1009 print(item);
1001 } 1010 }
1002 } 1011 }
1003 '''); 1012 ''');
1004 } 1013 }
1005 1014
1006 void test_convertToForIndex_OK_onDeclaredIdentifier_type() { 1015 void test_convertToForIndex_OK_onDeclaredIdentifier_type() {
1007 resolveTestUnit(''' 1016 resolveTestUnit('''
1008 main(List<String> items) { 1017 main(List<String> items) {
1009 for (String item in items) { 1018 for (String item in items) {
1010 print(item); 1019 print(item);
1011 } 1020 }
1012 } 1021 }
1013 '''); 1022 ''');
1014 assertHasAssistAt('tring item', AssistKind.CONVERT_INTO_FOR_INDEX, ''' 1023 assertHasAssistAt('tring item', DartAssistKind.CONVERT_INTO_FOR_INDEX, '''
1015 main(List<String> items) { 1024 main(List<String> items) {
1016 for (int i = 0; i < items.length; i++) { 1025 for (int i = 0; i < items.length; i++) {
1017 String item = items[i]; 1026 String item = items[i];
1018 print(item); 1027 print(item);
1019 } 1028 }
1020 } 1029 }
1021 '''); 1030 ''');
1022 } 1031 }
1023 1032
1024 void test_convertToForIndex_OK_onFor() { 1033 void test_convertToForIndex_OK_onFor() {
1025 resolveTestUnit(''' 1034 resolveTestUnit('''
1026 main(List<String> items) { 1035 main(List<String> items) {
1027 for (String item in items) { 1036 for (String item in items) {
1028 print(item); 1037 print(item);
1029 } 1038 }
1030 } 1039 }
1031 '''); 1040 ''');
1032 assertHasAssistAt('for (String', AssistKind.CONVERT_INTO_FOR_INDEX, ''' 1041 assertHasAssistAt('for (String', DartAssistKind.CONVERT_INTO_FOR_INDEX, '''
1033 main(List<String> items) { 1042 main(List<String> items) {
1034 for (int i = 0; i < items.length; i++) { 1043 for (int i = 0; i < items.length; i++) {
1035 String item = items[i]; 1044 String item = items[i];
1036 print(item); 1045 print(item);
1037 } 1046 }
1038 } 1047 }
1039 '''); 1048 ''');
1040 } 1049 }
1041 1050
1042 void test_convertToForIndex_OK_usesI() { 1051 void test_convertToForIndex_OK_usesI() {
1043 resolveTestUnit(''' 1052 resolveTestUnit('''
1044 main(List<String> items) { 1053 main(List<String> items) {
1045 for (String item in items) { 1054 for (String item in items) {
1046 int i = 0; 1055 int i = 0;
1047 } 1056 }
1048 } 1057 }
1049 '''); 1058 ''');
1050 assertHasAssistAt('for (String', AssistKind.CONVERT_INTO_FOR_INDEX, ''' 1059 assertHasAssistAt('for (String', DartAssistKind.CONVERT_INTO_FOR_INDEX, '''
1051 main(List<String> items) { 1060 main(List<String> items) {
1052 for (int j = 0; j < items.length; j++) { 1061 for (int j = 0; j < items.length; j++) {
1053 String item = items[j]; 1062 String item = items[j];
1054 int i = 0; 1063 int i = 0;
1055 } 1064 }
1056 } 1065 }
1057 '''); 1066 ''');
1058 } 1067 }
1059 1068
1060 void test_convertToForIndex_OK_usesIJ() { 1069 void test_convertToForIndex_OK_usesIJ() {
1061 resolveTestUnit(''' 1070 resolveTestUnit('''
1062 main(List<String> items) { 1071 main(List<String> items) {
1063 for (String item in items) { 1072 for (String item in items) {
1064 print(item); 1073 print(item);
1065 int i = 0, j = 1; 1074 int i = 0, j = 1;
1066 } 1075 }
1067 } 1076 }
1068 '''); 1077 ''');
1069 assertHasAssistAt('for (String', AssistKind.CONVERT_INTO_FOR_INDEX, ''' 1078 assertHasAssistAt('for (String', DartAssistKind.CONVERT_INTO_FOR_INDEX, '''
1070 main(List<String> items) { 1079 main(List<String> items) {
1071 for (int k = 0; k < items.length; k++) { 1080 for (int k = 0; k < items.length; k++) {
1072 String item = items[k]; 1081 String item = items[k];
1073 print(item); 1082 print(item);
1074 int i = 0, j = 1; 1083 int i = 0, j = 1;
1075 } 1084 }
1076 } 1085 }
1077 '''); 1086 ''');
1078 } 1087 }
1079 1088
1080 void test_convertToIsNot_OK_childOfIs_left() { 1089 void test_convertToIsNot_OK_childOfIs_left() {
1081 resolveTestUnit(''' 1090 resolveTestUnit('''
1082 main(p) { 1091 main(p) {
1083 !(p is String); 1092 !(p is String);
1084 } 1093 }
1085 '''); 1094 ''');
1086 assertHasAssistAt('p is', AssistKind.CONVERT_INTO_IS_NOT, ''' 1095 assertHasAssistAt('p is', DartAssistKind.CONVERT_INTO_IS_NOT, '''
1087 main(p) { 1096 main(p) {
1088 p is! String; 1097 p is! String;
1089 } 1098 }
1090 '''); 1099 ''');
1091 } 1100 }
1092 1101
1093 void test_convertToIsNot_OK_childOfIs_right() { 1102 void test_convertToIsNot_OK_childOfIs_right() {
1094 resolveTestUnit(''' 1103 resolveTestUnit('''
1095 main(p) { 1104 main(p) {
1096 !(p is String); 1105 !(p is String);
1097 } 1106 }
1098 '''); 1107 ''');
1099 assertHasAssistAt('String)', AssistKind.CONVERT_INTO_IS_NOT, ''' 1108 assertHasAssistAt('String)', DartAssistKind.CONVERT_INTO_IS_NOT, '''
1100 main(p) { 1109 main(p) {
1101 p is! String; 1110 p is! String;
1102 } 1111 }
1103 '''); 1112 ''');
1104 } 1113 }
1105 1114
1106 void test_convertToIsNot_OK_is() { 1115 void test_convertToIsNot_OK_is() {
1107 resolveTestUnit(''' 1116 resolveTestUnit('''
1108 main(p) { 1117 main(p) {
1109 !(p is String); 1118 !(p is String);
1110 } 1119 }
1111 '''); 1120 ''');
1112 assertHasAssistAt('is String', AssistKind.CONVERT_INTO_IS_NOT, ''' 1121 assertHasAssistAt('is String', DartAssistKind.CONVERT_INTO_IS_NOT, '''
1113 main(p) { 1122 main(p) {
1114 p is! String; 1123 p is! String;
1115 } 1124 }
1116 '''); 1125 ''');
1117 } 1126 }
1118 1127
1119 void test_convertToIsNot_OK_is_higherPrecedencePrefix() { 1128 void test_convertToIsNot_OK_is_higherPrecedencePrefix() {
1120 resolveTestUnit(''' 1129 resolveTestUnit('''
1121 main(p) { 1130 main(p) {
1122 !!(p is String); 1131 !!(p is String);
1123 } 1132 }
1124 '''); 1133 ''');
1125 assertHasAssistAt('is String', AssistKind.CONVERT_INTO_IS_NOT, ''' 1134 assertHasAssistAt('is String', DartAssistKind.CONVERT_INTO_IS_NOT, '''
1126 main(p) { 1135 main(p) {
1127 !(p is! String); 1136 !(p is! String);
1128 } 1137 }
1129 '''); 1138 ''');
1130 } 1139 }
1131 1140
1132 void test_convertToIsNot_OK_is_not_higherPrecedencePrefix() { 1141 void test_convertToIsNot_OK_is_not_higherPrecedencePrefix() {
1133 resolveTestUnit(''' 1142 resolveTestUnit('''
1134 main(p) { 1143 main(p) {
1135 !!(p is String); 1144 !!(p is String);
1136 } 1145 }
1137 '''); 1146 ''');
1138 assertHasAssistAt('!(p', AssistKind.CONVERT_INTO_IS_NOT, ''' 1147 assertHasAssistAt('!(p', DartAssistKind.CONVERT_INTO_IS_NOT, '''
1139 main(p) { 1148 main(p) {
1140 !(p is! String); 1149 !(p is! String);
1141 } 1150 }
1142 '''); 1151 ''');
1143 } 1152 }
1144 1153
1145 void test_convertToIsNot_OK_not() { 1154 void test_convertToIsNot_OK_not() {
1146 resolveTestUnit(''' 1155 resolveTestUnit('''
1147 main(p) { 1156 main(p) {
1148 !(p is String); 1157 !(p is String);
1149 } 1158 }
1150 '''); 1159 ''');
1151 assertHasAssistAt('!(p', AssistKind.CONVERT_INTO_IS_NOT, ''' 1160 assertHasAssistAt('!(p', DartAssistKind.CONVERT_INTO_IS_NOT, '''
1152 main(p) { 1161 main(p) {
1153 p is! String; 1162 p is! String;
1154 } 1163 }
1155 '''); 1164 ''');
1156 } 1165 }
1157 1166
1158 void test_convertToIsNot_OK_parentheses() { 1167 void test_convertToIsNot_OK_parentheses() {
1159 resolveTestUnit(''' 1168 resolveTestUnit('''
1160 main(p) { 1169 main(p) {
1161 !(p is String); 1170 !(p is String);
1162 } 1171 }
1163 '''); 1172 ''');
1164 assertHasAssistAt('(p is', AssistKind.CONVERT_INTO_IS_NOT, ''' 1173 assertHasAssistAt('(p is', DartAssistKind.CONVERT_INTO_IS_NOT, '''
1165 main(p) { 1174 main(p) {
1166 p is! String; 1175 p is! String;
1167 } 1176 }
1168 '''); 1177 ''');
1169 } 1178 }
1170 1179
1171 void test_convertToIsNot_wrong_is_alreadyIsNot() { 1180 void test_convertToIsNot_wrong_is_alreadyIsNot() {
1172 resolveTestUnit(''' 1181 resolveTestUnit('''
1173 main(p) { 1182 main(p) {
1174 p is! String; 1183 p is! String;
1175 } 1184 }
1176 '''); 1185 ''');
1177 assertNoAssistAt('is!', AssistKind.CONVERT_INTO_IS_NOT); 1186 assertNoAssistAt('is!', DartAssistKind.CONVERT_INTO_IS_NOT);
1178 } 1187 }
1179 1188
1180 void test_convertToIsNot_wrong_is_noEnclosingParenthesis() { 1189 void test_convertToIsNot_wrong_is_noEnclosingParenthesis() {
1181 resolveTestUnit(''' 1190 resolveTestUnit('''
1182 main(p) { 1191 main(p) {
1183 p is String; 1192 p is String;
1184 } 1193 }
1185 '''); 1194 ''');
1186 assertNoAssistAt('is String', AssistKind.CONVERT_INTO_IS_NOT); 1195 assertNoAssistAt('is String', DartAssistKind.CONVERT_INTO_IS_NOT);
1187 } 1196 }
1188 1197
1189 void test_convertToIsNot_wrong_is_noPrefix() { 1198 void test_convertToIsNot_wrong_is_noPrefix() {
1190 resolveTestUnit(''' 1199 resolveTestUnit('''
1191 main(p) { 1200 main(p) {
1192 (p is String); 1201 (p is String);
1193 } 1202 }
1194 '''); 1203 ''');
1195 assertNoAssistAt('is String', AssistKind.CONVERT_INTO_IS_NOT); 1204 assertNoAssistAt('is String', DartAssistKind.CONVERT_INTO_IS_NOT);
1196 } 1205 }
1197 1206
1198 void test_convertToIsNot_wrong_is_notIsExpression() { 1207 void test_convertToIsNot_wrong_is_notIsExpression() {
1199 resolveTestUnit(''' 1208 resolveTestUnit('''
1200 main(p) { 1209 main(p) {
1201 123 + 456; 1210 123 + 456;
1202 } 1211 }
1203 '''); 1212 ''');
1204 assertNoAssistAt('123 +', AssistKind.CONVERT_INTO_IS_NOT); 1213 assertNoAssistAt('123 +', DartAssistKind.CONVERT_INTO_IS_NOT);
1205 } 1214 }
1206 1215
1207 void test_convertToIsNot_wrong_is_notTheNotOperator() { 1216 void test_convertToIsNot_wrong_is_notTheNotOperator() {
1208 verifyNoTestUnitErrors = false; 1217 verifyNoTestUnitErrors = false;
1209 resolveTestUnit(''' 1218 resolveTestUnit('''
1210 main(p) { 1219 main(p) {
1211 ++(p is String); 1220 ++(p is String);
1212 } 1221 }
1213 '''); 1222 ''');
1214 assertNoAssistAt('is String', AssistKind.CONVERT_INTO_IS_NOT); 1223 assertNoAssistAt('is String', DartAssistKind.CONVERT_INTO_IS_NOT);
1215 } 1224 }
1216 1225
1217 void test_convertToIsNot_wrong_not_alreadyIsNot() { 1226 void test_convertToIsNot_wrong_not_alreadyIsNot() {
1218 resolveTestUnit(''' 1227 resolveTestUnit('''
1219 main(p) { 1228 main(p) {
1220 !(p is! String); 1229 !(p is! String);
1221 } 1230 }
1222 '''); 1231 ''');
1223 assertNoAssistAt('!(p', AssistKind.CONVERT_INTO_IS_NOT); 1232 assertNoAssistAt('!(p', DartAssistKind.CONVERT_INTO_IS_NOT);
1224 } 1233 }
1225 1234
1226 void test_convertToIsNot_wrong_not_noEnclosingParenthesis() { 1235 void test_convertToIsNot_wrong_not_noEnclosingParenthesis() {
1227 resolveTestUnit(''' 1236 resolveTestUnit('''
1228 main(p) { 1237 main(p) {
1229 !p; 1238 !p;
1230 } 1239 }
1231 '''); 1240 ''');
1232 assertNoAssistAt('!p', AssistKind.CONVERT_INTO_IS_NOT); 1241 assertNoAssistAt('!p', DartAssistKind.CONVERT_INTO_IS_NOT);
1233 } 1242 }
1234 1243
1235 void test_convertToIsNot_wrong_not_notIsExpression() { 1244 void test_convertToIsNot_wrong_not_notIsExpression() {
1236 resolveTestUnit(''' 1245 resolveTestUnit('''
1237 main(p) { 1246 main(p) {
1238 !(p == null); 1247 !(p == null);
1239 } 1248 }
1240 '''); 1249 ''');
1241 assertNoAssistAt('!(p', AssistKind.CONVERT_INTO_IS_NOT); 1250 assertNoAssistAt('!(p', DartAssistKind.CONVERT_INTO_IS_NOT);
1242 } 1251 }
1243 1252
1244 void test_convertToIsNot_wrong_not_notTheNotOperator() { 1253 void test_convertToIsNot_wrong_not_notTheNotOperator() {
1245 verifyNoTestUnitErrors = false; 1254 verifyNoTestUnitErrors = false;
1246 resolveTestUnit(''' 1255 resolveTestUnit('''
1247 main(p) { 1256 main(p) {
1248 ++(p is String); 1257 ++(p is String);
1249 } 1258 }
1250 '''); 1259 ''');
1251 assertNoAssistAt('++(', AssistKind.CONVERT_INTO_IS_NOT); 1260 assertNoAssistAt('++(', DartAssistKind.CONVERT_INTO_IS_NOT);
1252 } 1261 }
1253 1262
1254 void test_convertToIsNotEmpty_OK_on_isEmpty() { 1263 void test_convertToIsNotEmpty_OK_on_isEmpty() {
1255 resolveTestUnit(''' 1264 resolveTestUnit('''
1256 main(String str) { 1265 main(String str) {
1257 !str.isEmpty; 1266 !str.isEmpty;
1258 } 1267 }
1259 '''); 1268 ''');
1260 assertHasAssistAt('isEmpty', AssistKind.CONVERT_INTO_IS_NOT_EMPTY, ''' 1269 assertHasAssistAt('isEmpty', DartAssistKind.CONVERT_INTO_IS_NOT_EMPTY, '''
1261 main(String str) { 1270 main(String str) {
1262 str.isNotEmpty; 1271 str.isNotEmpty;
1263 } 1272 }
1264 '''); 1273 ''');
1265 } 1274 }
1266 1275
1267 void test_convertToIsNotEmpty_OK_on_str() { 1276 void test_convertToIsNotEmpty_OK_on_str() {
1268 resolveTestUnit(''' 1277 resolveTestUnit('''
1269 main(String str) { 1278 main(String str) {
1270 !str.isEmpty; 1279 !str.isEmpty;
1271 } 1280 }
1272 '''); 1281 ''');
1273 assertHasAssistAt('str.', AssistKind.CONVERT_INTO_IS_NOT_EMPTY, ''' 1282 assertHasAssistAt('str.', DartAssistKind.CONVERT_INTO_IS_NOT_EMPTY, '''
1274 main(String str) { 1283 main(String str) {
1275 str.isNotEmpty; 1284 str.isNotEmpty;
1276 } 1285 }
1277 '''); 1286 ''');
1278 } 1287 }
1279 1288
1280 void test_convertToIsNotEmpty_OK_propertyAccess() { 1289 void test_convertToIsNotEmpty_OK_propertyAccess() {
1281 resolveTestUnit(''' 1290 resolveTestUnit('''
1282 main(String str) { 1291 main(String str) {
1283 !'text'.isEmpty; 1292 !'text'.isEmpty;
1284 } 1293 }
1285 '''); 1294 ''');
1286 assertHasAssistAt('isEmpty', AssistKind.CONVERT_INTO_IS_NOT_EMPTY, ''' 1295 assertHasAssistAt('isEmpty', DartAssistKind.CONVERT_INTO_IS_NOT_EMPTY, '''
1287 main(String str) { 1296 main(String str) {
1288 'text'.isNotEmpty; 1297 'text'.isNotEmpty;
1289 } 1298 }
1290 '''); 1299 ''');
1291 } 1300 }
1292 1301
1293 void test_convertToIsNotEmpty_wrong_noBang() { 1302 void test_convertToIsNotEmpty_wrong_noBang() {
1294 verifyNoTestUnitErrors = false; 1303 verifyNoTestUnitErrors = false;
1295 resolveTestUnit(''' 1304 resolveTestUnit('''
1296 main(String str) { 1305 main(String str) {
1297 ~str.isEmpty; 1306 ~str.isEmpty;
1298 } 1307 }
1299 '''); 1308 ''');
1300 assertNoAssistAt('isEmpty;', AssistKind.CONVERT_INTO_IS_NOT_EMPTY); 1309 assertNoAssistAt('isEmpty;', DartAssistKind.CONVERT_INTO_IS_NOT_EMPTY);
1301 } 1310 }
1302 1311
1303 void test_convertToIsNotEmpty_wrong_noIsNotEmpty() { 1312 void test_convertToIsNotEmpty_wrong_noIsNotEmpty() {
1304 resolveTestUnit(''' 1313 resolveTestUnit('''
1305 class A { 1314 class A {
1306 bool get isEmpty => false; 1315 bool get isEmpty => false;
1307 } 1316 }
1308 main(A a) { 1317 main(A a) {
1309 !a.isEmpty; 1318 !a.isEmpty;
1310 } 1319 }
1311 '''); 1320 ''');
1312 assertNoAssistAt('isEmpty;', AssistKind.CONVERT_INTO_IS_NOT_EMPTY); 1321 assertNoAssistAt('isEmpty;', DartAssistKind.CONVERT_INTO_IS_NOT_EMPTY);
1313 } 1322 }
1314 1323
1315 void test_convertToIsNotEmpty_wrong_notInPrefixExpression() { 1324 void test_convertToIsNotEmpty_wrong_notInPrefixExpression() {
1316 resolveTestUnit(''' 1325 resolveTestUnit('''
1317 main(String str) { 1326 main(String str) {
1318 str.isEmpty; 1327 str.isEmpty;
1319 } 1328 }
1320 '''); 1329 ''');
1321 assertNoAssistAt('isEmpty;', AssistKind.CONVERT_INTO_IS_NOT_EMPTY); 1330 assertNoAssistAt('isEmpty;', DartAssistKind.CONVERT_INTO_IS_NOT_EMPTY);
1322 } 1331 }
1323 1332
1324 void test_convertToIsNotEmpty_wrong_notIsEmpty() { 1333 void test_convertToIsNotEmpty_wrong_notIsEmpty() {
1325 resolveTestUnit(''' 1334 resolveTestUnit('''
1326 main(int p) { 1335 main(int p) {
1327 !p.isEven; 1336 !p.isEven;
1328 } 1337 }
1329 '''); 1338 ''');
1330 assertNoAssistAt('isEven;', AssistKind.CONVERT_INTO_IS_NOT_EMPTY); 1339 assertNoAssistAt('isEven;', DartAssistKind.CONVERT_INTO_IS_NOT_EMPTY);
1331 } 1340 }
1332 1341
1333 void test_encapsulateField_BAD_alreadyPrivate() { 1342 void test_encapsulateField_BAD_alreadyPrivate() {
1334 resolveTestUnit(''' 1343 resolveTestUnit('''
1335 class A { 1344 class A {
1336 int _test = 42; 1345 int _test = 42;
1337 } 1346 }
1338 main(A a) { 1347 main(A a) {
1339 print(a._test); 1348 print(a._test);
1340 } 1349 }
1341 '''); 1350 ''');
1342 assertNoAssistAt('_test =', AssistKind.ENCAPSULATE_FIELD); 1351 assertNoAssistAt('_test =', DartAssistKind.ENCAPSULATE_FIELD);
1343 } 1352 }
1344 1353
1345 void test_encapsulateField_BAD_final() { 1354 void test_encapsulateField_BAD_final() {
1346 resolveTestUnit(''' 1355 resolveTestUnit('''
1347 class A { 1356 class A {
1348 final int test = 42; 1357 final int test = 42;
1349 } 1358 }
1350 '''); 1359 ''');
1351 assertNoAssistAt('test =', AssistKind.ENCAPSULATE_FIELD); 1360 assertNoAssistAt('test =', DartAssistKind.ENCAPSULATE_FIELD);
1352 } 1361 }
1353 1362
1354 void test_encapsulateField_BAD_multipleFields() { 1363 void test_encapsulateField_BAD_multipleFields() {
1355 resolveTestUnit(''' 1364 resolveTestUnit('''
1356 class A { 1365 class A {
1357 int aaa, bbb, ccc; 1366 int aaa, bbb, ccc;
1358 } 1367 }
1359 main(A a) { 1368 main(A a) {
1360 print(a.bbb); 1369 print(a.bbb);
1361 } 1370 }
1362 '''); 1371 ''');
1363 assertNoAssistAt('bbb, ', AssistKind.ENCAPSULATE_FIELD); 1372 assertNoAssistAt('bbb, ', DartAssistKind.ENCAPSULATE_FIELD);
1364 } 1373 }
1365 1374
1366 void test_encapsulateField_BAD_notOnName() { 1375 void test_encapsulateField_BAD_notOnName() {
1367 resolveTestUnit(''' 1376 resolveTestUnit('''
1368 class A { 1377 class A {
1369 int test = 1 + 2 + 3; 1378 int test = 1 + 2 + 3;
1370 } 1379 }
1371 '''); 1380 ''');
1372 assertNoAssistAt('+ 2', AssistKind.ENCAPSULATE_FIELD); 1381 assertNoAssistAt('+ 2', DartAssistKind.ENCAPSULATE_FIELD);
1373 } 1382 }
1374 1383
1375 void test_encapsulateField_BAD_parseError() { 1384 void test_encapsulateField_BAD_parseError() {
1376 verifyNoTestUnitErrors = false; 1385 verifyNoTestUnitErrors = false;
1377 resolveTestUnit(''' 1386 resolveTestUnit('''
1378 class A { 1387 class A {
1379 int; // marker 1388 int; // marker
1380 } 1389 }
1381 main(A a) { 1390 main(A a) {
1382 print(a.test); 1391 print(a.test);
1383 } 1392 }
1384 '''); 1393 ''');
1385 assertNoAssistAt('; // marker', AssistKind.ENCAPSULATE_FIELD); 1394 assertNoAssistAt('; // marker', DartAssistKind.ENCAPSULATE_FIELD);
1386 } 1395 }
1387 1396
1388 void test_encapsulateField_BAD_static() { 1397 void test_encapsulateField_BAD_static() {
1389 resolveTestUnit(''' 1398 resolveTestUnit('''
1390 class A { 1399 class A {
1391 static int test = 42; 1400 static int test = 42;
1392 } 1401 }
1393 '''); 1402 ''');
1394 assertNoAssistAt('test =', AssistKind.ENCAPSULATE_FIELD); 1403 assertNoAssistAt('test =', DartAssistKind.ENCAPSULATE_FIELD);
1395 } 1404 }
1396 1405
1397 void test_encapsulateField_OK_hasType() { 1406 void test_encapsulateField_OK_hasType() {
1398 resolveTestUnit(''' 1407 resolveTestUnit('''
1399 class A { 1408 class A {
1400 int test = 42; 1409 int test = 42;
1401 A(this.test); 1410 A(this.test);
1402 } 1411 }
1403 main(A a) { 1412 main(A a) {
1404 print(a.test); 1413 print(a.test);
1405 } 1414 }
1406 '''); 1415 ''');
1407 assertHasAssistAt('test = 42', AssistKind.ENCAPSULATE_FIELD, ''' 1416 assertHasAssistAt('test = 42', DartAssistKind.ENCAPSULATE_FIELD, '''
1408 class A { 1417 class A {
1409 int _test = 42; 1418 int _test = 42;
1410 1419
1411 int get test => _test; 1420 int get test => _test;
1412 1421
1413 void set test(int test) { 1422 void set test(int test) {
1414 _test = test; 1423 _test = test;
1415 } 1424 }
1416 A(this._test); 1425 A(this._test);
1417 } 1426 }
1418 main(A a) { 1427 main(A a) {
1419 print(a.test); 1428 print(a.test);
1420 } 1429 }
1421 '''); 1430 ''');
1422 } 1431 }
1423 1432
1424 void test_encapsulateField_OK_noType() { 1433 void test_encapsulateField_OK_noType() {
1425 resolveTestUnit(''' 1434 resolveTestUnit('''
1426 class A { 1435 class A {
1427 var test = 42; 1436 var test = 42;
1428 } 1437 }
1429 main(A a) { 1438 main(A a) {
1430 print(a.test); 1439 print(a.test);
1431 } 1440 }
1432 '''); 1441 ''');
1433 assertHasAssistAt('test = 42', AssistKind.ENCAPSULATE_FIELD, ''' 1442 assertHasAssistAt('test = 42', DartAssistKind.ENCAPSULATE_FIELD, '''
1434 class A { 1443 class A {
1435 var _test = 42; 1444 var _test = 42;
1436 1445
1437 get test => _test; 1446 get test => _test;
1438 1447
1439 void set test(test) { 1448 void set test(test) {
1440 _test = test; 1449 _test = test;
1441 } 1450 }
1442 } 1451 }
1443 main(A a) { 1452 main(A a) {
1444 print(a.test); 1453 print(a.test);
1445 } 1454 }
1446 '''); 1455 ''');
1447 } 1456 }
1448 1457
1449 void test_exchangeBinaryExpressionArguments_OK_compare() { 1458 void test_exchangeBinaryExpressionArguments_OK_compare() {
1450 Map<String, String> operatorMap = { 1459 Map<String, String> operatorMap = {
1451 '<': '>', 1460 '<': '>',
1452 '<=': '>=', 1461 '<=': '>=',
1453 '>': '<', 1462 '>': '<',
1454 '>=': '<=' 1463 '>=': '<='
1455 }; 1464 };
1456 operatorMap.forEach((initialOperator, resultOperator) { 1465 operatorMap.forEach((initialOperator, resultOperator) {
1457 resolveTestUnit(''' 1466 resolveTestUnit('''
1458 bool main(int a, int b) { 1467 bool main(int a, int b) {
1459 return a $initialOperator b; 1468 return a $initialOperator b;
1460 } 1469 }
1461 '''); 1470 ''');
1462 assertHasAssistAt(initialOperator, AssistKind.EXCHANGE_OPERANDS, ''' 1471 assertHasAssistAt(initialOperator, DartAssistKind.EXCHANGE_OPERANDS, '''
1463 bool main(int a, int b) { 1472 bool main(int a, int b) {
1464 return b $resultOperator a; 1473 return b $resultOperator a;
1465 } 1474 }
1466 '''); 1475 ''');
1467 }); 1476 });
1468 } 1477 }
1469 1478
1470 void test_exchangeBinaryExpressionArguments_OK_extended_mixOperator_1() { 1479 void test_exchangeBinaryExpressionArguments_OK_extended_mixOperator_1() {
1471 resolveTestUnit(''' 1480 resolveTestUnit('''
1472 main() { 1481 main() {
1473 1 * 2 * 3 + 4; 1482 1 * 2 * 3 + 4;
1474 } 1483 }
1475 '''); 1484 ''');
1476 assertHasAssistAt('* 2', AssistKind.EXCHANGE_OPERANDS, ''' 1485 assertHasAssistAt('* 2', DartAssistKind.EXCHANGE_OPERANDS, '''
1477 main() { 1486 main() {
1478 2 * 3 * 1 + 4; 1487 2 * 3 * 1 + 4;
1479 } 1488 }
1480 '''); 1489 ''');
1481 } 1490 }
1482 1491
1483 void test_exchangeBinaryExpressionArguments_OK_extended_mixOperator_2() { 1492 void test_exchangeBinaryExpressionArguments_OK_extended_mixOperator_2() {
1484 resolveTestUnit(''' 1493 resolveTestUnit('''
1485 main() { 1494 main() {
1486 1 + 2 - 3 + 4; 1495 1 + 2 - 3 + 4;
1487 } 1496 }
1488 '''); 1497 ''');
1489 assertHasAssistAt('+ 2', AssistKind.EXCHANGE_OPERANDS, ''' 1498 assertHasAssistAt('+ 2', DartAssistKind.EXCHANGE_OPERANDS, '''
1490 main() { 1499 main() {
1491 2 + 1 - 3 + 4; 1500 2 + 1 - 3 + 4;
1492 } 1501 }
1493 '''); 1502 ''');
1494 } 1503 }
1495 1504
1496 void test_exchangeBinaryExpressionArguments_OK_extended_sameOperator_afterFirs t() { 1505 void test_exchangeBinaryExpressionArguments_OK_extended_sameOperator_afterFirs t() {
1497 resolveTestUnit(''' 1506 resolveTestUnit('''
1498 main() { 1507 main() {
1499 1 + 2 + 3; 1508 1 + 2 + 3;
1500 } 1509 }
1501 '''); 1510 ''');
1502 assertHasAssistAt('+ 2', AssistKind.EXCHANGE_OPERANDS, ''' 1511 assertHasAssistAt('+ 2', DartAssistKind.EXCHANGE_OPERANDS, '''
1503 main() { 1512 main() {
1504 2 + 3 + 1; 1513 2 + 3 + 1;
1505 } 1514 }
1506 '''); 1515 ''');
1507 } 1516 }
1508 1517
1509 void test_exchangeBinaryExpressionArguments_OK_extended_sameOperator_afterSeco nd() { 1518 void test_exchangeBinaryExpressionArguments_OK_extended_sameOperator_afterSeco nd() {
1510 resolveTestUnit(''' 1519 resolveTestUnit('''
1511 main() { 1520 main() {
1512 1 + 2 + 3; 1521 1 + 2 + 3;
1513 } 1522 }
1514 '''); 1523 ''');
1515 assertHasAssistAt('+ 3', AssistKind.EXCHANGE_OPERANDS, ''' 1524 assertHasAssistAt('+ 3', DartAssistKind.EXCHANGE_OPERANDS, '''
1516 main() { 1525 main() {
1517 3 + 1 + 2; 1526 3 + 1 + 2;
1518 } 1527 }
1519 '''); 1528 ''');
1520 } 1529 }
1521 1530
1522 void test_exchangeBinaryExpressionArguments_OK_simple_afterOperator() { 1531 void test_exchangeBinaryExpressionArguments_OK_simple_afterOperator() {
1523 resolveTestUnit(''' 1532 resolveTestUnit('''
1524 main() { 1533 main() {
1525 1 + 2; 1534 1 + 2;
1526 } 1535 }
1527 '''); 1536 ''');
1528 assertHasAssistAt(' 2', AssistKind.EXCHANGE_OPERANDS, ''' 1537 assertHasAssistAt(' 2', DartAssistKind.EXCHANGE_OPERANDS, '''
1529 main() { 1538 main() {
1530 2 + 1; 1539 2 + 1;
1531 } 1540 }
1532 '''); 1541 ''');
1533 } 1542 }
1534 1543
1535 void test_exchangeBinaryExpressionArguments_OK_simple_beforeOperator() { 1544 void test_exchangeBinaryExpressionArguments_OK_simple_beforeOperator() {
1536 resolveTestUnit(''' 1545 resolveTestUnit('''
1537 main() { 1546 main() {
1538 1 + 2; 1547 1 + 2;
1539 } 1548 }
1540 '''); 1549 ''');
1541 assertHasAssistAt('+ 2', AssistKind.EXCHANGE_OPERANDS, ''' 1550 assertHasAssistAt('+ 2', DartAssistKind.EXCHANGE_OPERANDS, '''
1542 main() { 1551 main() {
1543 2 + 1; 1552 2 + 1;
1544 } 1553 }
1545 '''); 1554 ''');
1546 } 1555 }
1547 1556
1548 void test_exchangeBinaryExpressionArguments_OK_simple_fullSelection() { 1557 void test_exchangeBinaryExpressionArguments_OK_simple_fullSelection() {
1549 resolveTestUnit(''' 1558 resolveTestUnit('''
1550 main() { 1559 main() {
1551 1 + 2; 1560 1 + 2;
1552 } 1561 }
1553 '''); 1562 ''');
1554 length = '1 + 2'.length; 1563 length = '1 + 2'.length;
1555 assertHasAssistAt('1 + 2', AssistKind.EXCHANGE_OPERANDS, ''' 1564 assertHasAssistAt('1 + 2', DartAssistKind.EXCHANGE_OPERANDS, '''
1556 main() { 1565 main() {
1557 2 + 1; 1566 2 + 1;
1558 } 1567 }
1559 '''); 1568 ''');
1560 } 1569 }
1561 1570
1562 void test_exchangeBinaryExpressionArguments_OK_simple_withLength() { 1571 void test_exchangeBinaryExpressionArguments_OK_simple_withLength() {
1563 resolveTestUnit(''' 1572 resolveTestUnit('''
1564 main() { 1573 main() {
1565 1 + 2; 1574 1 + 2;
1566 } 1575 }
1567 '''); 1576 ''');
1568 length = 2; 1577 length = 2;
1569 assertHasAssistAt('+ 2', AssistKind.EXCHANGE_OPERANDS, ''' 1578 assertHasAssistAt('+ 2', DartAssistKind.EXCHANGE_OPERANDS, '''
1570 main() { 1579 main() {
1571 2 + 1; 1580 2 + 1;
1572 } 1581 }
1573 '''); 1582 ''');
1574 } 1583 }
1575 1584
1576 void test_exchangeBinaryExpressionArguments_wrong_extraLength() { 1585 void test_exchangeBinaryExpressionArguments_wrong_extraLength() {
1577 resolveTestUnit(''' 1586 resolveTestUnit('''
1578 main() { 1587 main() {
1579 111 + 222; 1588 111 + 222;
1580 } 1589 }
1581 '''); 1590 ''');
1582 length = 3; 1591 length = 3;
1583 assertNoAssistAt('+ 222', AssistKind.EXCHANGE_OPERANDS); 1592 assertNoAssistAt('+ 222', DartAssistKind.EXCHANGE_OPERANDS);
1584 } 1593 }
1585 1594
1586 void test_exchangeBinaryExpressionArguments_wrong_onOperand() { 1595 void test_exchangeBinaryExpressionArguments_wrong_onOperand() {
1587 resolveTestUnit(''' 1596 resolveTestUnit('''
1588 main() { 1597 main() {
1589 111 + 222; 1598 111 + 222;
1590 } 1599 }
1591 '''); 1600 ''');
1592 length = 3; 1601 length = 3;
1593 assertNoAssistAt('11 +', AssistKind.EXCHANGE_OPERANDS); 1602 assertNoAssistAt('11 +', DartAssistKind.EXCHANGE_OPERANDS);
1594 } 1603 }
1595 1604
1596 void test_exchangeBinaryExpressionArguments_wrong_selectionWithBinary() { 1605 void test_exchangeBinaryExpressionArguments_wrong_selectionWithBinary() {
1597 resolveTestUnit(''' 1606 resolveTestUnit('''
1598 main() { 1607 main() {
1599 1 + 2 + 3; 1608 1 + 2 + 3;
1600 } 1609 }
1601 '''); 1610 ''');
1602 length = '1 + 2 + 3'.length; 1611 length = '1 + 2 + 3'.length;
1603 assertNoAssistAt('1 + 2 + 3', AssistKind.EXCHANGE_OPERANDS); 1612 assertNoAssistAt('1 + 2 + 3', DartAssistKind.EXCHANGE_OPERANDS);
1604 } 1613 }
1605 1614
1606 void test_importAddShow_BAD_hasShow() { 1615 void test_importAddShow_BAD_hasShow() {
1607 resolveTestUnit(''' 1616 resolveTestUnit('''
1608 import 'dart:math' show PI; 1617 import 'dart:math' show PI;
1609 main() { 1618 main() {
1610 PI; 1619 PI;
1611 } 1620 }
1612 '''); 1621 ''');
1613 assertNoAssistAt('import ', AssistKind.IMPORT_ADD_SHOW); 1622 assertNoAssistAt('import ', DartAssistKind.IMPORT_ADD_SHOW);
1614 } 1623 }
1615 1624
1616 void test_importAddShow_BAD_unresolvedUri() { 1625 void test_importAddShow_BAD_unresolvedUri() {
1617 resolveTestUnit(''' 1626 resolveTestUnit('''
1618 import '/no/such/lib.dart'; 1627 import '/no/such/lib.dart';
1619 '''); 1628 ''');
1620 assertNoAssistAt('import ', AssistKind.IMPORT_ADD_SHOW); 1629 assertNoAssistAt('import ', DartAssistKind.IMPORT_ADD_SHOW);
1621 } 1630 }
1622 1631
1623 void test_importAddShow_BAD_unused() { 1632 void test_importAddShow_BAD_unused() {
1624 resolveTestUnit(''' 1633 resolveTestUnit('''
1625 import 'dart:math'; 1634 import 'dart:math';
1626 '''); 1635 ''');
1627 assertNoAssistAt('import ', AssistKind.IMPORT_ADD_SHOW); 1636 assertNoAssistAt('import ', DartAssistKind.IMPORT_ADD_SHOW);
1628 } 1637 }
1629 1638
1630 void test_importAddShow_OK_hasUnresolvedIdentifier() { 1639 void test_importAddShow_OK_hasUnresolvedIdentifier() {
1631 resolveTestUnit(''' 1640 resolveTestUnit('''
1632 import 'dart:math'; 1641 import 'dart:math';
1633 main(x) { 1642 main(x) {
1634 PI; 1643 PI;
1635 return x.foo(); 1644 return x.foo();
1636 } 1645 }
1637 '''); 1646 ''');
1638 assertHasAssistAt('import ', AssistKind.IMPORT_ADD_SHOW, ''' 1647 assertHasAssistAt('import ', DartAssistKind.IMPORT_ADD_SHOW, '''
1639 import 'dart:math' show PI; 1648 import 'dart:math' show PI;
1640 main(x) { 1649 main(x) {
1641 PI; 1650 PI;
1642 return x.foo(); 1651 return x.foo();
1643 } 1652 }
1644 '''); 1653 ''');
1645 } 1654 }
1646 1655
1647 void test_importAddShow_OK_onDirective() { 1656 void test_importAddShow_OK_onDirective() {
1648 resolveTestUnit(''' 1657 resolveTestUnit('''
1649 import 'dart:math'; 1658 import 'dart:math';
1650 main() { 1659 main() {
1651 PI; 1660 PI;
1652 E; 1661 E;
1653 max(1, 2); 1662 max(1, 2);
1654 } 1663 }
1655 '''); 1664 ''');
1656 assertHasAssistAt('import ', AssistKind.IMPORT_ADD_SHOW, ''' 1665 assertHasAssistAt('import ', DartAssistKind.IMPORT_ADD_SHOW, '''
1657 import 'dart:math' show E, PI, max; 1666 import 'dart:math' show E, PI, max;
1658 main() { 1667 main() {
1659 PI; 1668 PI;
1660 E; 1669 E;
1661 max(1, 2); 1670 max(1, 2);
1662 } 1671 }
1663 '''); 1672 ''');
1664 } 1673 }
1665 1674
1666 void test_importAddShow_OK_onUri() { 1675 void test_importAddShow_OK_onUri() {
1667 resolveTestUnit(''' 1676 resolveTestUnit('''
1668 import 'dart:math'; 1677 import 'dart:math';
1669 main() { 1678 main() {
1670 PI; 1679 PI;
1671 E; 1680 E;
1672 max(1, 2); 1681 max(1, 2);
1673 } 1682 }
1674 '''); 1683 ''');
1675 assertHasAssistAt('art:math', AssistKind.IMPORT_ADD_SHOW, ''' 1684 assertHasAssistAt('art:math', DartAssistKind.IMPORT_ADD_SHOW, '''
1676 import 'dart:math' show E, PI, max; 1685 import 'dart:math' show E, PI, max;
1677 main() { 1686 main() {
1678 PI; 1687 PI;
1679 E; 1688 E;
1680 max(1, 2); 1689 max(1, 2);
1681 } 1690 }
1682 '''); 1691 ''');
1683 } 1692 }
1684 1693
1685 void test_introduceLocalTestedType_BAD_notBlock() { 1694 void test_introduceLocalTestedType_BAD_notBlock() {
1686 resolveTestUnit(''' 1695 resolveTestUnit('''
1687 main(p) { 1696 main(p) {
1688 if (p is String) 1697 if (p is String)
1689 print('not a block'); 1698 print('not a block');
1690 } 1699 }
1691 '''); 1700 ''');
1692 assertNoAssistAt('if (p', AssistKind.INTRODUCE_LOCAL_CAST_TYPE); 1701 assertNoAssistAt('if (p', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE);
1693 } 1702 }
1694 1703
1695 void test_introduceLocalTestedType_BAD_notIsExpression() { 1704 void test_introduceLocalTestedType_BAD_notIsExpression() {
1696 resolveTestUnit(''' 1705 resolveTestUnit('''
1697 main(p) { 1706 main(p) {
1698 if (p == null) { 1707 if (p == null) {
1699 } 1708 }
1700 } 1709 }
1701 '''); 1710 ''');
1702 assertNoAssistAt('if (p', AssistKind.INTRODUCE_LOCAL_CAST_TYPE); 1711 assertNoAssistAt('if (p', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE);
1703 } 1712 }
1704 1713
1705 void test_introduceLocalTestedType_OK_if_is() { 1714 void test_introduceLocalTestedType_OK_if_is() {
1706 resolveTestUnit(''' 1715 resolveTestUnit('''
1707 class MyTypeName {} 1716 class MyTypeName {}
1708 main(p) { 1717 main(p) {
1709 if (p is MyTypeName) { 1718 if (p is MyTypeName) {
1710 } 1719 }
1711 p = null; 1720 p = null;
1712 } 1721 }
1713 '''); 1722 ''');
1714 String expected = ''' 1723 String expected = '''
1715 class MyTypeName {} 1724 class MyTypeName {}
1716 main(p) { 1725 main(p) {
1717 if (p is MyTypeName) { 1726 if (p is MyTypeName) {
1718 MyTypeName myTypeName = p; 1727 MyTypeName myTypeName = p;
1719 } 1728 }
1720 p = null; 1729 p = null;
1721 } 1730 }
1722 '''; 1731 ''';
1723 assertHasAssistAt( 1732 assertHasAssistAt(
1724 'is MyType', AssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected); 1733 'is MyType', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected);
1725 _assertLinkedGroup(change.linkedEditGroups[0], [ 1734 _assertLinkedGroup(change.linkedEditGroups[0], [
1726 'myTypeName = ' 1735 'myTypeName = '
1727 ], expectedSuggestions( 1736 ], expectedSuggestions(
1728 LinkedEditSuggestionKind.VARIABLE, ['myTypeName', 'typeName', 'name'])); 1737 LinkedEditSuggestionKind.VARIABLE, ['myTypeName', 'typeName', 'name']));
1729 // another good location 1738 // another good location
1730 assertHasAssistAt('if (p', AssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected); 1739 assertHasAssistAt(
1740 'if (p', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected);
1731 } 1741 }
1732 1742
1733 void test_introduceLocalTestedType_OK_if_isNot() { 1743 void test_introduceLocalTestedType_OK_if_isNot() {
1734 resolveTestUnit(''' 1744 resolveTestUnit('''
1735 class MyTypeName {} 1745 class MyTypeName {}
1736 main(p) { 1746 main(p) {
1737 if (p is! MyTypeName) { 1747 if (p is! MyTypeName) {
1738 return; 1748 return;
1739 } 1749 }
1740 } 1750 }
1741 '''); 1751 ''');
1742 String expected = ''' 1752 String expected = '''
1743 class MyTypeName {} 1753 class MyTypeName {}
1744 main(p) { 1754 main(p) {
1745 if (p is! MyTypeName) { 1755 if (p is! MyTypeName) {
1746 return; 1756 return;
1747 } 1757 }
1748 MyTypeName myTypeName = p; 1758 MyTypeName myTypeName = p;
1749 } 1759 }
1750 '''; 1760 ''';
1751 assertHasAssistAt( 1761 assertHasAssistAt(
1752 'is! MyType', AssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected); 1762 'is! MyType', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected);
1753 _assertLinkedGroup(change.linkedEditGroups[0], [ 1763 _assertLinkedGroup(change.linkedEditGroups[0], [
1754 'myTypeName = ' 1764 'myTypeName = '
1755 ], expectedSuggestions( 1765 ], expectedSuggestions(
1756 LinkedEditSuggestionKind.VARIABLE, ['myTypeName', 'typeName', 'name'])); 1766 LinkedEditSuggestionKind.VARIABLE, ['myTypeName', 'typeName', 'name']));
1757 // another good location 1767 // another good location
1758 assertHasAssistAt('if (p', AssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected); 1768 assertHasAssistAt(
1769 'if (p', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected);
1759 } 1770 }
1760 1771
1761 void test_introduceLocalTestedType_OK_while() { 1772 void test_introduceLocalTestedType_OK_while() {
1762 resolveTestUnit(''' 1773 resolveTestUnit('''
1763 main(p) { 1774 main(p) {
1764 while (p is String) { 1775 while (p is String) {
1765 } 1776 }
1766 p = null; 1777 p = null;
1767 } 1778 }
1768 '''); 1779 ''');
1769 String expected = ''' 1780 String expected = '''
1770 main(p) { 1781 main(p) {
1771 while (p is String) { 1782 while (p is String) {
1772 String s = p; 1783 String s = p;
1773 } 1784 }
1774 p = null; 1785 p = null;
1775 } 1786 }
1776 '''; 1787 ''';
1777 assertHasAssistAt( 1788 assertHasAssistAt(
1778 'is String', AssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected); 1789 'is String', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected);
1779 assertHasAssistAt( 1790 assertHasAssistAt(
1780 'while (p', AssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected); 1791 'while (p', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected);
1781 } 1792 }
1782 1793
1783 void test_invalidSelection() { 1794 void test_invalidSelection() {
1784 resolveTestUnit(''); 1795 resolveTestUnit('');
1785 List<Assist> assists = computeAssists(testUnit, -1, 0); 1796 List<Assist> assists =
1797 computeAssists(plugin, context, testUnit.element.source, -1, 0);
1786 expect(assists, isEmpty); 1798 expect(assists, isEmpty);
1787 } 1799 }
1788 1800
1789 void test_invertIfStatement_blocks() { 1801 void test_invertIfStatement_blocks() {
1790 resolveTestUnit(''' 1802 resolveTestUnit('''
1791 main() { 1803 main() {
1792 if (true) { 1804 if (true) {
1793 0; 1805 0;
1794 } else { 1806 } else {
1795 1; 1807 1;
1796 } 1808 }
1797 } 1809 }
1798 '''); 1810 ''');
1799 assertHasAssistAt('if (', AssistKind.INVERT_IF_STATEMENT, ''' 1811 assertHasAssistAt('if (', DartAssistKind.INVERT_IF_STATEMENT, '''
1800 main() { 1812 main() {
1801 if (false) { 1813 if (false) {
1802 1; 1814 1;
1803 } else { 1815 } else {
1804 0; 1816 0;
1805 } 1817 }
1806 } 1818 }
1807 '''); 1819 ''');
1808 } 1820 }
1809 1821
1810 void test_invertIfStatement_statements() { 1822 void test_invertIfStatement_statements() {
1811 resolveTestUnit(''' 1823 resolveTestUnit('''
1812 main() { 1824 main() {
1813 if (true) 1825 if (true)
1814 0; 1826 0;
1815 else 1827 else
1816 1; 1828 1;
1817 } 1829 }
1818 '''); 1830 ''');
1819 assertHasAssistAt('if (', AssistKind.INVERT_IF_STATEMENT, ''' 1831 assertHasAssistAt('if (', DartAssistKind.INVERT_IF_STATEMENT, '''
1820 main() { 1832 main() {
1821 if (false) 1833 if (false)
1822 1; 1834 1;
1823 else 1835 else
1824 0; 1836 0;
1825 } 1837 }
1826 '''); 1838 ''');
1827 } 1839 }
1828 1840
1829 void test_joinIfStatementInner_OK_conditionAndOr() { 1841 void test_joinIfStatementInner_OK_conditionAndOr() {
1830 resolveTestUnit(''' 1842 resolveTestUnit('''
1831 main() { 1843 main() {
1832 if (1 == 1) { 1844 if (1 == 1) {
1833 if (2 == 2 || 3 == 3) { 1845 if (2 == 2 || 3 == 3) {
1834 print(0); 1846 print(0);
1835 } 1847 }
1836 } 1848 }
1837 } 1849 }
1838 '''); 1850 ''');
1839 assertHasAssistAt('if (1 ==', AssistKind.JOIN_IF_WITH_INNER, ''' 1851 assertHasAssistAt('if (1 ==', DartAssistKind.JOIN_IF_WITH_INNER, '''
1840 main() { 1852 main() {
1841 if (1 == 1 && (2 == 2 || 3 == 3)) { 1853 if (1 == 1 && (2 == 2 || 3 == 3)) {
1842 print(0); 1854 print(0);
1843 } 1855 }
1844 } 1856 }
1845 '''); 1857 ''');
1846 } 1858 }
1847 1859
1848 void test_joinIfStatementInner_OK_conditionInvocation() { 1860 void test_joinIfStatementInner_OK_conditionInvocation() {
1849 resolveTestUnit(''' 1861 resolveTestUnit('''
1850 main() { 1862 main() {
1851 if (isCheck()) { 1863 if (isCheck()) {
1852 if (2 == 2) { 1864 if (2 == 2) {
1853 print(0); 1865 print(0);
1854 } 1866 }
1855 } 1867 }
1856 } 1868 }
1857 bool isCheck() => false; 1869 bool isCheck() => false;
1858 '''); 1870 ''');
1859 assertHasAssistAt('if (isCheck', AssistKind.JOIN_IF_WITH_INNER, ''' 1871 assertHasAssistAt('if (isCheck', DartAssistKind.JOIN_IF_WITH_INNER, '''
1860 main() { 1872 main() {
1861 if (isCheck() && 2 == 2) { 1873 if (isCheck() && 2 == 2) {
1862 print(0); 1874 print(0);
1863 } 1875 }
1864 } 1876 }
1865 bool isCheck() => false; 1877 bool isCheck() => false;
1866 '''); 1878 ''');
1867 } 1879 }
1868 1880
1869 void test_joinIfStatementInner_OK_conditionOrAnd() { 1881 void test_joinIfStatementInner_OK_conditionOrAnd() {
1870 resolveTestUnit(''' 1882 resolveTestUnit('''
1871 main() { 1883 main() {
1872 if (1 == 1 || 2 == 2) { 1884 if (1 == 1 || 2 == 2) {
1873 if (3 == 3) { 1885 if (3 == 3) {
1874 print(0); 1886 print(0);
1875 } 1887 }
1876 } 1888 }
1877 } 1889 }
1878 '''); 1890 ''');
1879 assertHasAssistAt('if (1 ==', AssistKind.JOIN_IF_WITH_INNER, ''' 1891 assertHasAssistAt('if (1 ==', DartAssistKind.JOIN_IF_WITH_INNER, '''
1880 main() { 1892 main() {
1881 if ((1 == 1 || 2 == 2) && 3 == 3) { 1893 if ((1 == 1 || 2 == 2) && 3 == 3) {
1882 print(0); 1894 print(0);
1883 } 1895 }
1884 } 1896 }
1885 '''); 1897 ''');
1886 } 1898 }
1887 1899
1888 void test_joinIfStatementInner_OK_onCondition() { 1900 void test_joinIfStatementInner_OK_onCondition() {
1889 resolveTestUnit(''' 1901 resolveTestUnit('''
1890 main() { 1902 main() {
1891 if (1 == 1) { 1903 if (1 == 1) {
1892 if (2 == 2) { 1904 if (2 == 2) {
1893 print(0); 1905 print(0);
1894 } 1906 }
1895 } 1907 }
1896 } 1908 }
1897 '''); 1909 ''');
1898 assertHasAssistAt('1 ==', AssistKind.JOIN_IF_WITH_INNER, ''' 1910 assertHasAssistAt('1 ==', DartAssistKind.JOIN_IF_WITH_INNER, '''
1899 main() { 1911 main() {
1900 if (1 == 1 && 2 == 2) { 1912 if (1 == 1 && 2 == 2) {
1901 print(0); 1913 print(0);
1902 } 1914 }
1903 } 1915 }
1904 '''); 1916 ''');
1905 } 1917 }
1906 1918
1907 void test_joinIfStatementInner_OK_simpleConditions_block_block() { 1919 void test_joinIfStatementInner_OK_simpleConditions_block_block() {
1908 resolveTestUnit(''' 1920 resolveTestUnit('''
1909 main() { 1921 main() {
1910 if (1 == 1) { 1922 if (1 == 1) {
1911 if (2 == 2) { 1923 if (2 == 2) {
1912 print(0); 1924 print(0);
1913 } 1925 }
1914 } 1926 }
1915 } 1927 }
1916 '''); 1928 ''');
1917 assertHasAssistAt('if (1 ==', AssistKind.JOIN_IF_WITH_INNER, ''' 1929 assertHasAssistAt('if (1 ==', DartAssistKind.JOIN_IF_WITH_INNER, '''
1918 main() { 1930 main() {
1919 if (1 == 1 && 2 == 2) { 1931 if (1 == 1 && 2 == 2) {
1920 print(0); 1932 print(0);
1921 } 1933 }
1922 } 1934 }
1923 '''); 1935 ''');
1924 } 1936 }
1925 1937
1926 void test_joinIfStatementInner_OK_simpleConditions_block_single() { 1938 void test_joinIfStatementInner_OK_simpleConditions_block_single() {
1927 resolveTestUnit(''' 1939 resolveTestUnit('''
1928 main() { 1940 main() {
1929 if (1 == 1) { 1941 if (1 == 1) {
1930 if (2 == 2) 1942 if (2 == 2)
1931 print(0); 1943 print(0);
1932 } 1944 }
1933 } 1945 }
1934 '''); 1946 ''');
1935 assertHasAssistAt('if (1 ==', AssistKind.JOIN_IF_WITH_INNER, ''' 1947 assertHasAssistAt('if (1 ==', DartAssistKind.JOIN_IF_WITH_INNER, '''
1936 main() { 1948 main() {
1937 if (1 == 1 && 2 == 2) { 1949 if (1 == 1 && 2 == 2) {
1938 print(0); 1950 print(0);
1939 } 1951 }
1940 } 1952 }
1941 '''); 1953 ''');
1942 } 1954 }
1943 1955
1944 void test_joinIfStatementInner_OK_simpleConditions_single_blockMulti() { 1956 void test_joinIfStatementInner_OK_simpleConditions_single_blockMulti() {
1945 resolveTestUnit(''' 1957 resolveTestUnit('''
1946 main() { 1958 main() {
1947 if (1 == 1) { 1959 if (1 == 1) {
1948 if (2 == 2) { 1960 if (2 == 2) {
1949 print(1); 1961 print(1);
1950 print(2); 1962 print(2);
1951 print(3); 1963 print(3);
1952 } 1964 }
1953 } 1965 }
1954 } 1966 }
1955 '''); 1967 ''');
1956 assertHasAssistAt('if (1 ==', AssistKind.JOIN_IF_WITH_INNER, ''' 1968 assertHasAssistAt('if (1 ==', DartAssistKind.JOIN_IF_WITH_INNER, '''
1957 main() { 1969 main() {
1958 if (1 == 1 && 2 == 2) { 1970 if (1 == 1 && 2 == 2) {
1959 print(1); 1971 print(1);
1960 print(2); 1972 print(2);
1961 print(3); 1973 print(3);
1962 } 1974 }
1963 } 1975 }
1964 '''); 1976 ''');
1965 } 1977 }
1966 1978
1967 void test_joinIfStatementInner_OK_simpleConditions_single_blockOne() { 1979 void test_joinIfStatementInner_OK_simpleConditions_single_blockOne() {
1968 resolveTestUnit(''' 1980 resolveTestUnit('''
1969 main() { 1981 main() {
1970 if (1 == 1) 1982 if (1 == 1)
1971 if (2 == 2) { 1983 if (2 == 2) {
1972 print(0); 1984 print(0);
1973 } 1985 }
1974 } 1986 }
1975 '''); 1987 ''');
1976 assertHasAssistAt('if (1 ==', AssistKind.JOIN_IF_WITH_INNER, ''' 1988 assertHasAssistAt('if (1 ==', DartAssistKind.JOIN_IF_WITH_INNER, '''
1977 main() { 1989 main() {
1978 if (1 == 1 && 2 == 2) { 1990 if (1 == 1 && 2 == 2) {
1979 print(0); 1991 print(0);
1980 } 1992 }
1981 } 1993 }
1982 '''); 1994 ''');
1983 } 1995 }
1984 1996
1985 void test_joinIfStatementInner_wrong_innerNotIf() { 1997 void test_joinIfStatementInner_wrong_innerNotIf() {
1986 resolveTestUnit(''' 1998 resolveTestUnit('''
1987 main() { 1999 main() {
1988 if (1 == 1) { 2000 if (1 == 1) {
1989 print(0); 2001 print(0);
1990 } 2002 }
1991 } 2003 }
1992 '''); 2004 ''');
1993 assertNoAssistAt('if (1 ==', AssistKind.JOIN_IF_WITH_INNER); 2005 assertNoAssistAt('if (1 ==', DartAssistKind.JOIN_IF_WITH_INNER);
1994 } 2006 }
1995 2007
1996 void test_joinIfStatementInner_wrong_innerWithElse() { 2008 void test_joinIfStatementInner_wrong_innerWithElse() {
1997 resolveTestUnit(''' 2009 resolveTestUnit('''
1998 main() { 2010 main() {
1999 if (1 == 1) { 2011 if (1 == 1) {
2000 if (2 == 2) { 2012 if (2 == 2) {
2001 print(0); 2013 print(0);
2002 } else { 2014 } else {
2003 print(1); 2015 print(1);
2004 } 2016 }
2005 } 2017 }
2006 } 2018 }
2007 '''); 2019 ''');
2008 assertNoAssistAt('if (1 ==', AssistKind.JOIN_IF_WITH_INNER); 2020 assertNoAssistAt('if (1 ==', DartAssistKind.JOIN_IF_WITH_INNER);
2009 } 2021 }
2010 2022
2011 void test_joinIfStatementInner_wrong_targetNotIf() { 2023 void test_joinIfStatementInner_wrong_targetNotIf() {
2012 resolveTestUnit(''' 2024 resolveTestUnit('''
2013 main() { 2025 main() {
2014 print(0); 2026 print(0);
2015 } 2027 }
2016 '''); 2028 ''');
2017 assertNoAssistAt('print', AssistKind.JOIN_IF_WITH_INNER); 2029 assertNoAssistAt('print', DartAssistKind.JOIN_IF_WITH_INNER);
2018 } 2030 }
2019 2031
2020 void test_joinIfStatementInner_wrong_targetWithElse() { 2032 void test_joinIfStatementInner_wrong_targetWithElse() {
2021 resolveTestUnit(''' 2033 resolveTestUnit('''
2022 main() { 2034 main() {
2023 if (1 == 1) { 2035 if (1 == 1) {
2024 if (2 == 2) { 2036 if (2 == 2) {
2025 print(0); 2037 print(0);
2026 } 2038 }
2027 } else { 2039 } else {
2028 print(1); 2040 print(1);
2029 } 2041 }
2030 } 2042 }
2031 '''); 2043 ''');
2032 assertNoAssistAt('if (1 ==', AssistKind.JOIN_IF_WITH_INNER); 2044 assertNoAssistAt('if (1 ==', DartAssistKind.JOIN_IF_WITH_INNER);
2033 } 2045 }
2034 2046
2035 void test_joinIfStatementOuter_OK_conditionAndOr() { 2047 void test_joinIfStatementOuter_OK_conditionAndOr() {
2036 resolveTestUnit(''' 2048 resolveTestUnit('''
2037 main() { 2049 main() {
2038 if (1 == 1) { 2050 if (1 == 1) {
2039 if (2 == 2 || 3 == 3) { 2051 if (2 == 2 || 3 == 3) {
2040 print(0); 2052 print(0);
2041 } 2053 }
2042 } 2054 }
2043 } 2055 }
2044 '''); 2056 ''');
2045 assertHasAssistAt('if (2 ==', AssistKind.JOIN_IF_WITH_OUTER, ''' 2057 assertHasAssistAt('if (2 ==', DartAssistKind.JOIN_IF_WITH_OUTER, '''
2046 main() { 2058 main() {
2047 if (1 == 1 && (2 == 2 || 3 == 3)) { 2059 if (1 == 1 && (2 == 2 || 3 == 3)) {
2048 print(0); 2060 print(0);
2049 } 2061 }
2050 } 2062 }
2051 '''); 2063 ''');
2052 } 2064 }
2053 2065
2054 void test_joinIfStatementOuter_OK_conditionInvocation() { 2066 void test_joinIfStatementOuter_OK_conditionInvocation() {
2055 resolveTestUnit(''' 2067 resolveTestUnit('''
2056 main() { 2068 main() {
2057 if (1 == 1) { 2069 if (1 == 1) {
2058 if (isCheck()) { 2070 if (isCheck()) {
2059 print(0); 2071 print(0);
2060 } 2072 }
2061 } 2073 }
2062 } 2074 }
2063 bool isCheck() => false; 2075 bool isCheck() => false;
2064 '''); 2076 ''');
2065 assertHasAssistAt('if (isCheck', AssistKind.JOIN_IF_WITH_OUTER, ''' 2077 assertHasAssistAt('if (isCheck', DartAssistKind.JOIN_IF_WITH_OUTER, '''
2066 main() { 2078 main() {
2067 if (1 == 1 && isCheck()) { 2079 if (1 == 1 && isCheck()) {
2068 print(0); 2080 print(0);
2069 } 2081 }
2070 } 2082 }
2071 bool isCheck() => false; 2083 bool isCheck() => false;
2072 '''); 2084 ''');
2073 } 2085 }
2074 2086
2075 void test_joinIfStatementOuter_OK_conditionOrAnd() { 2087 void test_joinIfStatementOuter_OK_conditionOrAnd() {
2076 resolveTestUnit(''' 2088 resolveTestUnit('''
2077 main() { 2089 main() {
2078 if (1 == 1 || 2 == 2) { 2090 if (1 == 1 || 2 == 2) {
2079 if (3 == 3) { 2091 if (3 == 3) {
2080 print(0); 2092 print(0);
2081 } 2093 }
2082 } 2094 }
2083 } 2095 }
2084 '''); 2096 ''');
2085 assertHasAssistAt('if (3 == 3', AssistKind.JOIN_IF_WITH_OUTER, ''' 2097 assertHasAssistAt('if (3 == 3', DartAssistKind.JOIN_IF_WITH_OUTER, '''
2086 main() { 2098 main() {
2087 if ((1 == 1 || 2 == 2) && 3 == 3) { 2099 if ((1 == 1 || 2 == 2) && 3 == 3) {
2088 print(0); 2100 print(0);
2089 } 2101 }
2090 } 2102 }
2091 '''); 2103 ''');
2092 } 2104 }
2093 2105
2094 void test_joinIfStatementOuter_OK_onCondition() { 2106 void test_joinIfStatementOuter_OK_onCondition() {
2095 resolveTestUnit(''' 2107 resolveTestUnit('''
2096 main() { 2108 main() {
2097 if (1 == 1) { 2109 if (1 == 1) {
2098 if (2 == 2) { 2110 if (2 == 2) {
2099 print(0); 2111 print(0);
2100 } 2112 }
2101 } 2113 }
2102 } 2114 }
2103 '''); 2115 ''');
2104 assertHasAssistAt('if (2 == 2', AssistKind.JOIN_IF_WITH_OUTER, ''' 2116 assertHasAssistAt('if (2 == 2', DartAssistKind.JOIN_IF_WITH_OUTER, '''
2105 main() { 2117 main() {
2106 if (1 == 1 && 2 == 2) { 2118 if (1 == 1 && 2 == 2) {
2107 print(0); 2119 print(0);
2108 } 2120 }
2109 } 2121 }
2110 '''); 2122 ''');
2111 } 2123 }
2112 2124
2113 void test_joinIfStatementOuter_OK_simpleConditions_block_block() { 2125 void test_joinIfStatementOuter_OK_simpleConditions_block_block() {
2114 resolveTestUnit(''' 2126 resolveTestUnit('''
2115 main() { 2127 main() {
2116 if (1 == 1) { 2128 if (1 == 1) {
2117 if (2 == 2) { 2129 if (2 == 2) {
2118 print(0); 2130 print(0);
2119 } 2131 }
2120 } 2132 }
2121 } 2133 }
2122 '''); 2134 ''');
2123 assertHasAssistAt('if (2 == 2', AssistKind.JOIN_IF_WITH_OUTER, ''' 2135 assertHasAssistAt('if (2 == 2', DartAssistKind.JOIN_IF_WITH_OUTER, '''
2124 main() { 2136 main() {
2125 if (1 == 1 && 2 == 2) { 2137 if (1 == 1 && 2 == 2) {
2126 print(0); 2138 print(0);
2127 } 2139 }
2128 } 2140 }
2129 '''); 2141 ''');
2130 } 2142 }
2131 2143
2132 void test_joinIfStatementOuter_OK_simpleConditions_block_single() { 2144 void test_joinIfStatementOuter_OK_simpleConditions_block_single() {
2133 resolveTestUnit(''' 2145 resolveTestUnit('''
2134 main() { 2146 main() {
2135 if (1 == 1) { 2147 if (1 == 1) {
2136 if (2 == 2) 2148 if (2 == 2)
2137 print(0); 2149 print(0);
2138 } 2150 }
2139 } 2151 }
2140 '''); 2152 ''');
2141 assertHasAssistAt('if (2 == 2', AssistKind.JOIN_IF_WITH_OUTER, ''' 2153 assertHasAssistAt('if (2 == 2', DartAssistKind.JOIN_IF_WITH_OUTER, '''
2142 main() { 2154 main() {
2143 if (1 == 1 && 2 == 2) { 2155 if (1 == 1 && 2 == 2) {
2144 print(0); 2156 print(0);
2145 } 2157 }
2146 } 2158 }
2147 '''); 2159 ''');
2148 } 2160 }
2149 2161
2150 void test_joinIfStatementOuter_OK_simpleConditions_single_blockMulti() { 2162 void test_joinIfStatementOuter_OK_simpleConditions_single_blockMulti() {
2151 resolveTestUnit(''' 2163 resolveTestUnit('''
2152 main() { 2164 main() {
2153 if (1 == 1) { 2165 if (1 == 1) {
2154 if (2 == 2) { 2166 if (2 == 2) {
2155 print(1); 2167 print(1);
2156 print(2); 2168 print(2);
2157 print(3); 2169 print(3);
2158 } 2170 }
2159 } 2171 }
2160 } 2172 }
2161 '''); 2173 ''');
2162 assertHasAssistAt('if (2 == 2', AssistKind.JOIN_IF_WITH_OUTER, ''' 2174 assertHasAssistAt('if (2 == 2', DartAssistKind.JOIN_IF_WITH_OUTER, '''
2163 main() { 2175 main() {
2164 if (1 == 1 && 2 == 2) { 2176 if (1 == 1 && 2 == 2) {
2165 print(1); 2177 print(1);
2166 print(2); 2178 print(2);
2167 print(3); 2179 print(3);
2168 } 2180 }
2169 } 2181 }
2170 '''); 2182 ''');
2171 } 2183 }
2172 2184
2173 void test_joinIfStatementOuter_OK_simpleConditions_single_blockOne() { 2185 void test_joinIfStatementOuter_OK_simpleConditions_single_blockOne() {
2174 resolveTestUnit(''' 2186 resolveTestUnit('''
2175 main() { 2187 main() {
2176 if (1 == 1) 2188 if (1 == 1)
2177 if (2 == 2) { 2189 if (2 == 2) {
2178 print(0); 2190 print(0);
2179 } 2191 }
2180 } 2192 }
2181 '''); 2193 ''');
2182 assertHasAssistAt('if (2 == 2', AssistKind.JOIN_IF_WITH_OUTER, ''' 2194 assertHasAssistAt('if (2 == 2', DartAssistKind.JOIN_IF_WITH_OUTER, '''
2183 main() { 2195 main() {
2184 if (1 == 1 && 2 == 2) { 2196 if (1 == 1 && 2 == 2) {
2185 print(0); 2197 print(0);
2186 } 2198 }
2187 } 2199 }
2188 '''); 2200 ''');
2189 } 2201 }
2190 2202
2191 void test_joinIfStatementOuter_wrong_outerNotIf() { 2203 void test_joinIfStatementOuter_wrong_outerNotIf() {
2192 resolveTestUnit(''' 2204 resolveTestUnit('''
2193 main() { 2205 main() {
2194 if (1 == 1) { 2206 if (1 == 1) {
2195 print(0); 2207 print(0);
2196 } 2208 }
2197 } 2209 }
2198 '''); 2210 ''');
2199 assertNoAssistAt('if (1 == 1', AssistKind.JOIN_IF_WITH_OUTER); 2211 assertNoAssistAt('if (1 == 1', DartAssistKind.JOIN_IF_WITH_OUTER);
2200 } 2212 }
2201 2213
2202 void test_joinIfStatementOuter_wrong_outerWithElse() { 2214 void test_joinIfStatementOuter_wrong_outerWithElse() {
2203 resolveTestUnit(''' 2215 resolveTestUnit('''
2204 main() { 2216 main() {
2205 if (1 == 1) { 2217 if (1 == 1) {
2206 if (2 == 2) { 2218 if (2 == 2) {
2207 print(0); 2219 print(0);
2208 } 2220 }
2209 } else { 2221 } else {
2210 print(1); 2222 print(1);
2211 } 2223 }
2212 } 2224 }
2213 '''); 2225 ''');
2214 assertNoAssistAt('if (2 == 2', AssistKind.JOIN_IF_WITH_OUTER); 2226 assertNoAssistAt('if (2 == 2', DartAssistKind.JOIN_IF_WITH_OUTER);
2215 } 2227 }
2216 2228
2217 void test_joinIfStatementOuter_wrong_targetNotIf() { 2229 void test_joinIfStatementOuter_wrong_targetNotIf() {
2218 resolveTestUnit(''' 2230 resolveTestUnit('''
2219 main() { 2231 main() {
2220 print(0); 2232 print(0);
2221 } 2233 }
2222 '''); 2234 ''');
2223 assertNoAssistAt('print', AssistKind.JOIN_IF_WITH_OUTER); 2235 assertNoAssistAt('print', DartAssistKind.JOIN_IF_WITH_OUTER);
2224 } 2236 }
2225 2237
2226 void test_joinIfStatementOuter_wrong_targetWithElse() { 2238 void test_joinIfStatementOuter_wrong_targetWithElse() {
2227 resolveTestUnit(''' 2239 resolveTestUnit('''
2228 main() { 2240 main() {
2229 if (1 == 1) { 2241 if (1 == 1) {
2230 if (2 == 2) { 2242 if (2 == 2) {
2231 print(0); 2243 print(0);
2232 } else { 2244 } else {
2233 print(1); 2245 print(1);
2234 } 2246 }
2235 } 2247 }
2236 } 2248 }
2237 '''); 2249 ''');
2238 assertNoAssistAt('if (2 == 2', AssistKind.JOIN_IF_WITH_OUTER); 2250 assertNoAssistAt('if (2 == 2', DartAssistKind.JOIN_IF_WITH_OUTER);
2239 } 2251 }
2240 2252
2241 void test_joinVariableDeclaration_onAssignment_OK() { 2253 void test_joinVariableDeclaration_onAssignment_OK() {
2242 resolveTestUnit(''' 2254 resolveTestUnit('''
2243 main() { 2255 main() {
2244 var v; 2256 var v;
2245 v = 1; 2257 v = 1;
2246 } 2258 }
2247 '''); 2259 ''');
2248 assertHasAssistAt('v =', AssistKind.JOIN_VARIABLE_DECLARATION, ''' 2260 assertHasAssistAt('v =', DartAssistKind.JOIN_VARIABLE_DECLARATION, '''
2249 main() { 2261 main() {
2250 var v = 1; 2262 var v = 1;
2251 } 2263 }
2252 '''); 2264 ''');
2253 } 2265 }
2254 2266
2255 void test_joinVariableDeclaration_onAssignment_wrong_hasInitializer() { 2267 void test_joinVariableDeclaration_onAssignment_wrong_hasInitializer() {
2256 resolveTestUnit(''' 2268 resolveTestUnit('''
2257 main() { 2269 main() {
2258 var v = 1; 2270 var v = 1;
2259 v = 2; 2271 v = 2;
2260 } 2272 }
2261 '''); 2273 ''');
2262 assertNoAssistAt('v = 2', AssistKind.JOIN_VARIABLE_DECLARATION); 2274 assertNoAssistAt('v = 2', DartAssistKind.JOIN_VARIABLE_DECLARATION);
2263 } 2275 }
2264 2276
2265 void test_joinVariableDeclaration_onAssignment_wrong_notAdjacent() { 2277 void test_joinVariableDeclaration_onAssignment_wrong_notAdjacent() {
2266 resolveTestUnit(''' 2278 resolveTestUnit('''
2267 main() { 2279 main() {
2268 var v; 2280 var v;
2269 var bar; 2281 var bar;
2270 v = 1; 2282 v = 1;
2271 } 2283 }
2272 '''); 2284 ''');
2273 assertNoAssistAt('v = 1', AssistKind.JOIN_VARIABLE_DECLARATION); 2285 assertNoAssistAt('v = 1', DartAssistKind.JOIN_VARIABLE_DECLARATION);
2274 } 2286 }
2275 2287
2276 void test_joinVariableDeclaration_onAssignment_wrong_notAssignment() { 2288 void test_joinVariableDeclaration_onAssignment_wrong_notAssignment() {
2277 resolveTestUnit(''' 2289 resolveTestUnit('''
2278 main() { 2290 main() {
2279 var v; 2291 var v;
2280 v += 1; 2292 v += 1;
2281 } 2293 }
2282 '''); 2294 ''');
2283 assertNoAssistAt('v += 1', AssistKind.JOIN_VARIABLE_DECLARATION); 2295 assertNoAssistAt('v += 1', DartAssistKind.JOIN_VARIABLE_DECLARATION);
2284 } 2296 }
2285 2297
2286 void test_joinVariableDeclaration_onAssignment_wrong_notDeclaration() { 2298 void test_joinVariableDeclaration_onAssignment_wrong_notDeclaration() {
2287 resolveTestUnit(''' 2299 resolveTestUnit('''
2288 main(var v) { 2300 main(var v) {
2289 v = 1; 2301 v = 1;
2290 } 2302 }
2291 '''); 2303 ''');
2292 assertNoAssistAt('v = 1', AssistKind.JOIN_VARIABLE_DECLARATION); 2304 assertNoAssistAt('v = 1', DartAssistKind.JOIN_VARIABLE_DECLARATION);
2293 } 2305 }
2294 2306
2295 void test_joinVariableDeclaration_onAssignment_wrong_notLeftArgument() { 2307 void test_joinVariableDeclaration_onAssignment_wrong_notLeftArgument() {
2296 resolveTestUnit(''' 2308 resolveTestUnit('''
2297 main() { 2309 main() {
2298 var v; 2310 var v;
2299 1 + v; // marker 2311 1 + v; // marker
2300 } 2312 }
2301 '''); 2313 ''');
2302 assertNoAssistAt('v; // marker', AssistKind.JOIN_VARIABLE_DECLARATION); 2314 assertNoAssistAt('v; // marker', DartAssistKind.JOIN_VARIABLE_DECLARATION);
2303 } 2315 }
2304 2316
2305 void test_joinVariableDeclaration_onAssignment_wrong_notOneVariable() { 2317 void test_joinVariableDeclaration_onAssignment_wrong_notOneVariable() {
2306 resolveTestUnit(''' 2318 resolveTestUnit('''
2307 main() { 2319 main() {
2308 var v, v2; 2320 var v, v2;
2309 v = 1; 2321 v = 1;
2310 } 2322 }
2311 '''); 2323 ''');
2312 assertNoAssistAt('v = 1', AssistKind.JOIN_VARIABLE_DECLARATION); 2324 assertNoAssistAt('v = 1', DartAssistKind.JOIN_VARIABLE_DECLARATION);
2313 } 2325 }
2314 2326
2315 void test_joinVariableDeclaration_onAssignment_wrong_notResolved() { 2327 void test_joinVariableDeclaration_onAssignment_wrong_notResolved() {
2316 verifyNoTestUnitErrors = false; 2328 verifyNoTestUnitErrors = false;
2317 resolveTestUnit(''' 2329 resolveTestUnit('''
2318 main() { 2330 main() {
2319 var v; 2331 var v;
2320 x = 1; 2332 x = 1;
2321 } 2333 }
2322 '''); 2334 ''');
2323 assertNoAssistAt('x = 1', AssistKind.JOIN_VARIABLE_DECLARATION); 2335 assertNoAssistAt('x = 1', DartAssistKind.JOIN_VARIABLE_DECLARATION);
2324 } 2336 }
2325 2337
2326 void test_joinVariableDeclaration_onAssignment_wrong_notSameBlock() { 2338 void test_joinVariableDeclaration_onAssignment_wrong_notSameBlock() {
2327 resolveTestUnit(''' 2339 resolveTestUnit('''
2328 main() { 2340 main() {
2329 var v; 2341 var v;
2330 { 2342 {
2331 v = 1; 2343 v = 1;
2332 } 2344 }
2333 } 2345 }
2334 '''); 2346 ''');
2335 assertNoAssistAt('v = 1', AssistKind.JOIN_VARIABLE_DECLARATION); 2347 assertNoAssistAt('v = 1', DartAssistKind.JOIN_VARIABLE_DECLARATION);
2336 } 2348 }
2337 2349
2338 void test_joinVariableDeclaration_onDeclaration_OK_onName() { 2350 void test_joinVariableDeclaration_onDeclaration_OK_onName() {
2339 resolveTestUnit(''' 2351 resolveTestUnit('''
2340 main() { 2352 main() {
2341 var v; 2353 var v;
2342 v = 1; 2354 v = 1;
2343 } 2355 }
2344 '''); 2356 ''');
2345 assertHasAssistAt('v;', AssistKind.JOIN_VARIABLE_DECLARATION, ''' 2357 assertHasAssistAt('v;', DartAssistKind.JOIN_VARIABLE_DECLARATION, '''
2346 main() { 2358 main() {
2347 var v = 1; 2359 var v = 1;
2348 } 2360 }
2349 '''); 2361 ''');
2350 } 2362 }
2351 2363
2352 void test_joinVariableDeclaration_onDeclaration_OK_onType() { 2364 void test_joinVariableDeclaration_onDeclaration_OK_onType() {
2353 resolveTestUnit(''' 2365 resolveTestUnit('''
2354 main() { 2366 main() {
2355 int v; 2367 int v;
2356 v = 1; 2368 v = 1;
2357 } 2369 }
2358 '''); 2370 ''');
2359 assertHasAssistAt('int v', AssistKind.JOIN_VARIABLE_DECLARATION, ''' 2371 assertHasAssistAt('int v', DartAssistKind.JOIN_VARIABLE_DECLARATION, '''
2360 main() { 2372 main() {
2361 int v = 1; 2373 int v = 1;
2362 } 2374 }
2363 '''); 2375 ''');
2364 } 2376 }
2365 2377
2366 void test_joinVariableDeclaration_onDeclaration_OK_onVar() { 2378 void test_joinVariableDeclaration_onDeclaration_OK_onVar() {
2367 resolveTestUnit(''' 2379 resolveTestUnit('''
2368 main() { 2380 main() {
2369 var v; 2381 var v;
2370 v = 1; 2382 v = 1;
2371 } 2383 }
2372 '''); 2384 ''');
2373 assertHasAssistAt('var v', AssistKind.JOIN_VARIABLE_DECLARATION, ''' 2385 assertHasAssistAt('var v', DartAssistKind.JOIN_VARIABLE_DECLARATION, '''
2374 main() { 2386 main() {
2375 var v = 1; 2387 var v = 1;
2376 } 2388 }
2377 '''); 2389 ''');
2378 } 2390 }
2379 2391
2380 void test_joinVariableDeclaration_onDeclaration_wrong_hasInitializer() { 2392 void test_joinVariableDeclaration_onDeclaration_wrong_hasInitializer() {
2381 resolveTestUnit(''' 2393 resolveTestUnit('''
2382 main() { 2394 main() {
2383 var v = 1; 2395 var v = 1;
2384 v = 2; 2396 v = 2;
2385 } 2397 }
2386 '''); 2398 ''');
2387 assertNoAssistAt('v = 1', AssistKind.JOIN_VARIABLE_DECLARATION); 2399 assertNoAssistAt('v = 1', DartAssistKind.JOIN_VARIABLE_DECLARATION);
2388 } 2400 }
2389 2401
2390 void test_joinVariableDeclaration_onDeclaration_wrong_lastStatement() { 2402 void test_joinVariableDeclaration_onDeclaration_wrong_lastStatement() {
2391 resolveTestUnit(''' 2403 resolveTestUnit('''
2392 main() { 2404 main() {
2393 if (true) 2405 if (true)
2394 var v; 2406 var v;
2395 } 2407 }
2396 '''); 2408 ''');
2397 assertNoAssistAt('v;', AssistKind.JOIN_VARIABLE_DECLARATION); 2409 assertNoAssistAt('v;', DartAssistKind.JOIN_VARIABLE_DECLARATION);
2398 } 2410 }
2399 2411
2400 void test_joinVariableDeclaration_onDeclaration_wrong_nextNotAssignmentExpress ion() { 2412 void test_joinVariableDeclaration_onDeclaration_wrong_nextNotAssignmentExpress ion() {
2401 resolveTestUnit(''' 2413 resolveTestUnit('''
2402 main() { 2414 main() {
2403 var v; 2415 var v;
2404 42; 2416 42;
2405 } 2417 }
2406 '''); 2418 ''');
2407 assertNoAssistAt('v;', AssistKind.JOIN_VARIABLE_DECLARATION); 2419 assertNoAssistAt('v;', DartAssistKind.JOIN_VARIABLE_DECLARATION);
2408 } 2420 }
2409 2421
2410 void test_joinVariableDeclaration_onDeclaration_wrong_nextNotExpressionStateme nt() { 2422 void test_joinVariableDeclaration_onDeclaration_wrong_nextNotExpressionStateme nt() {
2411 resolveTestUnit(''' 2423 resolveTestUnit('''
2412 main() { 2424 main() {
2413 var v; 2425 var v;
2414 if (true) return; 2426 if (true) return;
2415 } 2427 }
2416 '''); 2428 ''');
2417 assertNoAssistAt('v;', AssistKind.JOIN_VARIABLE_DECLARATION); 2429 assertNoAssistAt('v;', DartAssistKind.JOIN_VARIABLE_DECLARATION);
2418 } 2430 }
2419 2431
2420 void test_joinVariableDeclaration_onDeclaration_wrong_nextNotPureAssignment() { 2432 void test_joinVariableDeclaration_onDeclaration_wrong_nextNotPureAssignment() {
2421 resolveTestUnit(''' 2433 resolveTestUnit('''
2422 main() { 2434 main() {
2423 var v; 2435 var v;
2424 v += 1; 2436 v += 1;
2425 } 2437 }
2426 '''); 2438 ''');
2427 assertNoAssistAt('v;', AssistKind.JOIN_VARIABLE_DECLARATION); 2439 assertNoAssistAt('v;', DartAssistKind.JOIN_VARIABLE_DECLARATION);
2428 } 2440 }
2429 2441
2430 void test_joinVariableDeclaration_onDeclaration_wrong_notOneVariable() { 2442 void test_joinVariableDeclaration_onDeclaration_wrong_notOneVariable() {
2431 resolveTestUnit(''' 2443 resolveTestUnit('''
2432 main() { 2444 main() {
2433 var v, v2; 2445 var v, v2;
2434 v = 1; 2446 v = 1;
2435 } 2447 }
2436 '''); 2448 ''');
2437 assertNoAssistAt('v, ', AssistKind.JOIN_VARIABLE_DECLARATION); 2449 assertNoAssistAt('v, ', DartAssistKind.JOIN_VARIABLE_DECLARATION);
2438 } 2450 }
2439 2451
2440 void test_removeTypeAnnotation_classField_OK() { 2452 void test_removeTypeAnnotation_classField_OK() {
2441 resolveTestUnit(''' 2453 resolveTestUnit('''
2442 class A { 2454 class A {
2443 int v = 1; 2455 int v = 1;
2444 } 2456 }
2445 '''); 2457 ''');
2446 assertHasAssistAt('v = ', AssistKind.REMOVE_TYPE_ANNOTATION, ''' 2458 assertHasAssistAt('v = ', DartAssistKind.REMOVE_TYPE_ANNOTATION, '''
2447 class A { 2459 class A {
2448 var v = 1; 2460 var v = 1;
2449 } 2461 }
2450 '''); 2462 ''');
2451 } 2463 }
2452 2464
2453 void test_removeTypeAnnotation_classField_OK_final() { 2465 void test_removeTypeAnnotation_classField_OK_final() {
2454 resolveTestUnit(''' 2466 resolveTestUnit('''
2455 class A { 2467 class A {
2456 final int v = 1; 2468 final int v = 1;
2457 } 2469 }
2458 '''); 2470 ''');
2459 assertHasAssistAt('v = ', AssistKind.REMOVE_TYPE_ANNOTATION, ''' 2471 assertHasAssistAt('v = ', DartAssistKind.REMOVE_TYPE_ANNOTATION, '''
2460 class A { 2472 class A {
2461 final v = 1; 2473 final v = 1;
2462 } 2474 }
2463 '''); 2475 ''');
2464 } 2476 }
2465 2477
2466 void test_removeTypeAnnotation_localVariable_OK() { 2478 void test_removeTypeAnnotation_localVariable_OK() {
2467 resolveTestUnit(''' 2479 resolveTestUnit('''
2468 main() { 2480 main() {
2469 int a = 1, b = 2; 2481 int a = 1, b = 2;
2470 } 2482 }
2471 '''); 2483 ''');
2472 assertHasAssistAt('int ', AssistKind.REMOVE_TYPE_ANNOTATION, ''' 2484 assertHasAssistAt('int ', DartAssistKind.REMOVE_TYPE_ANNOTATION, '''
2473 main() { 2485 main() {
2474 var a = 1, b = 2; 2486 var a = 1, b = 2;
2475 } 2487 }
2476 '''); 2488 ''');
2477 } 2489 }
2478 2490
2479 void test_removeTypeAnnotation_localVariable_OK_const() { 2491 void test_removeTypeAnnotation_localVariable_OK_const() {
2480 resolveTestUnit(''' 2492 resolveTestUnit('''
2481 main() { 2493 main() {
2482 const int v = 1; 2494 const int v = 1;
2483 } 2495 }
2484 '''); 2496 ''');
2485 assertHasAssistAt('int ', AssistKind.REMOVE_TYPE_ANNOTATION, ''' 2497 assertHasAssistAt('int ', DartAssistKind.REMOVE_TYPE_ANNOTATION, '''
2486 main() { 2498 main() {
2487 const v = 1; 2499 const v = 1;
2488 } 2500 }
2489 '''); 2501 ''');
2490 } 2502 }
2491 2503
2492 void test_removeTypeAnnotation_localVariable_OK_final() { 2504 void test_removeTypeAnnotation_localVariable_OK_final() {
2493 resolveTestUnit(''' 2505 resolveTestUnit('''
2494 main() { 2506 main() {
2495 final int v = 1; 2507 final int v = 1;
2496 } 2508 }
2497 '''); 2509 ''');
2498 assertHasAssistAt('int ', AssistKind.REMOVE_TYPE_ANNOTATION, ''' 2510 assertHasAssistAt('int ', DartAssistKind.REMOVE_TYPE_ANNOTATION, '''
2499 main() { 2511 main() {
2500 final v = 1; 2512 final v = 1;
2501 } 2513 }
2502 '''); 2514 ''');
2503 } 2515 }
2504 2516
2505 void test_removeTypeAnnotation_topLevelVariable_OK() { 2517 void test_removeTypeAnnotation_topLevelVariable_OK() {
2506 resolveTestUnit(''' 2518 resolveTestUnit('''
2507 int V = 1; 2519 int V = 1;
2508 '''); 2520 ''');
2509 assertHasAssistAt('int ', AssistKind.REMOVE_TYPE_ANNOTATION, ''' 2521 assertHasAssistAt('int ', DartAssistKind.REMOVE_TYPE_ANNOTATION, '''
2510 var V = 1; 2522 var V = 1;
2511 '''); 2523 ''');
2512 } 2524 }
2513 2525
2514 void test_removeTypeAnnotation_topLevelVariable_OK_final() { 2526 void test_removeTypeAnnotation_topLevelVariable_OK_final() {
2515 resolveTestUnit(''' 2527 resolveTestUnit('''
2516 final int V = 1; 2528 final int V = 1;
2517 '''); 2529 ''');
2518 assertHasAssistAt('int ', AssistKind.REMOVE_TYPE_ANNOTATION, ''' 2530 assertHasAssistAt('int ', DartAssistKind.REMOVE_TYPE_ANNOTATION, '''
2519 final V = 1; 2531 final V = 1;
2520 '''); 2532 ''');
2521 } 2533 }
2522 2534
2523 void test_replaceConditionalWithIfElse_OK_assignment() { 2535 void test_replaceConditionalWithIfElse_OK_assignment() {
2524 resolveTestUnit(''' 2536 resolveTestUnit('''
2525 main() { 2537 main() {
2526 var v; 2538 var v;
2527 v = true ? 111 : 222; 2539 v = true ? 111 : 222;
2528 } 2540 }
2529 '''); 2541 ''');
2530 // on conditional 2542 // on conditional
2531 assertHasAssistAt('11 :', AssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE, ''' 2543 assertHasAssistAt('11 :', DartAssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE,
2544 '''
2532 main() { 2545 main() {
2533 var v; 2546 var v;
2534 if (true) { 2547 if (true) {
2535 v = 111; 2548 v = 111;
2536 } else { 2549 } else {
2537 v = 222; 2550 v = 222;
2538 } 2551 }
2539 } 2552 }
2540 '''); 2553 ''');
2541 // on variable 2554 // on variable
2542 assertHasAssistAt('v =', AssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE, ''' 2555 assertHasAssistAt('v =', DartAssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE,
2556 '''
2543 main() { 2557 main() {
2544 var v; 2558 var v;
2545 if (true) { 2559 if (true) {
2546 v = 111; 2560 v = 111;
2547 } else { 2561 } else {
2548 v = 222; 2562 v = 222;
2549 } 2563 }
2550 } 2564 }
2551 '''); 2565 ''');
2552 } 2566 }
2553 2567
2554 void test_replaceConditionalWithIfElse_OK_return() { 2568 void test_replaceConditionalWithIfElse_OK_return() {
2555 resolveTestUnit(''' 2569 resolveTestUnit('''
2556 main() { 2570 main() {
2557 return true ? 111 : 222; 2571 return true ? 111 : 222;
2558 } 2572 }
2559 '''); 2573 ''');
2560 assertHasAssistAt('return ', AssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE, 2574 assertHasAssistAt('return ',
2561 ''' 2575 DartAssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE, '''
2562 main() { 2576 main() {
2563 if (true) { 2577 if (true) {
2564 return 111; 2578 return 111;
2565 } else { 2579 } else {
2566 return 222; 2580 return 222;
2567 } 2581 }
2568 } 2582 }
2569 '''); 2583 ''');
2570 } 2584 }
2571 2585
2572 void test_replaceConditionalWithIfElse_OK_variableDeclaration() { 2586 void test_replaceConditionalWithIfElse_OK_variableDeclaration() {
2573 resolveTestUnit(''' 2587 resolveTestUnit('''
2574 main() { 2588 main() {
2575 int a = 1, vvv = true ? 111 : 222, b = 2; 2589 int a = 1, vvv = true ? 111 : 222, b = 2;
2576 } 2590 }
2577 '''); 2591 ''');
2578 assertHasAssistAt('11 :', AssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE, ''' 2592 assertHasAssistAt('11 :', DartAssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE,
2593 '''
2579 main() { 2594 main() {
2580 int a = 1, vvv, b = 2; 2595 int a = 1, vvv, b = 2;
2581 if (true) { 2596 if (true) {
2582 vvv = 111; 2597 vvv = 111;
2583 } else { 2598 } else {
2584 vvv = 222; 2599 vvv = 222;
2585 } 2600 }
2586 } 2601 }
2587 '''); 2602 ''');
2588 } 2603 }
2589 2604
2590 void test_replaceConditionalWithIfElse_wrong_noEnclosingStatement() { 2605 void test_replaceConditionalWithIfElse_wrong_noEnclosingStatement() {
2591 resolveTestUnit(''' 2606 resolveTestUnit('''
2592 var v = true ? 111 : 222; 2607 var v = true ? 111 : 222;
2593 '''); 2608 ''');
2594 assertNoAssistAt('? 111', AssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE); 2609 assertNoAssistAt('? 111', DartAssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE);
2595 } 2610 }
2596 2611
2597 void test_replaceConditionalWithIfElse_wrong_notConditional() { 2612 void test_replaceConditionalWithIfElse_wrong_notConditional() {
2598 resolveTestUnit(''' 2613 resolveTestUnit('''
2599 main() { 2614 main() {
2600 var v = 42; 2615 var v = 42;
2601 } 2616 }
2602 '''); 2617 ''');
2603 assertNoAssistAt('v = 42', AssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE); 2618 assertNoAssistAt('v = 42', DartAssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE);
2604 } 2619 }
2605 2620
2606 void test_replaceIfElseWithConditional_OK_assignment() { 2621 void test_replaceIfElseWithConditional_OK_assignment() {
2607 resolveTestUnit(''' 2622 resolveTestUnit('''
2608 main() { 2623 main() {
2609 int vvv; 2624 int vvv;
2610 if (true) { 2625 if (true) {
2611 vvv = 111; 2626 vvv = 111;
2612 } else { 2627 } else {
2613 vvv = 222; 2628 vvv = 222;
2614 } 2629 }
2615 } 2630 }
2616 '''); 2631 ''');
2617 assertHasAssistAt('if (true)', AssistKind.REPLACE_IF_ELSE_WITH_CONDITIONAL, 2632 assertHasAssistAt('if (true)',
2618 ''' 2633 DartAssistKind.REPLACE_IF_ELSE_WITH_CONDITIONAL, '''
2619 main() { 2634 main() {
2620 int vvv; 2635 int vvv;
2621 vvv = true ? 111 : 222; 2636 vvv = true ? 111 : 222;
2622 } 2637 }
2623 '''); 2638 ''');
2624 } 2639 }
2625 2640
2626 void test_replaceIfElseWithConditional_OK_return() { 2641 void test_replaceIfElseWithConditional_OK_return() {
2627 resolveTestUnit(''' 2642 resolveTestUnit('''
2628 main() { 2643 main() {
2629 if (true) { 2644 if (true) {
2630 return 111; 2645 return 111;
2631 } else { 2646 } else {
2632 return 222; 2647 return 222;
2633 } 2648 }
2634 } 2649 }
2635 '''); 2650 ''');
2636 assertHasAssistAt('if (true)', AssistKind.REPLACE_IF_ELSE_WITH_CONDITIONAL, 2651 assertHasAssistAt('if (true)',
2637 ''' 2652 DartAssistKind.REPLACE_IF_ELSE_WITH_CONDITIONAL, '''
2638 main() { 2653 main() {
2639 return true ? 111 : 222; 2654 return true ? 111 : 222;
2640 } 2655 }
2641 '''); 2656 ''');
2642 } 2657 }
2643 2658
2644 void test_replaceIfElseWithConditional_wrong_expressionVsReturn() { 2659 void test_replaceIfElseWithConditional_wrong_expressionVsReturn() {
2645 resolveTestUnit(''' 2660 resolveTestUnit('''
2646 main() { 2661 main() {
2647 if (true) { 2662 if (true) {
2648 print(42); 2663 print(42);
2649 } else { 2664 } else {
2650 return; 2665 return;
2651 } 2666 }
2652 } 2667 }
2653 '''); 2668 ''');
2654 assertNoAssistAt('else', AssistKind.REPLACE_IF_ELSE_WITH_CONDITIONAL); 2669 assertNoAssistAt('else', DartAssistKind.REPLACE_IF_ELSE_WITH_CONDITIONAL);
2655 } 2670 }
2656 2671
2657 void test_replaceIfElseWithConditional_wrong_notIfStatement() { 2672 void test_replaceIfElseWithConditional_wrong_notIfStatement() {
2658 resolveTestUnit(''' 2673 resolveTestUnit('''
2659 main() { 2674 main() {
2660 print(0); 2675 print(0);
2661 } 2676 }
2662 '''); 2677 ''');
2663 assertNoAssistAt('print', AssistKind.REPLACE_IF_ELSE_WITH_CONDITIONAL); 2678 assertNoAssistAt('print', DartAssistKind.REPLACE_IF_ELSE_WITH_CONDITIONAL);
2664 } 2679 }
2665 2680
2666 void test_replaceIfElseWithConditional_wrong_notSingleStatememt() { 2681 void test_replaceIfElseWithConditional_wrong_notSingleStatememt() {
2667 resolveTestUnit(''' 2682 resolveTestUnit('''
2668 main() { 2683 main() {
2669 int vvv; 2684 int vvv;
2670 if (true) { 2685 if (true) {
2671 print(0); 2686 print(0);
2672 vvv = 111; 2687 vvv = 111;
2673 } else { 2688 } else {
2674 print(0); 2689 print(0);
2675 vvv = 222; 2690 vvv = 222;
2676 } 2691 }
2677 } 2692 }
2678 '''); 2693 ''');
2679 assertNoAssistAt('if (true)', AssistKind.REPLACE_IF_ELSE_WITH_CONDITIONAL); 2694 assertNoAssistAt(
2695 'if (true)', DartAssistKind.REPLACE_IF_ELSE_WITH_CONDITIONAL);
2680 } 2696 }
2681 2697
2682 void test_splitAndCondition_OK_innerAndExpression() { 2698 void test_splitAndCondition_OK_innerAndExpression() {
2683 resolveTestUnit(''' 2699 resolveTestUnit('''
2684 main() { 2700 main() {
2685 if (1 == 1 && 2 == 2 && 3 == 3) { 2701 if (1 == 1 && 2 == 2 && 3 == 3) {
2686 print(0); 2702 print(0);
2687 } 2703 }
2688 } 2704 }
2689 '''); 2705 ''');
2690 assertHasAssistAt('&& 2 == 2', AssistKind.SPLIT_AND_CONDITION, ''' 2706 assertHasAssistAt('&& 2 == 2', DartAssistKind.SPLIT_AND_CONDITION, '''
2691 main() { 2707 main() {
2692 if (1 == 1) { 2708 if (1 == 1) {
2693 if (2 == 2 && 3 == 3) { 2709 if (2 == 2 && 3 == 3) {
2694 print(0); 2710 print(0);
2695 } 2711 }
2696 } 2712 }
2697 } 2713 }
2698 '''); 2714 ''');
2699 } 2715 }
2700 2716
2701 void test_splitAndCondition_OK_thenBlock() { 2717 void test_splitAndCondition_OK_thenBlock() {
2702 resolveTestUnit(''' 2718 resolveTestUnit('''
2703 main() { 2719 main() {
2704 if (true && false) { 2720 if (true && false) {
2705 print(0); 2721 print(0);
2706 if (3 == 3) { 2722 if (3 == 3) {
2707 print(1); 2723 print(1);
2708 } 2724 }
2709 } 2725 }
2710 } 2726 }
2711 '''); 2727 ''');
2712 assertHasAssistAt('&& false', AssistKind.SPLIT_AND_CONDITION, ''' 2728 assertHasAssistAt('&& false', DartAssistKind.SPLIT_AND_CONDITION, '''
2713 main() { 2729 main() {
2714 if (true) { 2730 if (true) {
2715 if (false) { 2731 if (false) {
2716 print(0); 2732 print(0);
2717 if (3 == 3) { 2733 if (3 == 3) {
2718 print(1); 2734 print(1);
2719 } 2735 }
2720 } 2736 }
2721 } 2737 }
2722 } 2738 }
2723 '''); 2739 ''');
2724 } 2740 }
2725 2741
2726 void test_splitAndCondition_OK_thenStatement() { 2742 void test_splitAndCondition_OK_thenStatement() {
2727 resolveTestUnit(''' 2743 resolveTestUnit('''
2728 main() { 2744 main() {
2729 if (true && false) 2745 if (true && false)
2730 print(0); 2746 print(0);
2731 } 2747 }
2732 '''); 2748 ''');
2733 assertHasAssistAt('&& false', AssistKind.SPLIT_AND_CONDITION, ''' 2749 assertHasAssistAt('&& false', DartAssistKind.SPLIT_AND_CONDITION, '''
2734 main() { 2750 main() {
2735 if (true) 2751 if (true)
2736 if (false) 2752 if (false)
2737 print(0); 2753 print(0);
2738 } 2754 }
2739 '''); 2755 ''');
2740 } 2756 }
2741 2757
2742 void test_splitAndCondition_wrong() { 2758 void test_splitAndCondition_wrong() {
2743 resolveTestUnit(''' 2759 resolveTestUnit('''
2744 main() { 2760 main() {
2745 if (1 == 1 && 2 == 2) { 2761 if (1 == 1 && 2 == 2) {
2746 print(0); 2762 print(0);
2747 } 2763 }
2748 print(3 == 3 && 4 == 4); 2764 print(3 == 3 && 4 == 4);
2749 } 2765 }
2750 '''); 2766 ''');
2751 // not binary expression 2767 // not binary expression
2752 assertNoAssistAt('main() {', AssistKind.SPLIT_AND_CONDITION); 2768 assertNoAssistAt('main() {', DartAssistKind.SPLIT_AND_CONDITION);
2753 // selection is not empty and includes more than just operator 2769 // selection is not empty and includes more than just operator
2754 { 2770 {
2755 length = 5; 2771 length = 5;
2756 assertNoAssistAt('&& 2 == 2', AssistKind.SPLIT_AND_CONDITION); 2772 assertNoAssistAt('&& 2 == 2', DartAssistKind.SPLIT_AND_CONDITION);
2757 } 2773 }
2758 } 2774 }
2759 2775
2760 void test_splitAndCondition_wrong_hasElse() { 2776 void test_splitAndCondition_wrong_hasElse() {
2761 resolveTestUnit(''' 2777 resolveTestUnit('''
2762 main() { 2778 main() {
2763 if (1 == 1 && 2 == 2) { 2779 if (1 == 1 && 2 == 2) {
2764 print(1); 2780 print(1);
2765 } else { 2781 } else {
2766 print(2); 2782 print(2);
2767 } 2783 }
2768 } 2784 }
2769 '''); 2785 ''');
2770 assertNoAssistAt('&& 2', AssistKind.SPLIT_AND_CONDITION); 2786 assertNoAssistAt('&& 2', DartAssistKind.SPLIT_AND_CONDITION);
2771 } 2787 }
2772 2788
2773 void test_splitAndCondition_wrong_notAnd() { 2789 void test_splitAndCondition_wrong_notAnd() {
2774 resolveTestUnit(''' 2790 resolveTestUnit('''
2775 main() { 2791 main() {
2776 if (1 == 1 || 2 == 2) { 2792 if (1 == 1 || 2 == 2) {
2777 print(0); 2793 print(0);
2778 } 2794 }
2779 } 2795 }
2780 '''); 2796 ''');
2781 assertNoAssistAt('|| 2', AssistKind.SPLIT_AND_CONDITION); 2797 assertNoAssistAt('|| 2', DartAssistKind.SPLIT_AND_CONDITION);
2782 } 2798 }
2783 2799
2784 void test_splitAndCondition_wrong_notPartOfIf() { 2800 void test_splitAndCondition_wrong_notPartOfIf() {
2785 resolveTestUnit(''' 2801 resolveTestUnit('''
2786 main() { 2802 main() {
2787 print(1 == 1 && 2 == 2); 2803 print(1 == 1 && 2 == 2);
2788 } 2804 }
2789 '''); 2805 ''');
2790 assertNoAssistAt('&& 2', AssistKind.SPLIT_AND_CONDITION); 2806 assertNoAssistAt('&& 2', DartAssistKind.SPLIT_AND_CONDITION);
2791 } 2807 }
2792 2808
2793 void test_splitAndCondition_wrong_notTopLevelAnd() { 2809 void test_splitAndCondition_wrong_notTopLevelAnd() {
2794 resolveTestUnit(''' 2810 resolveTestUnit('''
2795 main() { 2811 main() {
2796 if (true || (1 == 1 && 2 == 2)) { 2812 if (true || (1 == 1 && 2 == 2)) {
2797 print(0); 2813 print(0);
2798 } 2814 }
2799 if (true && (3 == 3 && 4 == 4)) { 2815 if (true && (3 == 3 && 4 == 4)) {
2800 print(0); 2816 print(0);
2801 } 2817 }
2802 } 2818 }
2803 '''); 2819 ''');
2804 assertNoAssistAt('&& 2', AssistKind.SPLIT_AND_CONDITION); 2820 assertNoAssistAt('&& 2', DartAssistKind.SPLIT_AND_CONDITION);
2805 assertNoAssistAt('&& 4', AssistKind.SPLIT_AND_CONDITION); 2821 assertNoAssistAt('&& 4', DartAssistKind.SPLIT_AND_CONDITION);
2806 } 2822 }
2807 2823
2808 void test_splitVariableDeclaration_OK_onName() { 2824 void test_splitVariableDeclaration_OK_onName() {
2809 resolveTestUnit(''' 2825 resolveTestUnit('''
2810 main() { 2826 main() {
2811 var v = 1; 2827 var v = 1;
2812 } 2828 }
2813 '''); 2829 ''');
2814 assertHasAssistAt('v =', AssistKind.SPLIT_VARIABLE_DECLARATION, ''' 2830 assertHasAssistAt('v =', DartAssistKind.SPLIT_VARIABLE_DECLARATION, '''
2815 main() { 2831 main() {
2816 var v; 2832 var v;
2817 v = 1; 2833 v = 1;
2818 } 2834 }
2819 '''); 2835 ''');
2820 } 2836 }
2821 2837
2822 void test_splitVariableDeclaration_OK_onType() { 2838 void test_splitVariableDeclaration_OK_onType() {
2823 resolveTestUnit(''' 2839 resolveTestUnit('''
2824 main() { 2840 main() {
2825 int v = 1; 2841 int v = 1;
2826 } 2842 }
2827 '''); 2843 ''');
2828 assertHasAssistAt('int ', AssistKind.SPLIT_VARIABLE_DECLARATION, ''' 2844 assertHasAssistAt('int ', DartAssistKind.SPLIT_VARIABLE_DECLARATION, '''
2829 main() { 2845 main() {
2830 int v; 2846 int v;
2831 v = 1; 2847 v = 1;
2832 } 2848 }
2833 '''); 2849 ''');
2834 } 2850 }
2835 2851
2836 void test_splitVariableDeclaration_OK_onVar() { 2852 void test_splitVariableDeclaration_OK_onVar() {
2837 resolveTestUnit(''' 2853 resolveTestUnit('''
2838 main() { 2854 main() {
2839 var v = 1; 2855 var v = 1;
2840 } 2856 }
2841 '''); 2857 ''');
2842 assertHasAssistAt('var ', AssistKind.SPLIT_VARIABLE_DECLARATION, ''' 2858 assertHasAssistAt('var ', DartAssistKind.SPLIT_VARIABLE_DECLARATION, '''
2843 main() { 2859 main() {
2844 var v; 2860 var v;
2845 v = 1; 2861 v = 1;
2846 } 2862 }
2847 '''); 2863 ''');
2848 } 2864 }
2849 2865
2850 void test_splitVariableDeclaration_wrong_notOneVariable() { 2866 void test_splitVariableDeclaration_wrong_notOneVariable() {
2851 resolveTestUnit(''' 2867 resolveTestUnit('''
2852 main() { 2868 main() {
2853 var v = 1, v2; 2869 var v = 1, v2;
2854 } 2870 }
2855 '''); 2871 ''');
2856 assertNoAssistAt('v = 1', AssistKind.SPLIT_VARIABLE_DECLARATION); 2872 assertNoAssistAt('v = 1', DartAssistKind.SPLIT_VARIABLE_DECLARATION);
2857 } 2873 }
2858 2874
2859 void test_surroundWith_block() { 2875 void test_surroundWith_block() {
2860 resolveTestUnit(''' 2876 resolveTestUnit('''
2861 main() { 2877 main() {
2862 // start 2878 // start
2863 print(0); 2879 print(0);
2864 print(1); 2880 print(1);
2865 // end 2881 // end
2866 } 2882 }
2867 '''); 2883 ''');
2868 _setStartEndSelection(); 2884 _setStartEndSelection();
2869 assertHasAssist(AssistKind.SURROUND_WITH_BLOCK, ''' 2885 assertHasAssist(DartAssistKind.SURROUND_WITH_BLOCK, '''
2870 main() { 2886 main() {
2871 // start 2887 // start
2872 { 2888 {
2873 print(0); 2889 print(0);
2874 print(1); 2890 print(1);
2875 } 2891 }
2876 // end 2892 // end
2877 } 2893 }
2878 '''); 2894 ''');
2879 } 2895 }
2880 2896
2881 void test_surroundWith_doWhile() { 2897 void test_surroundWith_doWhile() {
2882 resolveTestUnit(''' 2898 resolveTestUnit('''
2883 main() { 2899 main() {
2884 // start 2900 // start
2885 print(0); 2901 print(0);
2886 print(1); 2902 print(1);
2887 // end 2903 // end
2888 } 2904 }
2889 '''); 2905 ''');
2890 _setStartEndSelection(); 2906 _setStartEndSelection();
2891 assertHasAssist(AssistKind.SURROUND_WITH_DO_WHILE, ''' 2907 assertHasAssist(DartAssistKind.SURROUND_WITH_DO_WHILE, '''
2892 main() { 2908 main() {
2893 // start 2909 // start
2894 do { 2910 do {
2895 print(0); 2911 print(0);
2896 print(1); 2912 print(1);
2897 } while (condition); 2913 } while (condition);
2898 // end 2914 // end
2899 } 2915 }
2900 '''); 2916 ''');
2901 } 2917 }
2902 2918
2903 void test_surroundWith_for() { 2919 void test_surroundWith_for() {
2904 resolveTestUnit(''' 2920 resolveTestUnit('''
2905 main() { 2921 main() {
2906 // start 2922 // start
2907 print(0); 2923 print(0);
2908 print(1); 2924 print(1);
2909 // end 2925 // end
2910 } 2926 }
2911 '''); 2927 ''');
2912 _setStartEndSelection(); 2928 _setStartEndSelection();
2913 assertHasAssist(AssistKind.SURROUND_WITH_FOR, ''' 2929 assertHasAssist(DartAssistKind.SURROUND_WITH_FOR, '''
2914 main() { 2930 main() {
2915 // start 2931 // start
2916 for (var v = init; condition; increment) { 2932 for (var v = init; condition; increment) {
2917 print(0); 2933 print(0);
2918 print(1); 2934 print(1);
2919 } 2935 }
2920 // end 2936 // end
2921 } 2937 }
2922 '''); 2938 ''');
2923 } 2939 }
2924 2940
2925 void test_surroundWith_forIn() { 2941 void test_surroundWith_forIn() {
2926 resolveTestUnit(''' 2942 resolveTestUnit('''
2927 main() { 2943 main() {
2928 // start 2944 // start
2929 print(0); 2945 print(0);
2930 print(1); 2946 print(1);
2931 // end 2947 // end
2932 } 2948 }
2933 '''); 2949 ''');
2934 _setStartEndSelection(); 2950 _setStartEndSelection();
2935 assertHasAssist(AssistKind.SURROUND_WITH_FOR_IN, ''' 2951 assertHasAssist(DartAssistKind.SURROUND_WITH_FOR_IN, '''
2936 main() { 2952 main() {
2937 // start 2953 // start
2938 for (var item in iterable) { 2954 for (var item in iterable) {
2939 print(0); 2955 print(0);
2940 print(1); 2956 print(1);
2941 } 2957 }
2942 // end 2958 // end
2943 } 2959 }
2944 '''); 2960 ''');
2945 } 2961 }
2946 2962
2947 void test_surroundWith_if() { 2963 void test_surroundWith_if() {
2948 resolveTestUnit(''' 2964 resolveTestUnit('''
2949 main() { 2965 main() {
2950 // start 2966 // start
2951 print(0); 2967 print(0);
2952 print(1); 2968 print(1);
2953 // end 2969 // end
2954 } 2970 }
2955 '''); 2971 ''');
2956 _setStartEndSelection(); 2972 _setStartEndSelection();
2957 assertHasAssist(AssistKind.SURROUND_WITH_IF, ''' 2973 assertHasAssist(DartAssistKind.SURROUND_WITH_IF, '''
2958 main() { 2974 main() {
2959 // start 2975 // start
2960 if (condition) { 2976 if (condition) {
2961 print(0); 2977 print(0);
2962 print(1); 2978 print(1);
2963 } 2979 }
2964 // end 2980 // end
2965 } 2981 }
2966 '''); 2982 ''');
2967 } 2983 }
2968 2984
2969 void test_surroundWith_tryCatch() { 2985 void test_surroundWith_tryCatch() {
2970 resolveTestUnit(''' 2986 resolveTestUnit('''
2971 main() { 2987 main() {
2972 // start 2988 // start
2973 print(0); 2989 print(0);
2974 print(1); 2990 print(1);
2975 // end 2991 // end
2976 } 2992 }
2977 '''); 2993 ''');
2978 _setStartEndSelection(); 2994 _setStartEndSelection();
2979 assertHasAssist(AssistKind.SURROUND_WITH_TRY_CATCH, ''' 2995 assertHasAssist(DartAssistKind.SURROUND_WITH_TRY_CATCH, '''
2980 main() { 2996 main() {
2981 // start 2997 // start
2982 try { 2998 try {
2983 print(0); 2999 print(0);
2984 print(1); 3000 print(1);
2985 } on Exception catch (e) { 3001 } on Exception catch (e) {
2986 // TODO 3002 // TODO
2987 } 3003 }
2988 // end 3004 // end
2989 } 3005 }
2990 '''); 3006 ''');
2991 } 3007 }
2992 3008
2993 void test_surroundWith_tryFinally() { 3009 void test_surroundWith_tryFinally() {
2994 resolveTestUnit(''' 3010 resolveTestUnit('''
2995 main() { 3011 main() {
2996 // start 3012 // start
2997 print(0); 3013 print(0);
2998 print(1); 3014 print(1);
2999 // end 3015 // end
3000 } 3016 }
3001 '''); 3017 ''');
3002 _setStartEndSelection(); 3018 _setStartEndSelection();
3003 assertHasAssist(AssistKind.SURROUND_WITH_TRY_FINALLY, ''' 3019 assertHasAssist(DartAssistKind.SURROUND_WITH_TRY_FINALLY, '''
3004 main() { 3020 main() {
3005 // start 3021 // start
3006 try { 3022 try {
3007 print(0); 3023 print(0);
3008 print(1); 3024 print(1);
3009 } finally { 3025 } finally {
3010 // TODO 3026 // TODO
3011 } 3027 }
3012 // end 3028 // end
3013 } 3029 }
3014 '''); 3030 ''');
3015 } 3031 }
3016 3032
3017 void test_surroundWith_while() { 3033 void test_surroundWith_while() {
3018 resolveTestUnit(''' 3034 resolveTestUnit('''
3019 main() { 3035 main() {
3020 // start 3036 // start
3021 print(0); 3037 print(0);
3022 print(1); 3038 print(1);
3023 // end 3039 // end
3024 } 3040 }
3025 '''); 3041 ''');
3026 _setStartEndSelection(); 3042 _setStartEndSelection();
3027 assertHasAssist(AssistKind.SURROUND_WITH_WHILE, ''' 3043 assertHasAssist(DartAssistKind.SURROUND_WITH_WHILE, '''
3028 main() { 3044 main() {
3029 // start 3045 // start
3030 while (condition) { 3046 while (condition) {
3031 print(0); 3047 print(0);
3032 print(1); 3048 print(1);
3033 } 3049 }
3034 // end 3050 // end
3035 } 3051 }
3036 '''); 3052 ''');
3037 } 3053 }
3038 3054
3039 /** 3055 /**
3040 * Computes assists and verifies that there is an assist of the given kind. 3056 * Computes assists and verifies that there is an assist of the given kind.
3041 */ 3057 */
3042 Assist _assertHasAssist(AssistKind kind) { 3058 Assist _assertHasAssist(AssistKind kind) {
3043 List<Assist> assists = computeAssists(testUnit, offset, length); 3059 List<Assist> assists = computeAssists(
3060 plugin, context, testUnit.element.source, offset, length);
3044 for (Assist assist in assists) { 3061 for (Assist assist in assists) {
3045 if (assist.kind == kind) { 3062 if (assist.kind == kind) {
3046 return assist; 3063 return assist;
3047 } 3064 }
3048 } 3065 }
3049 throw fail('Expected to find assist $kind in\n${assists.join('\n')}'); 3066 throw fail('Expected to find assist $kind in\n${assists.join('\n')}');
3050 } 3067 }
3051 3068
3052 void _assertLinkedGroup(LinkedEditGroup group, List<String> expectedStrings, 3069 void _assertLinkedGroup(LinkedEditGroup group, List<String> expectedStrings,
3053 [List<LinkedEditSuggestion> expectedSuggestions]) { 3070 [List<LinkedEditSuggestion> expectedSuggestions]) {
(...skipping 11 matching lines...) Expand all
3065 positions.add(new Position(testFile, offset)); 3082 positions.add(new Position(testFile, offset));
3066 } 3083 }
3067 return positions; 3084 return positions;
3068 } 3085 }
3069 3086
3070 void _setStartEndSelection() { 3087 void _setStartEndSelection() {
3071 offset = findOffset('// start\n') + '// start\n'.length; 3088 offset = findOffset('// start\n') + '// start\n'.length;
3072 length = findOffset('// end') - offset; 3089 length = findOffset('// end') - offset;
3073 } 3090 }
3074 } 3091 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/lib/src/services/correction/fix_internal.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698