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

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

Issue 1012623002: Issue 22833. Quick Assist to convert for-each into for-index. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library test.services.correction.assist; 5 library test.services.correction.assist;
6 6
7 import 'package:analysis_server/src/protocol.dart'; 7 import 'package:analysis_server/src/protocol.dart';
8 import 'package:analysis_server/src/services/correction/assist.dart'; 8 import 'package:analysis_server/src/services/correction/assist.dart';
9 import 'package:analyzer/src/generated/source.dart'; 9 import 'package:analyzer/src/generated/source.dart';
10 import 'package:unittest/unittest.dart'; 10 import 'package:unittest/unittest.dart';
(...skipping 828 matching lines...) Expand 10 before | Expand all | Expand 10 after
839 839
840 void test_convertToExpressionBody_wrong_noReturnValue() { 840 void test_convertToExpressionBody_wrong_noReturnValue() {
841 resolveTestUnit(''' 841 resolveTestUnit('''
842 fff() { 842 fff() {
843 return; 843 return;
844 } 844 }
845 '''); 845 ''');
846 assertNoAssistAt('fff()', AssistKind.CONVERT_INTO_EXPRESSION_BODY); 846 assertNoAssistAt('fff()', AssistKind.CONVERT_INTO_EXPRESSION_BODY);
847 } 847 }
848 848
849 void test_convertToForIndex_BAD_bodyNotBlock() {
850 resolveTestUnit('''
851 main(List<String> items) {
852 for (String item in items) print(item);
853 }
854 ''');
855 assertNoAssistAt('for (String', AssistKind.CONVERT_INTO_FOR_INDEX);
856 }
857
858 void test_convertToForIndex_BAD_doesNotDeclareVariable() {
859 resolveTestUnit('''
860 main(List<String> items) {
861 String item;
862 for (item in items) {
863 print(item);
864 }
865 }
866 ''');
867 assertNoAssistAt('for (item', AssistKind.CONVERT_INTO_FOR_INDEX);
868 }
869
870 void test_convertToForIndex_BAD_iterableIsNotVariable() {
871 resolveTestUnit('''
872 main() {
873 for (String item in ['a', 'b', 'c']) {
874 print(item);
875 }
876 }
877 ''');
878 assertNoAssistAt('for (String', AssistKind.CONVERT_INTO_FOR_INDEX);
879 }
880
881 void test_convertToForIndex_BAD_iterableNotList() {
882 resolveTestUnit('''
883 main(Iterable<String> items) {
884 for (String item in items) {
885 print(item);
886 }
887 }
888 ''');
889 assertNoAssistAt('for (String', AssistKind.CONVERT_INTO_FOR_INDEX);
890 }
891
892 void test_convertToForIndex_BAD_usesIJK() {
893 resolveTestUnit('''
894 main(List<String> items) {
895 for (String item in items) {
896 print(item);
897 int i, j, k;
898 }
899 }
900 ''');
901 assertNoAssistAt('for (String', AssistKind.CONVERT_INTO_FOR_INDEX);
902 }
903
904 void test_convertToForIndex_OK_onDeclaredIdentifier_name() {
905 resolveTestUnit('''
906 main(List<String> items) {
907 for (String item in items) {
908 print(item);
909 }
910 }
911 ''');
912 assertHasAssistAt('item in', AssistKind.CONVERT_INTO_FOR_INDEX, '''
913 main(List<String> items) {
914 for (int i = 0; i < items.length; i++) {
915 String item = items[i];
916 print(item);
917 }
918 }
919 ''');
920 }
921
922 void test_convertToForIndex_OK_onDeclaredIdentifier_type() {
923 resolveTestUnit('''
924 main(List<String> items) {
925 for (String item in items) {
926 print(item);
927 }
928 }
929 ''');
930 assertHasAssistAt('tring item', AssistKind.CONVERT_INTO_FOR_INDEX, '''
931 main(List<String> items) {
932 for (int i = 0; i < items.length; i++) {
933 String item = items[i];
934 print(item);
935 }
936 }
937 ''');
938 }
939
940 void test_convertToForIndex_OK_onFor() {
941 resolveTestUnit('''
942 main(List<String> items) {
943 for (String item in items) {
944 print(item);
945 }
946 }
947 ''');
948 assertHasAssistAt('for (String', AssistKind.CONVERT_INTO_FOR_INDEX, '''
949 main(List<String> items) {
950 for (int i = 0; i < items.length; i++) {
951 String item = items[i];
952 print(item);
953 }
954 }
955 ''');
956 }
957
958 void test_convertToForIndex_OK_usesI() {
959 resolveTestUnit('''
960 main(List<String> items) {
961 for (String item in items) {
962 int i = 0;
963 }
964 }
965 ''');
966 assertHasAssistAt('for (String', AssistKind.CONVERT_INTO_FOR_INDEX, '''
967 main(List<String> items) {
968 for (int j = 0; j < items.length; j++) {
969 String item = items[j];
970 int i = 0;
971 }
972 }
973 ''');
974 }
975
976 void test_convertToForIndex_OK_usesIJ() {
977 resolveTestUnit('''
978 main(List<String> items) {
979 for (String item in items) {
980 print(item);
981 int i = 0, j = 1;
982 }
983 }
984 ''');
985 assertHasAssistAt('for (String', AssistKind.CONVERT_INTO_FOR_INDEX, '''
986 main(List<String> items) {
987 for (int k = 0; k < items.length; k++) {
988 String item = items[k];
989 print(item);
990 int i = 0, j = 1;
991 }
992 }
993 ''');
994 }
995
849 void test_convertToIsNot_OK_childOfIs_left() { 996 void test_convertToIsNot_OK_childOfIs_left() {
850 resolveTestUnit(''' 997 resolveTestUnit('''
851 main(p) { 998 main(p) {
852 !(p is String); 999 !(p is String);
853 } 1000 }
854 '''); 1001 ''');
855 assertHasAssistAt('p is', AssistKind.CONVERT_INTO_IS_NOT, ''' 1002 assertHasAssistAt('p is', AssistKind.CONVERT_INTO_IS_NOT, '''
856 main(p) { 1003 main(p) {
857 p is! String; 1004 p is! String;
858 } 1005 }
(...skipping 1773 matching lines...) Expand 10 before | Expand all | Expand 10 after
2632 positions.add(new Position(testFile, offset)); 2779 positions.add(new Position(testFile, offset));
2633 } 2780 }
2634 return positions; 2781 return positions;
2635 } 2782 }
2636 2783
2637 void _setStartEndSelection() { 2784 void _setStartEndSelection() {
2638 offset = findOffset('// start\n') + '// start\n'.length; 2785 offset = findOffset('// start\n') + '// start\n'.length;
2639 length = findOffset('// end') - offset; 2786 length = findOffset('// end') - offset;
2640 } 2787 }
2641 } 2788 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698