| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library test.services.correction.fix; | 5 library test.services.correction.fix; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 | 8 |
| 9 import 'package:analysis_server/plugin/edit/fix/fix_core.dart'; | 9 import 'package:analysis_server/plugin/edit/fix/fix_core.dart'; |
| 10 import 'package:analysis_server/plugin/edit/fix/fix_dart.dart'; | 10 import 'package:analysis_server/plugin/edit/fix/fix_dart.dart'; |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 70 main() { | 70 main() { |
| 71 bool b = true; | 71 bool b = true; |
| 72 $lineWithTest | 72 $lineWithTest |
| 73 } | 73 } |
| 74 | 74 |
| 75 bool test() { | 75 bool test() { |
| 76 } | 76 } |
| 77 '''); | 77 '''); |
| 78 } | 78 } |
| 79 | 79 |
| 80 assertHasFix(FixKind kind, String expected) async { | 80 assertHasFix(FixKind kind, String expected, {String target}) async { |
| 81 AnalysisError error = await _findErrorToFix(); | 81 AnalysisError error = await _findErrorToFix(); |
| 82 fix = await _assertHasFix(kind, error); | 82 fix = await _assertHasFix(kind, error); |
| 83 change = fix.change; | 83 change = fix.change; |
| 84 |
| 84 // apply to "file" | 85 // apply to "file" |
| 85 List<SourceFileEdit> fileEdits = change.edits; | 86 List<SourceFileEdit> fileEdits = change.edits; |
| 86 expect(fileEdits, hasLength(1)); | 87 expect(fileEdits, hasLength(1)); |
| 88 |
| 89 if (target != null) { |
| 90 expect(target, fileEdits.first.file); |
| 91 } |
| 92 |
| 87 resultCode = SourceEdit.applySequence(testCode, change.edits[0].edits); | 93 resultCode = SourceEdit.applySequence(testCode, change.edits[0].edits); |
| 88 // verify | 94 // verify |
| 89 expect(resultCode, expected); | 95 expect(resultCode, expected); |
| 90 } | 96 } |
| 91 | 97 |
| 92 assertNoFix(FixKind kind) async { | 98 assertNoFix(FixKind kind) async { |
| 93 AnalysisError error = await _findErrorToFix(); | 99 AnalysisError error = await _findErrorToFix(); |
| 94 List<Fix> fixes = await _computeFixes(error); | 100 List<Fix> fixes = await _computeFixes(error); |
| 95 for (Fix fix in fixes) { | 101 for (Fix fix in fixes) { |
| 96 if (fix.kind == kind) { | 102 if (fix.kind == kind) { |
| (...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 422 test(int i) {} | 428 test(int i) {} |
| 423 main() { | 429 main() { |
| 424 test(1); | 430 test(1); |
| 425 } | 431 } |
| 426 } | 432 } |
| 427 '''); | 433 '''); |
| 428 } | 434 } |
| 429 | 435 |
| 430 test_addMissingRequiredArg_cons_single() async { | 436 test_addMissingRequiredArg_cons_single() async { |
| 431 _addMetaPackageSource(); | 437 _addMetaPackageSource(); |
| 432 | 438 addSource( |
| 433 await resolveTestUnit(''' | 439 '/libA.dart', |
| 440 r''' |
| 441 library libA; |
| 434 import 'package:meta/meta.dart'; | 442 import 'package:meta/meta.dart'; |
| 435 | 443 |
| 436 class A { | 444 class A { |
| 437 A({@required int a}) {} | 445 A({@required int a}) {} |
| 438 } | 446 } |
| 447 '''); |
| 448 |
| 449 await resolveTestUnit(''' |
| 450 import 'libA.dart'; |
| 451 |
| 439 main() { | 452 main() { |
| 440 A a = new A(); | 453 A a = new A(); |
| 441 } | 454 } |
| 442 '''); | 455 '''); |
| 443 await assertHasFix( | 456 await assertHasFix( |
| 444 DartFixKind.ADD_MISSING_REQUIRED_ARGUMENT, | 457 DartFixKind.ADD_MISSING_REQUIRED_ARGUMENT, |
| 445 ''' | 458 ''' |
| 446 import 'package:meta/meta.dart'; | 459 import 'libA.dart'; |
| 447 | 460 |
| 448 class A { | |
| 449 A({@required int a}) {} | |
| 450 } | |
| 451 main() { | 461 main() { |
| 452 A a = new A(a: null); | 462 A a = new A(a: null); |
| 453 } | 463 } |
| 454 '''); | 464 ''', |
| 465 target: '/test.dart'); |
| 455 } | 466 } |
| 456 | 467 |
| 457 test_addMissingRequiredArg_multiple() async { | 468 test_addMissingRequiredArg_multiple() async { |
| 458 _addMetaPackageSource(); | 469 _addMetaPackageSource(); |
| 459 | 470 |
| 460 await resolveTestUnit(''' | 471 await resolveTestUnit(''' |
| 461 import 'package:meta/meta.dart'; | 472 import 'package:meta/meta.dart'; |
| 462 | 473 |
| 463 test({@required int a, @required int bcd}) {} | 474 test({@required int a, @required int bcd}) {} |
| 464 main() { | 475 main() { |
| (...skipping 5366 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5831 | 5842 |
| 5832 @override | 5843 @override |
| 5833 final CompilationUnit unit; | 5844 final CompilationUnit unit; |
| 5834 | 5845 |
| 5835 @override | 5846 @override |
| 5836 final AnalysisError error; | 5847 final AnalysisError error; |
| 5837 | 5848 |
| 5838 _DartFixContextImpl(this.resourceProvider, this.getTopLevelDeclarations, | 5849 _DartFixContextImpl(this.resourceProvider, this.getTopLevelDeclarations, |
| 5839 this.analysisContext, this.astProvider, this.unit, this.error); | 5850 this.analysisContext, this.astProvider, this.unit, this.error); |
| 5840 } | 5851 } |
| OLD | NEW |