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

Side by Side Diff: pkg/analysis_server/test/edit/assists_test.dart

Issue 1461343002: Make AssistContributor asynchronous. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 1 month 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
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.edit.assists; 5 library test.edit.assists;
6 6
7 import 'dart:async';
8
9 import 'package:analysis_server/plugin/protocol/protocol.dart'; 7 import 'package:analysis_server/plugin/protocol/protocol.dart';
10 import 'package:analysis_server/src/edit/edit_domain.dart'; 8 import 'package:analysis_server/src/edit/edit_domain.dart';
11 import 'package:plugin/manager.dart'; 9 import 'package:plugin/manager.dart';
12 import 'package:test_reflective_loader/test_reflective_loader.dart'; 10 import 'package:test_reflective_loader/test_reflective_loader.dart';
13 import 'package:unittest/unittest.dart' hide ERROR; 11 import 'package:unittest/unittest.dart' hide ERROR;
14 12
15 import '../analysis_abstract.dart'; 13 import '../analysis_abstract.dart';
16 import '../utils.dart'; 14 import '../utils.dart';
17 15
18 main() { 16 main() {
19 initializeTestEnvironment(); 17 initializeTestEnvironment();
20 defineReflectiveTests(AssistsTest); 18 defineReflectiveTests(AssistsTest);
21 } 19 }
22 20
23 @reflectiveTest 21 @reflectiveTest
24 class AssistsTest extends AbstractAnalysisTest { 22 class AssistsTest extends AbstractAnalysisTest {
25 List<SourceChange> changes; 23 List<SourceChange> changes;
26 24
27 void prepareAssists(String search, [int length = 0]) { 25 prepareAssists(String search, [int length = 0]) async {
28 int offset = findOffset(search); 26 int offset = findOffset(search);
29 prepareAssistsAt(offset, length); 27 await prepareAssistsAt(offset, length);
30 } 28 }
31 29
32 void prepareAssistsAt(int offset, int length) { 30 prepareAssistsAt(int offset, int length) async {
33 Request request = 31 Request request =
34 new EditGetAssistsParams(testFile, offset, length).toRequest('0'); 32 new EditGetAssistsParams(testFile, offset, length).toRequest('0');
35 Response response = handleSuccessfulRequest(request); 33 Response response = await waitResponse(request);
36 var result = new EditGetAssistsResult.fromResponse(response); 34 var result = new EditGetAssistsResult.fromResponse(response);
37 changes = result.assists; 35 changes = result.assists;
38 } 36 }
39 37
40 @override 38 @override
41 void setUp() { 39 void setUp() {
42 super.setUp(); 40 super.setUp();
43 createProject(); 41 createProject();
44 ExtensionManager manager = new ExtensionManager(); 42 ExtensionManager manager = new ExtensionManager();
45 manager.processPlugins([server.serverPlugin]); 43 manager.processPlugins([server.serverPlugin]);
46 handler = new EditDomainHandler(server); 44 handler = new EditDomainHandler(server);
47 } 45 }
48 46
49 Future test_removeTypeAnnotation() async { 47 test_removeTypeAnnotation() async {
50 addTestFile(''' 48 addTestFile('''
51 main() { 49 main() {
52 int v = 1; 50 int v = 1;
53 } 51 }
54 '''); 52 ''');
55 await waitForTasksFinished(); 53 await waitForTasksFinished();
56 prepareAssists('v ='); 54 await prepareAssists('v =');
57 _assertHasChange( 55 _assertHasChange(
58 'Remove type annotation', 56 'Remove type annotation',
59 ''' 57 '''
60 main() { 58 main() {
61 var v = 1; 59 var v = 1;
62 } 60 }
63 '''); 61 ''');
64 } 62 }
65 63
66 Future test_splitVariableDeclaration() async { 64 test_splitVariableDeclaration() async {
67 addTestFile(''' 65 addTestFile('''
68 main() { 66 main() {
69 int v = 1; 67 int v = 1;
70 } 68 }
71 '''); 69 ''');
72 await waitForTasksFinished(); 70 await waitForTasksFinished();
73 prepareAssists('v ='); 71 await prepareAssists('v =');
74 _assertHasChange( 72 _assertHasChange(
75 'Split variable declaration', 73 'Split variable declaration',
76 ''' 74 '''
77 main() { 75 main() {
78 int v; 76 int v;
79 v = 1; 77 v = 1;
80 } 78 }
81 '''); 79 ''');
82 } 80 }
83 81
84 Future test_surroundWithIf() async { 82 test_surroundWithIf() async {
85 addTestFile(''' 83 addTestFile('''
86 main() { 84 main() {
87 print(1); 85 print(1);
88 print(2); 86 print(2);
89 } 87 }
90 '''); 88 ''');
91 await waitForTasksFinished(); 89 await waitForTasksFinished();
92 int offset = findOffset(' print(1)'); 90 int offset = findOffset(' print(1)');
93 int length = findOffset('}') - offset; 91 int length = findOffset('}') - offset;
94 prepareAssistsAt(offset, length); 92 await prepareAssistsAt(offset, length);
95 _assertHasChange( 93 _assertHasChange(
96 "Surround with 'if'", 94 "Surround with 'if'",
97 ''' 95 '''
98 main() { 96 main() {
99 if (condition) { 97 if (condition) {
100 print(1); 98 print(1);
101 print(2); 99 print(2);
102 } 100 }
103 } 101 }
104 '''); 102 ''');
105 } 103 }
106 104
107 void _assertHasChange(String message, String expectedCode) { 105 void _assertHasChange(String message, String expectedCode) {
108 for (SourceChange change in changes) { 106 for (SourceChange change in changes) {
109 if (change.message == message) { 107 if (change.message == message) {
110 String resultCode = 108 String resultCode =
111 SourceEdit.applySequence(testCode, change.edits[0].edits); 109 SourceEdit.applySequence(testCode, change.edits[0].edits);
112 expect(resultCode, expectedCode); 110 expect(resultCode, expectedCode);
113 return; 111 return;
114 } 112 }
115 } 113 }
116 fail("Expected to find |$message| in\n" + changes.join('\n')); 114 fail("Expected to find |$message| in\n" + changes.join('\n'));
117 } 115 }
118 } 116 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698