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