| 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.assist; | 5 library test.services.correction.assist; | 
| 6 | 6 | 
| 7 import 'dart:async'; | 7 import 'dart:async'; | 
| 8 | 8 | 
| 9 import 'package:analysis_server/plugin/edit/assist/assist_core.dart'; | 9 import 'package:analysis_server/plugin/edit/assist/assist_core.dart'; | 
| 10 import 'package:analysis_server/plugin/edit/assist/assist_dart.dart'; | 10 import 'package:analysis_server/plugin/edit/assist/assist_dart.dart'; | 
| (...skipping 1018 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1029         ''' | 1029         ''' | 
| 1030 class A { | 1030 class A { | 
| 1031   /// AAAAAAA [int] AAAAAAA | 1031   /// AAAAAAA [int] AAAAAAA | 
| 1032   /// BBBBBBBB BBBB BBBB | 1032   /// BBBBBBBB BBBB BBBB | 
| 1033   /// CCC [A] CCCCCCCCCCC | 1033   /// CCC [A] CCCCCCCCCCC | 
| 1034   mmm() {} | 1034   mmm() {} | 
| 1035 } | 1035 } | 
| 1036 '''); | 1036 '''); | 
| 1037   } | 1037   } | 
| 1038 | 1038 | 
|  | 1039   test_convertFlutterChild_OK_multiLine() async { | 
|  | 1040     _configureFlutterPkg({ | 
|  | 1041       'src/widgets/framework.dart': _flutter_framework_code, | 
|  | 1042     }); | 
|  | 1043     await resolveTestUnit(''' | 
|  | 1044 import 'package:flutter/src/widgets/framework.dart'; | 
|  | 1045 build() { | 
|  | 1046   return new Scaffold( | 
|  | 1047 // start | 
|  | 1048     body: new Center( | 
|  | 1049       /*caret*/child: new Container( | 
|  | 1050         width: 200.0, | 
|  | 1051         height: 300.0, | 
|  | 1052       ), | 
|  | 1053       key: null, | 
|  | 1054     ), | 
|  | 1055 // end | 
|  | 1056   ); | 
|  | 1057 } | 
|  | 1058 '''); | 
|  | 1059     _setCaretLocation(); | 
|  | 1060     await assertHasAssist( | 
|  | 1061         DartAssistKind.CONVERT_FLUTTER_CHILD, | 
|  | 1062         ''' | 
|  | 1063 import 'package:flutter/src/widgets/framework.dart'; | 
|  | 1064 build() { | 
|  | 1065   return new Scaffold( | 
|  | 1066 // start | 
|  | 1067     body: new Center( | 
|  | 1068       /*caret*/children: <Widget>[ | 
|  | 1069         new Container( | 
|  | 1070           width: 200.0, | 
|  | 1071           height: 300.0, | 
|  | 1072         ), | 
|  | 1073       ], | 
|  | 1074       key: null, | 
|  | 1075     ), | 
|  | 1076 // end | 
|  | 1077   ); | 
|  | 1078 } | 
|  | 1079 '''); | 
|  | 1080   } | 
|  | 1081 | 
|  | 1082   test_convertFlutterChild_OK_newlineChild() async { | 
|  | 1083     // This case could occur with deeply nested constructors, common in Flutter. | 
|  | 1084     _configureFlutterPkg({ | 
|  | 1085       'src/widgets/framework.dart': _flutter_framework_code, | 
|  | 1086     }); | 
|  | 1087     await resolveTestUnit(''' | 
|  | 1088 import 'package:flutter/src/widgets/framework.dart'; | 
|  | 1089 build() { | 
|  | 1090   return new Scaffold( | 
|  | 1091 // start | 
|  | 1092     body: new Center( | 
|  | 1093       /*caret*/child: | 
|  | 1094           new Container( | 
|  | 1095         width: 200.0, | 
|  | 1096         height: 300.0, | 
|  | 1097       ), | 
|  | 1098       key: null, | 
|  | 1099     ), | 
|  | 1100 // end | 
|  | 1101   ); | 
|  | 1102 } | 
|  | 1103 '''); | 
|  | 1104     _setCaretLocation(); | 
|  | 1105     await assertHasAssist( | 
|  | 1106         DartAssistKind.CONVERT_FLUTTER_CHILD, | 
|  | 1107         ''' | 
|  | 1108 import 'package:flutter/src/widgets/framework.dart'; | 
|  | 1109 build() { | 
|  | 1110   return new Scaffold( | 
|  | 1111 // start | 
|  | 1112     body: new Center( | 
|  | 1113       /*caret*/children: <Widget>[ | 
|  | 1114         new Container( | 
|  | 1115           width: 200.0, | 
|  | 1116           height: 300.0, | 
|  | 1117         ), | 
|  | 1118       ], | 
|  | 1119       key: null, | 
|  | 1120     ), | 
|  | 1121 // end | 
|  | 1122   ); | 
|  | 1123 } | 
|  | 1124 '''); | 
|  | 1125   } | 
|  | 1126 | 
|  | 1127   test_convertFlutterChild_OK_singleLine() async { | 
|  | 1128     _configureFlutterPkg({ | 
|  | 1129       'src/widgets/framework.dart': _flutter_framework_code, | 
|  | 1130     }); | 
|  | 1131     await resolveTestUnit(''' | 
|  | 1132 import 'package:flutter/src/widgets/framework.dart'; | 
|  | 1133 build() { | 
|  | 1134   return new Scaffold( | 
|  | 1135 // start | 
|  | 1136     body: new Center( | 
|  | 1137       /*caret*/child: new GestureDetector(), | 
|  | 1138       key: null, | 
|  | 1139     ), | 
|  | 1140 // end | 
|  | 1141   ); | 
|  | 1142 } | 
|  | 1143 '''); | 
|  | 1144     _setCaretLocation(); | 
|  | 1145     await assertHasAssist( | 
|  | 1146         DartAssistKind.CONVERT_FLUTTER_CHILD, | 
|  | 1147         ''' | 
|  | 1148 import 'package:flutter/src/widgets/framework.dart'; | 
|  | 1149 build() { | 
|  | 1150   return new Scaffold( | 
|  | 1151 // start | 
|  | 1152     body: new Center( | 
|  | 1153       /*caret*/children: <Widget>[new GestureDetector()], | 
|  | 1154       key: null, | 
|  | 1155     ), | 
|  | 1156 // end | 
|  | 1157   ); | 
|  | 1158 } | 
|  | 1159 '''); | 
|  | 1160   } | 
|  | 1161 | 
| 1039   test_convertToBlockBody_BAD_noEnclosingFunction() async { | 1162   test_convertToBlockBody_BAD_noEnclosingFunction() async { | 
| 1040     await resolveTestUnit(''' | 1163     await resolveTestUnit(''' | 
| 1041 var v = 123; | 1164 var v = 123; | 
| 1042 '''); | 1165 '''); | 
| 1043     await assertNoAssistAt('v =', DartAssistKind.CONVERT_INTO_BLOCK_BODY); | 1166     await assertNoAssistAt('v =', DartAssistKind.CONVERT_INTO_BLOCK_BODY); | 
| 1044   } | 1167   } | 
| 1045 | 1168 | 
| 1046   test_convertToBlockBody_BAD_notExpressionBlock() async { | 1169   test_convertToBlockBody_BAD_notExpressionBlock() async { | 
| 1047     await resolveTestUnit(''' | 1170     await resolveTestUnit(''' | 
| 1048 fff() { | 1171 fff() { | 
| (...skipping 2446 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3495     await assertHasAssistAt( | 3618     await assertHasAssistAt( | 
| 3496         'var v', | 3619         'var v', | 
| 3497         DartAssistKind.JOIN_VARIABLE_DECLARATION, | 3620         DartAssistKind.JOIN_VARIABLE_DECLARATION, | 
| 3498         ''' | 3621         ''' | 
| 3499 main() { | 3622 main() { | 
| 3500   var v = 1; | 3623   var v = 1; | 
| 3501 } | 3624 } | 
| 3502 '''); | 3625 '''); | 
| 3503   } | 3626   } | 
| 3504 | 3627 | 
|  | 3628   test_moveFlutterWidgetDown_OK() async { | 
|  | 3629     _configureFlutterPkg({ | 
|  | 3630       'src/widgets/framework.dart': _flutter_framework_code, | 
|  | 3631     }); | 
|  | 3632     await resolveTestUnit(''' | 
|  | 3633 import 'package:flutter/src/widgets/framework.dart'; | 
|  | 3634 build() { | 
|  | 3635   return new Scaffold( | 
|  | 3636 // start | 
|  | 3637     body: new /*caret*/GestureDetector( | 
|  | 3638       onTap: () => startResize(), | 
|  | 3639       child: new Center( | 
|  | 3640         child: new Container( | 
|  | 3641           width: 200.0, | 
|  | 3642           height: 300.0, | 
|  | 3643         ), | 
|  | 3644         key: null, | 
|  | 3645       ), | 
|  | 3646     ), | 
|  | 3647 // end | 
|  | 3648   ); | 
|  | 3649 } | 
|  | 3650 startResize() {} | 
|  | 3651 '''); | 
|  | 3652     _setCaretLocation(); | 
|  | 3653     await assertHasAssist( | 
|  | 3654         DartAssistKind.MOVE_FLUTTER_WIDGET_DOWN, | 
|  | 3655         ''' | 
|  | 3656 import 'package:flutter/src/widgets/framework.dart'; | 
|  | 3657 build() { | 
|  | 3658   return new Scaffold( | 
|  | 3659 // start | 
|  | 3660     body: new Center( | 
|  | 3661       child: new /*caret*/GestureDetector( | 
|  | 3662         onTap: () => startResize(), | 
|  | 3663         child: new Container( | 
|  | 3664           width: 200.0, | 
|  | 3665           height: 300.0, | 
|  | 3666         ), | 
|  | 3667       ), | 
|  | 3668       key: null, | 
|  | 3669     ), | 
|  | 3670 // end | 
|  | 3671   ); | 
|  | 3672 } | 
|  | 3673 startResize() {} | 
|  | 3674 '''); | 
|  | 3675   } | 
|  | 3676 | 
|  | 3677   test_moveFlutterWidgetUp_OK() async { | 
|  | 3678     _configureFlutterPkg({ | 
|  | 3679       'src/widgets/framework.dart': _flutter_framework_code, | 
|  | 3680     }); | 
|  | 3681     await resolveTestUnit(''' | 
|  | 3682 import 'package:flutter/src/widgets/framework.dart'; | 
|  | 3683 build() { | 
|  | 3684   return new Scaffold( | 
|  | 3685 // start | 
|  | 3686     body: new Center( | 
|  | 3687       child: new /*caret*/GestureDetector( | 
|  | 3688         onTap: () => startResize(), | 
|  | 3689         child: new Container( | 
|  | 3690           width: 200.0, | 
|  | 3691           height: 300.0, | 
|  | 3692         ), | 
|  | 3693       ), | 
|  | 3694       key: null, | 
|  | 3695     ), | 
|  | 3696 // end | 
|  | 3697   ); | 
|  | 3698 } | 
|  | 3699 startResize() {} | 
|  | 3700 '''); | 
|  | 3701     _setCaretLocation(); | 
|  | 3702     await assertHasAssist( | 
|  | 3703         DartAssistKind.MOVE_FLUTTER_WIDGET_UP, | 
|  | 3704         ''' | 
|  | 3705 import 'package:flutter/src/widgets/framework.dart'; | 
|  | 3706 build() { | 
|  | 3707   return new Scaffold( | 
|  | 3708 // start | 
|  | 3709     body: new /*caret*/GestureDetector( | 
|  | 3710       onTap: () => startResize(), | 
|  | 3711       child: new Center( | 
|  | 3712         child: new Container( | 
|  | 3713           width: 200.0, | 
|  | 3714           height: 300.0, | 
|  | 3715         ), | 
|  | 3716         key: null, | 
|  | 3717       ), | 
|  | 3718     ), | 
|  | 3719 // end | 
|  | 3720   ); | 
|  | 3721 } | 
|  | 3722 startResize() {} | 
|  | 3723 '''); | 
|  | 3724   } | 
|  | 3725 | 
| 3505   test_removeTypeAnnotation_classField_OK() async { | 3726   test_removeTypeAnnotation_classField_OK() async { | 
| 3506     await resolveTestUnit(''' | 3727     await resolveTestUnit(''' | 
| 3507 class A { | 3728 class A { | 
| 3508   int v = 1; | 3729   int v = 1; | 
| 3509 } | 3730 } | 
| 3510 '''); | 3731 '''); | 
| 3511     await assertHasAssistAt( | 3732     await assertHasAssistAt( | 
| 3512         'v = ', | 3733         'v = ', | 
| 3513         DartAssistKind.REMOVE_TYPE_ANNOTATION, | 3734         DartAssistKind.REMOVE_TYPE_ANNOTATION, | 
| 3514         ''' | 3735         ''' | 
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3659 // start | 3880 // start | 
| 3660     return new Row(children: [/*caret*/ new Transform()]); | 3881     return new Row(children: [/*caret*/ new Transform()]); | 
| 3661 // end | 3882 // end | 
| 3662   } | 3883   } | 
| 3663 } | 3884 } | 
| 3664 '''); | 3885 '''); | 
| 3665     _setCaretLocation(); | 3886     _setCaretLocation(); | 
| 3666     await assertNoAssist(DartAssistKind.REPARENT_FLUTTER_LIST); | 3887     await assertNoAssist(DartAssistKind.REPARENT_FLUTTER_LIST); | 
| 3667   } | 3888   } | 
| 3668 | 3889 | 
| 3669   test_moveFlutterWidgetDown_OK() async { |  | 
| 3670     _configureFlutterPkg({ |  | 
| 3671       'src/widgets/framework.dart': _flutter_framework_code, |  | 
| 3672     }); |  | 
| 3673     await resolveTestUnit(''' |  | 
| 3674 import 'package:flutter/src/widgets/framework.dart'; |  | 
| 3675 build() { |  | 
| 3676   return new Scaffold( |  | 
| 3677 // start |  | 
| 3678     body: new /*caret*/GestureDetector( |  | 
| 3679       onTap: () => startResize(), |  | 
| 3680       child: new Center( |  | 
| 3681         child: new Container( |  | 
| 3682           width: 200.0, |  | 
| 3683           height: 300.0, |  | 
| 3684         ), |  | 
| 3685         key: null, |  | 
| 3686       ), |  | 
| 3687     ), |  | 
| 3688 // end |  | 
| 3689   ); |  | 
| 3690 } |  | 
| 3691 startResize() {} |  | 
| 3692 '''); |  | 
| 3693     _setCaretLocation(); |  | 
| 3694     await assertHasAssist( |  | 
| 3695         DartAssistKind.MOVE_FLUTTER_WIDGET_DOWN, |  | 
| 3696         ''' |  | 
| 3697 import 'package:flutter/src/widgets/framework.dart'; |  | 
| 3698 build() { |  | 
| 3699   return new Scaffold( |  | 
| 3700 // start |  | 
| 3701     body: new Center( |  | 
| 3702       child: new /*caret*/GestureDetector( |  | 
| 3703         onTap: () => startResize(), |  | 
| 3704         child: new Container( |  | 
| 3705           width: 200.0, |  | 
| 3706           height: 300.0, |  | 
| 3707         ), |  | 
| 3708       ), |  | 
| 3709       key: null, |  | 
| 3710     ), |  | 
| 3711 // end |  | 
| 3712   ); |  | 
| 3713 } |  | 
| 3714 startResize() {} |  | 
| 3715 '''); |  | 
| 3716   } |  | 
| 3717 |  | 
| 3718   test_moveFlutterWidgetUp_OK() async { |  | 
| 3719     _configureFlutterPkg({ |  | 
| 3720       'src/widgets/framework.dart': _flutter_framework_code, |  | 
| 3721     }); |  | 
| 3722     await resolveTestUnit(''' |  | 
| 3723 import 'package:flutter/src/widgets/framework.dart'; |  | 
| 3724 build() { |  | 
| 3725   return new Scaffold( |  | 
| 3726 // start |  | 
| 3727     body: new Center( |  | 
| 3728       child: new /*caret*/GestureDetector( |  | 
| 3729         onTap: () => startResize(), |  | 
| 3730         child: new Container( |  | 
| 3731           width: 200.0, |  | 
| 3732           height: 300.0, |  | 
| 3733         ), |  | 
| 3734       ), |  | 
| 3735       key: null, |  | 
| 3736     ), |  | 
| 3737 // end |  | 
| 3738   ); |  | 
| 3739 } |  | 
| 3740 startResize() {} |  | 
| 3741 '''); |  | 
| 3742     _setCaretLocation(); |  | 
| 3743     await assertHasAssist( |  | 
| 3744         DartAssistKind.MOVE_FLUTTER_WIDGET_UP, |  | 
| 3745         ''' |  | 
| 3746 import 'package:flutter/src/widgets/framework.dart'; |  | 
| 3747 build() { |  | 
| 3748   return new Scaffold( |  | 
| 3749 // start |  | 
| 3750     body: new /*caret*/GestureDetector( |  | 
| 3751       onTap: () => startResize(), |  | 
| 3752       child: new Center( |  | 
| 3753         child: new Container( |  | 
| 3754           width: 200.0, |  | 
| 3755           height: 300.0, |  | 
| 3756         ), |  | 
| 3757         key: null, |  | 
| 3758       ), |  | 
| 3759     ), |  | 
| 3760 // end |  | 
| 3761   ); |  | 
| 3762 } |  | 
| 3763 startResize() {} |  | 
| 3764 '''); |  | 
| 3765   } |  | 
| 3766 |  | 
| 3767   test_reparentFlutterList_OK_multiLine() async { | 3890   test_reparentFlutterList_OK_multiLine() async { | 
| 3768     _configureFlutterPkg({ | 3891     _configureFlutterPkg({ | 
| 3769       'src/widgets/framework.dart': _flutter_framework_code, | 3892       'src/widgets/framework.dart': _flutter_framework_code, | 
| 3770     }); | 3893     }); | 
| 3771     await resolveTestUnit(''' | 3894     await resolveTestUnit(''' | 
| 3772 import 'package:flutter/src/widgets/framework.dart'; | 3895 import 'package:flutter/src/widgets/framework.dart'; | 
| 3773 build() { | 3896 build() { | 
| 3774   return new Container( | 3897   return new Container( | 
| 3775     child: new Row( | 3898     child: new Row( | 
| 3776 // start | 3899 // start | 
| (...skipping 840 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4617 | 4740 | 
| 4618   @override | 4741   @override | 
| 4619   final AnalysisContext analysisContext; | 4742   final AnalysisContext analysisContext; | 
| 4620 | 4743 | 
| 4621   @override | 4744   @override | 
| 4622   final CompilationUnit unit; | 4745   final CompilationUnit unit; | 
| 4623 | 4746 | 
| 4624   _DartAssistContextForValues(this.source, this.selectionOffset, | 4747   _DartAssistContextForValues(this.source, this.selectionOffset, | 
| 4625       this.selectionLength, this.analysisContext, this.unit); | 4748       this.selectionLength, this.analysisContext, this.unit); | 
| 4626 } | 4749 } | 
| OLD | NEW | 
|---|