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.refactoring.extract_local; | 5 library test.services.refactoring.extract_local; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 import 'dart:convert'; | 8 import 'dart:convert'; |
9 | 9 |
10 import 'package:analysis_server/plugin/protocol/protocol.dart'; | 10 import 'package:analysis_server/plugin/protocol/protocol.dart'; |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
143 _createRefactoringForString("c'"); | 143 _createRefactoringForString("c'"); |
144 // apply refactoring | 144 // apply refactoring |
145 return _assertSuccessfulRefactoring(''' | 145 return _assertSuccessfulRefactoring(''' |
146 main() { | 146 main() { |
147 var res = 'abc'; | 147 var res = 'abc'; |
148 var vvv = res; | 148 var vvv = res; |
149 } | 149 } |
150 '''); | 150 '''); |
151 } | 151 } |
152 | 152 |
| 153 test_checkInitialConditions_voidExpression() async { |
| 154 indexTestUnit(''' |
| 155 main() { |
| 156 print(42); |
| 157 } |
| 158 '''); |
| 159 _createRefactoringForString('print'); |
| 160 // check conditions |
| 161 RefactoringStatus status = await refactoring.checkInitialConditions(); |
| 162 assertRefactoringStatus(status, RefactoringProblemSeverity.FATAL, |
| 163 expectedMessage: 'Cannot extract the void expression.'); |
| 164 } |
| 165 |
153 test_checkLocalName() { | 166 test_checkLocalName() { |
154 indexTestUnit(''' | 167 indexTestUnit(''' |
155 main() { | 168 main() { |
156 int a = 1 + 2; | 169 int a = 1 + 2; |
157 } | 170 } |
158 '''); | 171 '''); |
159 _createRefactoringForString('1 + 2'); | 172 _createRefactoringForString('1 + 2'); |
160 expect(refactoring.refactoringName, 'Extract Local Variable'); | 173 expect(refactoring.refactoringName, 'Extract Local Variable'); |
161 // null | 174 // null |
162 refactoring.name = null; | 175 refactoring.name = null; |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
345 } | 358 } |
346 int foo(int x) => x; | 359 int foo(int x) => x; |
347 '''); | 360 '''); |
348 _createRefactoring(testCode.indexOf('11 +'), 0); | 361 _createRefactoring(testCode.indexOf('11 +'), 0); |
349 // check conditions | 362 // check conditions |
350 await refactoring.checkInitialConditions(); | 363 await refactoring.checkInitialConditions(); |
351 List<String> subExpressions = _getCoveringExpressions(); | 364 List<String> subExpressions = _getCoveringExpressions(); |
352 expect(subExpressions, ['111', '111 + 222', 'foo(111 + 222)']); | 365 expect(subExpressions, ['111', '111 + 222', 'foo(111 + 222)']); |
353 } | 366 } |
354 | 367 |
| 368 test_coveringExpressions_inInvocationOfVoidFunction() async { |
| 369 indexTestUnit(''' |
| 370 main() { |
| 371 foo(111 + 222); |
| 372 } |
| 373 void foo(int x) {} |
| 374 '''); |
| 375 _createRefactoring(testCode.indexOf('11 +'), 0); |
| 376 // check conditions |
| 377 await refactoring.checkInitialConditions(); |
| 378 List<String> subExpressions = _getCoveringExpressions(); |
| 379 expect(subExpressions, ['111', '111 + 222']); |
| 380 } |
| 381 |
355 test_coveringExpressions_skipAssignments() async { | 382 test_coveringExpressions_skipAssignments() async { |
356 indexTestUnit(''' | 383 indexTestUnit(''' |
357 main() { | 384 main() { |
358 int v; | 385 int v; |
359 foo(v = 111 + 222); | 386 foo(v = 111 + 222); |
360 } | 387 } |
361 int foo(x) => 42; | 388 int foo(x) => 42; |
362 '''); | 389 '''); |
363 _createRefactoring(testCode.indexOf('11 +'), 0); | 390 _createRefactoring(testCode.indexOf('11 +'), 0); |
364 // check conditions | 391 // check conditions |
(...skipping 772 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1137 List<String> _getCoveringExpressions() { | 1164 List<String> _getCoveringExpressions() { |
1138 List<String> subExpressions = <String>[]; | 1165 List<String> subExpressions = <String>[]; |
1139 for (int i = 0; i < refactoring.coveringExpressionOffsets.length; i++) { | 1166 for (int i = 0; i < refactoring.coveringExpressionOffsets.length; i++) { |
1140 int offset = refactoring.coveringExpressionOffsets[i]; | 1167 int offset = refactoring.coveringExpressionOffsets[i]; |
1141 int length = refactoring.coveringExpressionLengths[i]; | 1168 int length = refactoring.coveringExpressionLengths[i]; |
1142 subExpressions.add(testCode.substring(offset, offset + length)); | 1169 subExpressions.add(testCode.substring(offset, offset + length)); |
1143 } | 1170 } |
1144 return subExpressions; | 1171 return subExpressions; |
1145 } | 1172 } |
1146 } | 1173 } |
OLD | NEW |