| 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.edit.assists; | 5 library test.edit.assists; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 | 8 |
| 9 import 'package:analysis_server/src/edit/edit_domain.dart'; | 9 import 'package:analysis_server/src/edit/edit_domain.dart'; |
| 10 import 'package:analysis_server/src/protocol.dart'; | 10 import 'package:analysis_server/src/protocol.dart'; |
| 11 import 'package:analysis_server/src/protocol2.dart'; | 11 import 'package:analysis_server/src/protocol2.dart'; |
| 12 import 'package:analysis_server/src/services/correction/change.dart'; | |
| 13 import 'package:analysis_testing/reflective_tests.dart'; | 12 import 'package:analysis_testing/reflective_tests.dart'; |
| 14 import 'package:unittest/unittest.dart' hide ERROR; | 13 import 'package:unittest/unittest.dart' hide ERROR; |
| 15 | 14 |
| 16 import '../analysis_abstract.dart'; | 15 import '../analysis_abstract.dart'; |
| 17 | 16 |
| 18 | 17 |
| 19 main() { | 18 main() { |
| 20 groupSep = ' | '; | 19 groupSep = ' | '; |
| 21 runReflectiveTests(AssistsTest); | 20 runReflectiveTests(AssistsTest); |
| 22 } | 21 } |
| 23 | 22 |
| 24 | 23 |
| 25 @ReflectiveTestCase() | 24 @ReflectiveTestCase() |
| 26 class AssistsTest extends AbstractAnalysisTest { | 25 class AssistsTest extends AbstractAnalysisTest { |
| 27 List<Change> changes; | 26 List<SourceChange> changes; |
| 28 | 27 |
| 29 void prepareAssists(String search, [int length = 0]) { | 28 void prepareAssists(String search, [int length = 0]) { |
| 30 int offset = findOffset(search); | 29 int offset = findOffset(search); |
| 31 prepareAssistsAt(offset, length); | 30 prepareAssistsAt(offset, length); |
| 32 } | 31 } |
| 33 | 32 |
| 34 void prepareAssistsAt(int offset, int length) { | 33 void prepareAssistsAt(int offset, int length) { |
| 35 Request request = new EditGetAssistsParams(testFile, offset, | 34 Request request = new EditGetAssistsParams(testFile, offset, |
| 36 length).toRequest('0'); | 35 length).toRequest('0'); |
| 37 Response response = handleSuccessfulRequest(request); | 36 Response response = handleSuccessfulRequest(request); |
| 38 var result = new EditGetAssistsResult.fromResponse(response); | 37 var result = new EditGetAssistsResult.fromResponse(response); |
| 39 List<SourceChange> sourceChangeList = result.assists; | 38 List<SourceChange> sourceChangeList = result.assists; |
| 40 // TODO(scheglov) consider using generated classes and decoders | 39 // TODO(scheglov) consider using generated classes and decoders |
| 41 changes = sourceChangeList.map((SourceChange sourceChange) { | 40 changes = sourceChangeList.map((SourceChange sourceChange) { |
| 42 Change change = new Change(sourceChange.message); | 41 SourceChange change = new SourceChange(sourceChange.message); |
| 43 sourceChange.edits.forEach((SourceFileEdit sourceFileEdit) { | 42 sourceChange.edits.forEach((SourceFileEdit sourceFileEdit) { |
| 44 SourceFileEdit fileEdit = new SourceFileEdit(sourceFileEdit.file); | 43 SourceFileEdit fileEdit = new SourceFileEdit(sourceFileEdit.file); |
| 45 change.fileEdits.add(fileEdit); | 44 change.edits.add(fileEdit); |
| 46 fileEdit.edits.addAll(sourceFileEdit.edits); | 45 fileEdit.edits.addAll(sourceFileEdit.edits); |
| 47 }); | 46 }); |
| 48 return change; | 47 return change; |
| 49 }).toList(); | 48 }).toList(); |
| 50 } | 49 } |
| 51 | 50 |
| 52 @override | 51 @override |
| 53 void setUp() { | 52 void setUp() { |
| 54 super.setUp(); | 53 super.setUp(); |
| 55 createProject(); | 54 createProject(); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 105 if (condition) { | 104 if (condition) { |
| 106 print(1); | 105 print(1); |
| 107 print(2); | 106 print(2); |
| 108 } | 107 } |
| 109 } | 108 } |
| 110 '''); | 109 '''); |
| 111 }); | 110 }); |
| 112 } | 111 } |
| 113 | 112 |
| 114 void _assertHasChange(String message, String expectedCode) { | 113 void _assertHasChange(String message, String expectedCode) { |
| 115 for (Change change in changes) { | 114 for (SourceChange change in changes) { |
| 116 if (change.message == message) { | 115 if (change.message == message) { |
| 117 String resultCode = | 116 String resultCode = |
| 118 SourceEdit.applySequence(testCode, change.fileEdits[0].edits); | 117 SourceEdit.applySequence(testCode, change.edits[0].edits); |
| 119 expect(resultCode, expectedCode); | 118 expect(resultCode, expectedCode); |
| 120 return; | 119 return; |
| 121 } | 120 } |
| 122 } | 121 } |
| 123 fail("Expected to find |$message| in\n" + changes.join('\n')); | 122 fail("Expected to find |$message| in\n" + changes.join('\n')); |
| 124 } | 123 } |
| 125 } | 124 } |
| OLD | NEW |