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

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

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

Powered by Google App Engine
This is Rietveld 408576698