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

Side by Side Diff: pkg/analysis_server/test/domain_analysis_test.dart

Issue 308703005: Extract constants into separate libarary. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 6 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
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.domain.analysis; 5 library test.domain.analysis;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/src/analysis_server.dart'; 9 import 'package:analysis_server/src/analysis_server.dart';
10 import 'package:analysis_server/src/constants.dart';
10 import 'package:analysis_server/src/computers.dart'; 11 import 'package:analysis_server/src/computers.dart';
11 import 'package:analysis_server/src/domain_analysis.dart'; 12 import 'package:analysis_server/src/domain_analysis.dart';
12 import 'package:analysis_server/src/protocol.dart'; 13 import 'package:analysis_server/src/protocol.dart';
13 import 'package:analysis_server/src/resource.dart'; 14 import 'package:analysis_server/src/resource.dart';
14 import 'package:unittest/unittest.dart'; 15 import 'package:unittest/unittest.dart';
15 16
16 import 'mocks.dart'; 17 import 'mocks.dart';
17 18
18 19
19 main() { 20 main() {
20 groupSep = ' | '; 21 groupSep = ' | ';
21 22
22 MockServerChannel serverChannel; 23 MockServerChannel serverChannel;
23 AnalysisServer server; 24 AnalysisServer server;
24 AnalysisDomainHandler handler; 25 AnalysisDomainHandler handler;
25 MemoryResourceProvider resourceProvider = new MemoryResourceProvider(); 26 MemoryResourceProvider resourceProvider = new MemoryResourceProvider();
26 27
27 setUp(() { 28 setUp(() {
28 serverChannel = new MockServerChannel(); 29 serverChannel = new MockServerChannel();
29 server = new AnalysisServer(serverChannel, resourceProvider); 30 server = new AnalysisServer(serverChannel, resourceProvider);
30 handler = new AnalysisDomainHandler(server); 31 handler = new AnalysisDomainHandler(server);
31 }); 32 });
32 33
33 group('notification.errors', testNotificationErrors); 34 group('notification.errors', testNotificationErrors);
34 group('notification.highlights', testNotificationHighlights); 35 group('notification.highlights', testNotificationHighlights);
35 group('updateContent', testUpdateContent); 36 group('updateContent', testUpdateContent);
36 37
37 group('AnalysisDomainHandler', () { 38 group('AnalysisDomainHandler', () {
38 test('getFixes', () { 39 test('getFixes', () {
39 var request = new Request('0', AnalysisDomainHandler.GET_FIXES_METHOD); 40 var request = new Request('0', METHOD_GET_FIXES);
40 request.setParameter(AnalysisDomainHandler.ERRORS_PARAM, []); 41 request.setParameter(ERRORS, []);
41 var response = handler.handleRequest(request); 42 var response = handler.handleRequest(request);
42 // TODO(scheglov) implement 43 // TODO(scheglov) implement
43 expect(response, isNull); 44 expect(response, isNull);
44 }); 45 });
45 46
46 test('getMinorRefactorings', () { 47 test('getMinorRefactorings', () {
47 var request = new Request('0', AnalysisDomainHandler.GET_MINOR_REFACTORING S_METHOD); 48 var request = new Request('0', METHOD_GET_MINOR_REFACTORINGS);
48 request.setParameter(AnalysisDomainHandler.FILE_PARAM, 'test.dart'); 49 request.setParameter(FILE, 'test.dart');
49 request.setParameter(AnalysisDomainHandler.OFFSET_PARAM, 10); 50 request.setParameter(OFFSET, 10);
50 request.setParameter(AnalysisDomainHandler.LENGTH_PARAM, 20); 51 request.setParameter(LENGTH, 20);
51 var response = handler.handleRequest(request); 52 var response = handler.handleRequest(request);
52 // TODO(scheglov) implement 53 // TODO(scheglov) implement
53 expect(response, isNull); 54 expect(response, isNull);
54 }); 55 });
55 56
56 group('setAnalysisRoots', () { 57 group('setAnalysisRoots', () {
57 Request request; 58 Request request;
58 59
59 setUp(() { 60 setUp(() {
60 request = new Request('0', AnalysisDomainHandler.SET_ANALYSIS_ROOTS_METH OD); 61 request = new Request('0', METHOD_SET_ANALYSIS_ROOTS);
61 request.setParameter(AnalysisDomainHandler.INCLUDED_PARAM, []); 62 request.setParameter(INCLUDED, []);
62 request.setParameter(AnalysisDomainHandler.EXCLUDED_PARAM, []); 63 request.setParameter(EXCLUDED, []);
63 }); 64 });
64 65
65 test('excluded', () { 66 test('excluded', () {
66 request.setParameter(AnalysisDomainHandler.EXCLUDED_PARAM, ['foo']); 67 request.setParameter(EXCLUDED, ['foo']);
67 // TODO(scheglov) implement 68 // TODO(scheglov) implement
68 var response = handler.handleRequest(request); 69 var response = handler.handleRequest(request);
69 expect(response, isResponseFailure('0')); 70 expect(response, isResponseFailure('0'));
70 }); 71 });
71 72
72 group('included', () { 73 group('included', () {
73 test('new folder', () { 74 test('new folder', () {
74 resourceProvider.newFolder('/project'); 75 resourceProvider.newFolder('/project');
75 resourceProvider.newFile('/project/pubspec.yaml', 'name: project'); 76 resourceProvider.newFile('/project/pubspec.yaml', 'name: project');
76 resourceProvider.newFile('/project/bin/test.dart', 'main() {}'); 77 resourceProvider.newFile('/project/bin/test.dart', 'main() {}');
77 request.setParameter( 78 request.setParameter(
78 AnalysisDomainHandler.INCLUDED_PARAM, 79 INCLUDED,
79 ['/project']); 80 ['/project']);
80 var response = handler.handleRequest(request); 81 var response = handler.handleRequest(request);
81 var serverRef = server; 82 var serverRef = server;
82 expect(response, isResponseSuccess('0')); 83 expect(response, isResponseSuccess('0'));
83 // verify that unit is resolved eventually 84 // verify that unit is resolved eventually
84 return waitForServerTasksFinished(server).then((_) { 85 return waitForServerTasksFinished(server).then((_) {
85 var unit = serverRef.test_getResolvedCompilationUnit('/project/bin/t est.dart'); 86 var unit = serverRef.test_getResolvedCompilationUnit('/project/bin/t est.dart');
86 expect(unit, isNotNull); 87 expect(unit, isNotNull);
87 }); 88 });
88 }); 89 });
89 }); 90 });
90 }); 91 });
91 92
92 test('setPriorityFiles', () { 93 test('setPriorityFiles', () {
93 var request = new Request('0', AnalysisDomainHandler.SET_PRIORITY_FILES_ME THOD); 94 var request = new Request('0', METHOD_SET_PRIORITY_FILES);
94 request.setParameter( 95 request.setParameter(
95 AnalysisDomainHandler.FILES_PARAM, 96 FILES,
96 ['projectA/aa.dart', 'projectB/ba.dart']); 97 ['projectA/aa.dart', 'projectB/ba.dart']);
97 var response = handler.handleRequest(request); 98 var response = handler.handleRequest(request);
98 // TODO(scheglov) implement 99 // TODO(scheglov) implement
99 expect(response, isNull); 100 expect(response, isNull);
100 }); 101 });
101 102
102 test('setSubscriptions', () { 103 test('setSubscriptions', () {
103 var request = new Request('0', AnalysisDomainHandler.SET_SUBSCRIPTIONS_MET HOD); 104 var request = new Request('0', METHOD_SET_SUBSCRIPTIONS);
104 request.setParameter( 105 request.setParameter(
105 AnalysisDomainHandler.SUBSCRIPTIONS_PARAM, 106 SUBSCRIPTIONS,
106 { 107 {
107 AnalysisService.HIGHLIGHTS : ['project/a.dart', 'project/b.dart'], 108 AnalysisService.HIGHLIGHTS : ['project/a.dart', 'project/b.dart'],
108 AnalysisService.NAVIGATION : ['project/c.dart'], 109 AnalysisService.NAVIGATION : ['project/c.dart'],
109 AnalysisService.OUTLINE : ['project/d.dart', 'project/e.dart'] 110 AnalysisService.OUTLINE : ['project/d.dart', 'project/e.dart']
110 }); 111 });
111 var response = handler.handleRequest(request); 112 var response = handler.handleRequest(request);
112 // TODO(scheglov) implement 113 // TODO(scheglov) implement
113 expect(response, isNull); 114 expect(response, isNull);
114 }); 115 });
115 116
116 test('updateOptions', () { 117 test('updateOptions', () {
117 var request = new Request('0', AnalysisDomainHandler.UPDATE_OPTIONS_METHOD ); 118 var request = new Request('0', METHOD_UPDATE_OPTIONS);
118 request.setParameter( 119 request.setParameter(
119 AnalysisDomainHandler.OPTIONS_PARAM, 120 OPTIONS,
120 { 121 {
121 'analyzeAngular' : true, 122 'analyzeAngular' : true,
122 'enableDeferredLoading': true, 123 'enableDeferredLoading': true,
123 'enableEnums': false 124 'enableEnums': false
124 }); 125 });
125 var response = handler.handleRequest(request); 126 var response = handler.handleRequest(request);
126 // TODO(scheglov) implement 127 // TODO(scheglov) implement
127 expect(response, isNull); 128 expect(response, isNull);
128 }); 129 });
129 130
130 test('updateSdks', () { 131 test('updateSdks', () {
131 var request = new Request('0', AnalysisDomainHandler.UPDATE_SDKS_METHOD); 132 var request = new Request('0', METHOD_UPDATE_SDKS);
132 request.setParameter( 133 request.setParameter(
133 AnalysisDomainHandler.ADDED_PARAM, 134 ADDED,
134 ['/dart/sdk-1.3', '/dart/sdk-1.4']); 135 ['/dart/sdk-1.3', '/dart/sdk-1.4']);
135 request.setParameter( 136 request.setParameter(
136 AnalysisDomainHandler.REMOVED_PARAM, 137 REMOVED,
137 ['/dart/sdk-1.2']); 138 ['/dart/sdk-1.2']);
138 request.setParameter(AnalysisDomainHandler.DEFAULT_PARAM, '/dart/sdk-1.4') ; 139 request.setParameter(DEFAULT, '/dart/sdk-1.4');
139 var response = handler.handleRequest(request); 140 var response = handler.handleRequest(request);
140 // TODO(scheglov) implement 141 // TODO(scheglov) implement
141 expect(response, isNull); 142 expect(response, isNull);
142 }); 143 });
143 }); 144 });
144 } 145 }
145 146
146 147
147 class AnalysisError { 148 class AnalysisError {
148 final String file; 149 final String file;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 String testCode; 190 String testCode;
190 191
191 AnalysisTestHelper() { 192 AnalysisTestHelper() {
192 serverChannel = new MockServerChannel(); 193 serverChannel = new MockServerChannel();
193 resourceProvider = new MemoryResourceProvider(); 194 resourceProvider = new MemoryResourceProvider();
194 server = new AnalysisServer(serverChannel, resourceProvider); 195 server = new AnalysisServer(serverChannel, resourceProvider);
195 handler = new AnalysisDomainHandler(server); 196 handler = new AnalysisDomainHandler(server);
196 // listen for notifications 197 // listen for notifications
197 Stream<Notification> notificationStream = serverChannel.notificationControll er.stream; 198 Stream<Notification> notificationStream = serverChannel.notificationControll er.stream;
198 notificationStream.listen((Notification notification) { 199 notificationStream.listen((Notification notification) {
199 if (notification.event == AnalysisDomainHandler.ERRORS_NOTIFICATION) { 200 if (notification.event == NOTIFICATION_ERRORS) {
200 String file = notification.getParameter(AnalysisServer.FILE_PARAM); 201 String file = notification.getParameter(FILE);
201 List<Map<String, Object>> errorMaps = notification.getParameter(Analysis Server.ERRORS_PARAM); 202 List<Map<String, Object>> errorMaps = notification.getParameter(ERRORS);
202 filesErrors[file] = errorMaps.map(jsonToAnalysisError).toList(); 203 filesErrors[file] = errorMaps.map(jsonToAnalysisError).toList();
203 } 204 }
204 if (notification.event == AnalysisDomainHandler.HIGHLIGHTS_NOTIFICATION) { 205 if (notification.event == NOTIFICATION_HIGHLIGHTS) {
205 String file = notification.getParameter(AnalysisServer.FILE_PARAM); 206 String file = notification.getParameter(FILE);
206 filesHighlights[file] = notification.getParameter(AnalysisDomainHandler. REGIONS_PARAM); 207 filesHighlights[file] = notification.getParameter(REGIONS);
207 } 208 }
208 }); 209 });
209 } 210 }
210 211
211 /** 212 /**
212 * Returns a [Future] that completes when this this helper finished all its 213 * Returns a [Future] that completes when this this helper finished all its
213 * scheduled tasks. 214 * scheduled tasks.
214 */ 215 */
215 Future waitForTasksFinished() { 216 Future waitForTasksFinished() {
216 return waitForServerTasksFinished(server); 217 return waitForServerTasksFinished(server);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 259
259 /** 260 /**
260 * Creates a project with a single Dart file `/project/bin/test.dart` with 261 * Creates a project with a single Dart file `/project/bin/test.dart` with
261 * the given [code]. 262 * the given [code].
262 */ 263 */
263 void createSingleFileProject(code) { 264 void createSingleFileProject(code) {
264 this.testCode = _getCodeString(code); 265 this.testCode = _getCodeString(code);
265 resourceProvider.newFolder('/project'); 266 resourceProvider.newFolder('/project');
266 resourceProvider.newFile('/project/pubspec.yaml', 'name: project'); 267 resourceProvider.newFile('/project/pubspec.yaml', 'name: project');
267 resourceProvider.newFile(testFile, testCode); 268 resourceProvider.newFile(testFile, testCode);
268 Request request = new Request('0', AnalysisDomainHandler.SET_ANALYSIS_ROOTS_ METHOD); 269 Request request = new Request('0', METHOD_SET_ANALYSIS_ROOTS);
269 request.setParameter(AnalysisDomainHandler.INCLUDED_PARAM, ['/project']); 270 request.setParameter(INCLUDED, ['/project']);
270 request.setParameter(AnalysisDomainHandler.EXCLUDED_PARAM, []); 271 request.setParameter(EXCLUDED, []);
271 handleSuccessfulRequest(request); 272 handleSuccessfulRequest(request);
272 } 273 }
273 274
274 void setFileContent(String path, String content) { 275 void setFileContent(String path, String content) {
275 resourceProvider.newFile(path, content); 276 resourceProvider.newFile(path, content);
276 } 277 }
277 278
278 /** 279 /**
279 * Validates that the given [request] is handled successfully. 280 * Validates that the given [request] is handled successfully.
280 */ 281 */
(...skipping 790 matching lines...) Expand 10 before | Expand all | Expand 10 after
1071 testUpdateContent() { 1072 testUpdateContent() {
1072 test('full content', () { 1073 test('full content', () {
1073 AnalysisTestHelper helper = new AnalysisTestHelper(); 1074 AnalysisTestHelper helper = new AnalysisTestHelper();
1074 helper.createSingleFileProject('// empty'); 1075 helper.createSingleFileProject('// empty');
1075 return helper.waitForTasksFinished().then((_) { 1076 return helper.waitForTasksFinished().then((_) {
1076 // no errors initially 1077 // no errors initially
1077 List<AnalysisError> errors = helper.getTestErrors(); 1078 List<AnalysisError> errors = helper.getTestErrors();
1078 expect(errors, isEmpty); 1079 expect(errors, isEmpty);
1079 // update code 1080 // update code
1080 { 1081 {
1081 Request request = new Request('0', AnalysisDomainHandler.UPDATE_CONTENT_ METHOD); 1082 Request request = new Request('0', METHOD_UPDATE_CONTENT);
1082 request.setParameter('files', 1083 request.setParameter('files',
1083 { 1084 {
1084 helper.testFile : { 1085 helper.testFile : {
1085 AnalysisDomainHandler.CONTENT_PARAM : 'library lib' 1086 CONTENT : 'library lib'
1086 } 1087 }
1087 }); 1088 });
1088 helper.handleSuccessfulRequest(request); 1089 helper.handleSuccessfulRequest(request);
1089 } 1090 }
1090 // wait, there is an error 1091 // wait, there is an error
1091 helper.waitForTasksFinished().then((_) { 1092 helper.waitForTasksFinished().then((_) {
1092 List<AnalysisError> errors = helper.getTestErrors(); 1093 List<AnalysisError> errors = helper.getTestErrors();
1093 expect(errors, hasLength(1)); 1094 expect(errors, hasLength(1));
1094 }); 1095 });
1095 }); 1096 });
1096 }); 1097 });
1097 1098
1098 test('incremental', () { 1099 test('incremental', () {
1099 AnalysisTestHelper helper = new AnalysisTestHelper(); 1100 AnalysisTestHelper helper = new AnalysisTestHelper();
1100 helper.createSingleFileProject('library A;'); 1101 helper.createSingleFileProject('library A;');
1101 return helper.waitForTasksFinished().then((_) { 1102 return helper.waitForTasksFinished().then((_) {
1102 // no errors initially 1103 // no errors initially
1103 List<AnalysisError> errors = helper.getTestErrors(); 1104 List<AnalysisError> errors = helper.getTestErrors();
1104 expect(errors, isEmpty); 1105 expect(errors, isEmpty);
1105 // update code 1106 // update code
1106 { 1107 {
1107 Request request = new Request('0', AnalysisDomainHandler.UPDATE_CONTENT_ METHOD); 1108 Request request = new Request('0', METHOD_UPDATE_CONTENT);
1108 request.setParameter('files', 1109 request.setParameter('files',
1109 { 1110 {
1110 helper.testFile : { 1111 helper.testFile : {
1111 AnalysisDomainHandler.CONTENT_PARAM : 'library lib', 1112 CONTENT : 'library lib',
1112 AnalysisDomainHandler.OFFSET_PARAM : 'library '.length, 1113 OFFSET : 'library '.length,
1113 AnalysisDomainHandler.OLD_LENGTH_PARAM : 'A;'.length, 1114 OLD_LENGTH : 'A;'.length,
1114 AnalysisDomainHandler.NEW_LENGTH_PARAM : 'lib'.length, 1115 NEW_LENGTH : 'lib'.length,
1115 } 1116 }
1116 }); 1117 });
1117 helper.handleSuccessfulRequest(request); 1118 helper.handleSuccessfulRequest(request);
1118 } 1119 }
1119 // wait, there is an error 1120 // wait, there is an error
1120 helper.waitForTasksFinished().then((_) { 1121 helper.waitForTasksFinished().then((_) {
1121 List<AnalysisError> errors = helper.getTestErrors(); 1122 List<AnalysisError> errors = helper.getTestErrors();
1122 expect(errors, hasLength(1)); 1123 expect(errors, hasLength(1));
1123 }); 1124 });
1124 }); 1125 });
1125 }); 1126 });
1126 } 1127 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/test/analysis_server_test.dart ('k') | pkg/analysis_server/test/domain_context_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698