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

Side by Side Diff: pkg/analysis_server/test/services/refactoring/extract_method_test.dart

Issue 534123002: Integrate EXTRACT_METHOD refactoring into the server. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 3 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
« no previous file with comments | « pkg/analysis_server/test/edit/refactoring_test.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.refactoring.extract_method; 5 library test.services.refactoring.extract_method;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/src/protocol.dart'; 9 import 'package:analysis_server/src/protocol.dart';
10 import 'package:analysis_server/src/services/refactoring/extract_method.dart'; 10 import 'package:analysis_server/src/services/refactoring/extract_method.dart';
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 int v2 = 2; 369 int v2 = 2;
370 // start 370 // start
371 int a = v1 + v2; // marker 371 int a = v1 + v2; // marker
372 // end 372 // end
373 } 373 }
374 '''); 374 ''');
375 _createRefactoringForStartEndComments(); 375 _createRefactoringForStartEndComments();
376 // update parameters 376 // update parameters
377 return refactoring.checkInitialConditions().then((_) { 377 return refactoring.checkInitialConditions().then((_) {
378 { 378 {
379 var parameters = refactoring.parameters.toList(); 379 var parameters = _getParametersCopy();
380 expect(parameters, hasLength(2)); 380 expect(parameters, hasLength(2));
381 parameters[0].name = 'dup'; 381 parameters[0].name = 'dup';
382 parameters[1].name = 'dup'; 382 parameters[1].name = 'dup';
383 refactoring.parameters = parameters; 383 refactoring.parameters = parameters;
384 } 384 }
385 return _assertFinalConditionsError("Parameter 'dup' already exists"); 385 return _assertFinalConditionsError("Parameter 'dup' already exists");
386 }); 386 });
387 } 387 }
388 388
389 test_bad_parameterName_inUse() { 389 test_bad_parameterName_inUse() {
390 indexTestUnit(''' 390 indexTestUnit('''
391 main() { 391 main() {
392 int v1 = 1; 392 int v1 = 1;
393 int v2 = 2; 393 int v2 = 2;
394 // start 394 // start
395 int a = v1 + v2; // marker 395 int a = v1 + v2; // marker
396 // end 396 // end
397 } 397 }
398 '''); 398 ''');
399 _createRefactoringForStartEndComments(); 399 _createRefactoringForStartEndComments();
400 // update parameters 400 // update parameters
401 return refactoring.checkInitialConditions().then((_) { 401 return refactoring.checkInitialConditions().then((_) {
402 { 402 {
403 var parameters = refactoring.parameters.toList(); 403 var parameters = _getParametersCopy();
404 expect(parameters, hasLength(2)); 404 expect(parameters, hasLength(2));
405 parameters[0].name = 'a'; 405 parameters[0].name = 'a';
406 refactoring.parameters = parameters; 406 refactoring.parameters = parameters;
407 } 407 }
408 return _assertFinalConditionsError( 408 return _assertFinalConditionsError(
409 "'a' is already used as a name in the selected code"); 409 "'a' is already used as a name in the selected code");
410 }); 410 });
411 } 411 }
412 412
413 test_bad_selectionEndsInSomeNode() { 413 test_bad_selectionEndsInSomeNode() {
(...skipping 1142 matching lines...) Expand 10 before | Expand all | Expand 10 after
1556 int v2 = 2; 1556 int v2 = 2;
1557 int v3 = 3; 1557 int v3 = 3;
1558 int a = v1 + v2 + v1; // marker 1558 int a = v1 + v2 + v1; // marker
1559 int b = v2 + v3 + v2; 1559 int b = v2 + v3 + v2;
1560 } 1560 }
1561 '''); 1561 ''');
1562 _createRefactoringForString('v1 + v2 + v1'); 1562 _createRefactoringForString('v1 + v2 + v1');
1563 // apply refactoring 1563 // apply refactoring
1564 return refactoring.checkInitialConditions().then((_) { 1564 return refactoring.checkInitialConditions().then((_) {
1565 { 1565 {
1566 var parameters = refactoring.parameters.toList(); 1566 var parameters = _getParametersCopy();
1567 expect(parameters, hasLength(2)); 1567 expect(parameters, hasLength(2));
1568 expect(parameters[0].name, 'v1'); 1568 expect(parameters[0].name, 'v1');
1569 expect(parameters[1].name, 'v2'); 1569 expect(parameters[1].name, 'v2');
1570 parameters[0].name = 'par1'; 1570 parameters[0].name = 'par1';
1571 parameters[1].name = 'param2'; 1571 parameters[1].name = 'param2';
1572 refactoring.parameters = parameters; 1572 refactoring.parameters = parameters;
1573 } 1573 }
1574 return assertRefactoringFinalConditionsOK().then((_) { 1574 return assertRefactoringFinalConditionsOK().then((_) {
1575 refactoring.createGetter = false; 1575 refactoring.createGetter = false;
1576 return _assertRefactoringChange(''' 1576 return _assertRefactoringChange('''
(...skipping 18 matching lines...) Expand all
1595 int v2 = 2; 1595 int v2 = 2;
1596 int v3 = 3; 1596 int v3 = 3;
1597 int a = v1 + v2; // marker 1597 int a = v1 + v2; // marker
1598 int b = v2 + v3; 1598 int b = v2 + v3;
1599 } 1599 }
1600 '''); 1600 ''');
1601 _createRefactoringForString('v1 + v2'); 1601 _createRefactoringForString('v1 + v2');
1602 // apply refactoring 1602 // apply refactoring
1603 return refactoring.checkInitialConditions().then((_) { 1603 return refactoring.checkInitialConditions().then((_) {
1604 { 1604 {
1605 var parameters = refactoring.parameters.toList(); 1605 var parameters = _getParametersCopy();
1606 expect(parameters, hasLength(2)); 1606 expect(parameters, hasLength(2));
1607 expect(parameters[0].name, 'v1'); 1607 expect(parameters[0].name, 'v1');
1608 expect(parameters[1].name, 'v2'); 1608 expect(parameters[1].name, 'v2');
1609 var parameter = parameters.removeAt(1); 1609 var parameter = parameters.removeAt(1);
1610 parameters.insert(0, parameter); 1610 parameters.insert(0, parameter);
1611 refactoring.parameters = parameters; 1611 refactoring.parameters = parameters;
1612 } 1612 }
1613 return assertRefactoringFinalConditionsOK().then((_) { 1613 return assertRefactoringFinalConditionsOK().then((_) {
1614 refactoring.createGetter = false; 1614 refactoring.createGetter = false;
1615 return _assertRefactoringChange(''' 1615 return _assertRefactoringChange('''
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1656 int v1 = 1; 1656 int v1 = 1;
1657 int v2 = 2; 1657 int v2 = 2;
1658 int v3 = 3; 1658 int v3 = 3;
1659 int a = v1 + v2 + v3; 1659 int a = v1 + v2 + v3;
1660 } 1660 }
1661 '''); 1661 ''');
1662 _createRefactoringForString('v1 + v2 + v3'); 1662 _createRefactoringForString('v1 + v2 + v3');
1663 // apply refactoring 1663 // apply refactoring
1664 return refactoring.checkInitialConditions().then((_) { 1664 return refactoring.checkInitialConditions().then((_) {
1665 { 1665 {
1666 var parameters = refactoring.parameters.toList(); 1666 var parameters = _getParametersCopy();
1667 expect(parameters, hasLength(3)); 1667 expect(parameters, hasLength(3));
1668 expect(parameters[0].name, 'v1'); 1668 expect(parameters[0].name, 'v1');
1669 expect(parameters[1].name, 'v2'); 1669 expect(parameters[1].name, 'v2');
1670 expect(parameters[2].name, 'v3'); 1670 expect(parameters[2].name, 'v3');
1671 parameters[0].type = 'num'; 1671 parameters[0].type = 'num';
1672 parameters[1].type = 'dynamic'; 1672 parameters[1].type = 'dynamic';
1673 parameters[2].type = ''; 1673 parameters[2].type = '';
1674 refactoring.parameters = parameters; 1674 refactoring.parameters = parameters;
1675 } 1675 }
1676 return assertRefactoringFinalConditionsOK().then((_) { 1676 return assertRefactoringFinalConditionsOK().then((_) {
(...skipping 619 matching lines...) Expand 10 before | Expand all | Expand 10 after
2296 int offset = findOffset(search); 2296 int offset = findOffset(search);
2297 int length = search.length; 2297 int length = search.length;
2298 _createRefactoring(offset, length); 2298 _createRefactoring(offset, length);
2299 } 2299 }
2300 2300
2301 void _createRefactoringWithSuffix(String selectionSearch, String suffix) { 2301 void _createRefactoringWithSuffix(String selectionSearch, String suffix) {
2302 int offset = findOffset(selectionSearch + suffix); 2302 int offset = findOffset(selectionSearch + suffix);
2303 int length = selectionSearch.length; 2303 int length = selectionSearch.length;
2304 _createRefactoring(offset, length); 2304 _createRefactoring(offset, length);
2305 } 2305 }
2306
2307 /**
2308 * Returns a deep copy of [refactoring] parameters.
2309 * There was a bug masked by updating parameter instances shared between the
2310 * refactoring and the test.
2311 */
2312 List<RefactoringMethodParameter> _getParametersCopy() {
2313 return refactoring.parameters.map((p) {
2314 return new RefactoringMethodParameter(p.kind, p.type, p.name, id: p.id);
2315 }).toList();
2316 }
2306 } 2317 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/test/edit/refactoring_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698