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

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

Issue 497393002: Make more use of generated code in analysis server. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 4 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.notification.highlights; 5 library test.domain.analysis.notification.highlights;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/src/computer/computer_highlights.dart';
10 import 'package:analysis_server/src/constants.dart'; 9 import 'package:analysis_server/src/constants.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' show AnalysisService; 11 import 'package:analysis_server/src/protocol2.dart';
13 import 'package:analysis_testing/reflective_tests.dart'; 12 import 'package:analysis_testing/reflective_tests.dart';
14 import 'package:unittest/unittest.dart'; 13 import 'package:unittest/unittest.dart';
15 14
16 import 'analysis_abstract.dart'; 15 import 'analysis_abstract.dart';
17 16
18 17
19 main() { 18 main() {
20 runReflectiveTests(AnalysisNotificationHighlightsTest); 19 runReflectiveTests(AnalysisNotificationHighlightsTest);
21 runReflectiveTests(HighlightTypeTest); 20 runReflectiveTests(HighlightTypeTest);
22 } 21 }
23 22
24 23
25 @ReflectiveTestCase() 24 @ReflectiveTestCase()
26 class AnalysisNotificationHighlightsTest extends AbstractAnalysisTest { 25 class AnalysisNotificationHighlightsTest extends AbstractAnalysisTest {
27 List<HighlightRegion> regions; 26 List<HighlightRegion> regions;
28 27
29 void assertHasRawRegion(HighlightType type, int offset, int length) { 28 void assertHasRawRegion(HighlightRegionType type, int offset, int length) {
30 for (HighlightRegion region in regions) { 29 for (HighlightRegion region in regions) {
31 if (region.offset == offset && 30 if (region.offset == offset &&
32 region.length == length && 31 region.length == length &&
33 region.type == type) { 32 region.type == type) {
34 return; 33 return;
35 } 34 }
36 } 35 }
37 fail( 36 fail(
38 'Expected to find (offset=$offset; length=$length; type=$type) in\n' 37 'Expected to find (offset=$offset; length=$length; type=$type) in\n'
39 '${regions.join('\n')}'); 38 '${regions.join('\n')}');
40 } 39 }
41 40
42 void assertHasRegion(HighlightType type, String search, [int length = -1]) { 41 void assertHasRegion(HighlightRegionType type, String search, [int length = -1 ]) {
43 int offset = findOffset(search); 42 int offset = findOffset(search);
44 length = findRegionLength(search, length); 43 length = findRegionLength(search, length);
45 assertHasRawRegion(type, offset, length); 44 assertHasRawRegion(type, offset, length);
46 } 45 }
47 46
48 void assertHasStringRegion(HighlightType type, String str) { 47 void assertHasStringRegion(HighlightRegionType type, String str) {
49 int offset = findOffset(str); 48 int offset = findOffset(str);
50 int length = str.length; 49 int length = str.length;
51 assertHasRawRegion(type, offset, length); 50 assertHasRawRegion(type, offset, length);
52 } 51 }
53 52
54 void assertNoRawRegion(HighlightType type, int offset, int length) { 53 void assertNoRawRegion(HighlightRegionType type, int offset, int length) {
55 for (HighlightRegion region in regions) { 54 for (HighlightRegion region in regions) {
56 if (region.offset == offset && 55 if (region.offset == offset &&
57 region.length == length && 56 region.length == length &&
58 region.type == type) { 57 region.type == type) {
59 fail( 58 fail(
60 'Not expected to find (offset=$offset; length=$length; type=$type) i n\n' 59 'Not expected to find (offset=$offset; length=$length; type=$type) i n\n'
61 '${regions.join('\n')}'); 60 '${regions.join('\n')}');
62 } 61 }
63 } 62 }
64 } 63 }
65 64
66 65
67 void assertNoRegion(HighlightType type, String search, [int length = -1]) { 66 void assertNoRegion(HighlightRegionType type, String search, [int length = -1] ) {
68 int offset = findOffset(search); 67 int offset = findOffset(search);
69 length = findRegionLength(search, length); 68 length = findRegionLength(search, length);
70 assertNoRawRegion(type, offset, length); 69 assertNoRawRegion(type, offset, length);
71 } 70 }
72 71
73 int findRegionLength(String search, int length) { 72 int findRegionLength(String search, int length) {
74 if (length == -1) { 73 if (length == -1) {
75 length = 0; 74 length = 0;
76 while (length < search.length) { 75 while (length < search.length) {
77 int c = search.codeUnitAt(length); 76 int c = search.codeUnitAt(length);
(...skipping 12 matching lines...) Expand all
90 return length; 89 return length;
91 } 90 }
92 91
93 Future prepareHighlights() { 92 Future prepareHighlights() {
94 addAnalysisSubscription(AnalysisService.HIGHLIGHTS, testFile); 93 addAnalysisSubscription(AnalysisService.HIGHLIGHTS, testFile);
95 return waitForTasksFinished(); 94 return waitForTasksFinished();
96 } 95 }
97 96
98 void processNotification(Notification notification) { 97 void processNotification(Notification notification) {
99 if (notification.event == ANALYSIS_HIGHLIGHTS) { 98 if (notification.event == ANALYSIS_HIGHLIGHTS) {
100 String file = notification.getParameter(FILE); 99 var params = new AnalysisHighlightsParams.fromNotification(notification);
101 if (file == testFile) { 100 if (params.file == testFile) {
102 regions = []; 101 regions = params.regions;
103 List<Map<String, Object>> regionsJson =
104 notification.getParameter(REGIONS);
105 for (Map<String, Object> regionJson in regionsJson) {
106 regions.add(new HighlightRegion.fromJson(regionJson));
107 }
108 } 102 }
109 } 103 }
110 } 104 }
111 105
112 @override 106 @override
113 void setUp() { 107 void setUp() {
114 super.setUp(); 108 super.setUp();
115 createProject(); 109 createProject();
116 } 110 }
117 111
118 test_ANNOTATION_hasArguments() { 112 test_ANNOTATION_hasArguments() {
119 addTestFile(''' 113 addTestFile('''
120 class AAA { 114 class AAA {
121 const AAA(a, b, c); 115 const AAA(a, b, c);
122 } 116 }
123 @AAA(1, 2, 3) main() {} 117 @AAA(1, 2, 3) main() {}
124 '''); 118 ''');
125 return prepareHighlights().then((_) { 119 return prepareHighlights().then((_) {
126 assertHasRegion(HighlightType.ANNOTATION, '@AAA(', '@AAA('.length); 120 assertHasRegion(HighlightRegionType.ANNOTATION, '@AAA(', '@AAA('.length);
127 assertHasRegion(HighlightType.ANNOTATION, ') main', ')'.length); 121 assertHasRegion(HighlightRegionType.ANNOTATION, ') main', ')'.length);
128 }); 122 });
129 } 123 }
130 124
131 test_ANNOTATION_noArguments() { 125 test_ANNOTATION_noArguments() {
132 addTestFile(''' 126 addTestFile('''
133 const AAA = 42; 127 const AAA = 42;
134 @AAA main() {} 128 @AAA main() {}
135 '''); 129 ''');
136 return prepareHighlights().then((_) { 130 return prepareHighlights().then((_) {
137 assertHasRegion(HighlightType.ANNOTATION, '@AAA'); 131 assertHasRegion(HighlightRegionType.ANNOTATION, '@AAA');
138 }); 132 });
139 } 133 }
140 134
141 test_BUILT_IN_abstract() { 135 test_BUILT_IN_abstract() {
142 addTestFile(''' 136 addTestFile('''
143 abstract class A {}; 137 abstract class A {};
144 main() { 138 main() {
145 var abstract = 42; 139 var abstract = 42;
146 }'''); 140 }''');
147 return prepareHighlights().then((_) { 141 return prepareHighlights().then((_) {
148 assertHasRegion(HighlightType.BUILT_IN, 'abstract class'); 142 assertHasRegion(HighlightRegionType.BUILT_IN, 'abstract class');
149 assertNoRegion(HighlightType.BUILT_IN, 'abstract = 42'); 143 assertNoRegion(HighlightRegionType.BUILT_IN, 'abstract = 42');
150 }); 144 });
151 } 145 }
152 146
153 test_BUILT_IN_as() { 147 test_BUILT_IN_as() {
154 addTestFile(''' 148 addTestFile('''
155 import 'dart:math' as math; 149 import 'dart:math' as math;
156 main() { 150 main() {
157 p as int; 151 p as int;
158 var as = 42; 152 var as = 42;
159 }'''); 153 }''');
160 return prepareHighlights().then((_) { 154 return prepareHighlights().then((_) {
161 assertHasRegion(HighlightType.BUILT_IN, 'as math'); 155 assertHasRegion(HighlightRegionType.BUILT_IN, 'as math');
162 assertHasRegion(HighlightType.BUILT_IN, 'as int'); 156 assertHasRegion(HighlightRegionType.BUILT_IN, 'as int');
163 assertNoRegion(HighlightType.BUILT_IN, 'as = 42'); 157 assertNoRegion(HighlightRegionType.BUILT_IN, 'as = 42');
164 }); 158 });
165 } 159 }
166 160
167 test_BUILT_IN_deferred() { 161 test_BUILT_IN_deferred() {
168 addTestFile(''' 162 addTestFile('''
169 import 'dart:math' deferred as math; 163 import 'dart:math' deferred as math;
170 main() { 164 main() {
171 var deferred = 42; 165 var deferred = 42;
172 }'''); 166 }''');
173 return prepareHighlights().then((_) { 167 return prepareHighlights().then((_) {
174 assertHasRegion(HighlightType.BUILT_IN, 'deferred as math'); 168 assertHasRegion(HighlightRegionType.BUILT_IN, 'deferred as math');
175 assertNoRegion(HighlightType.BUILT_IN, 'deferred = 42'); 169 assertNoRegion(HighlightRegionType.BUILT_IN, 'deferred = 42');
176 }); 170 });
177 } 171 }
178 172
179 test_BUILT_IN_export() { 173 test_BUILT_IN_export() {
180 addTestFile(''' 174 addTestFile('''
181 export "dart:math"; 175 export "dart:math";
182 main() { 176 main() {
183 var export = 42; 177 var export = 42;
184 }'''); 178 }''');
185 return prepareHighlights().then((_) { 179 return prepareHighlights().then((_) {
186 assertHasRegion(HighlightType.BUILT_IN, 'export "dart:'); 180 assertHasRegion(HighlightRegionType.BUILT_IN, 'export "dart:');
187 assertNoRegion(HighlightType.BUILT_IN, 'export = 42'); 181 assertNoRegion(HighlightRegionType.BUILT_IN, 'export = 42');
188 }); 182 });
189 } 183 }
190 184
191 test_BUILT_IN_external() { 185 test_BUILT_IN_external() {
192 addTestFile(''' 186 addTestFile('''
193 class A { 187 class A {
194 external A(); 188 external A();
195 external aaa(); 189 external aaa();
196 } 190 }
197 external main() { 191 external main() {
198 var external = 42; 192 var external = 42;
199 }'''); 193 }''');
200 return prepareHighlights().then((_) { 194 return prepareHighlights().then((_) {
201 assertHasRegion(HighlightType.BUILT_IN, 'external A()'); 195 assertHasRegion(HighlightRegionType.BUILT_IN, 'external A()');
202 assertHasRegion(HighlightType.BUILT_IN, 'external aaa()'); 196 assertHasRegion(HighlightRegionType.BUILT_IN, 'external aaa()');
203 assertHasRegion(HighlightType.BUILT_IN, 'external main()'); 197 assertHasRegion(HighlightRegionType.BUILT_IN, 'external main()');
204 assertNoRegion(HighlightType.BUILT_IN, 'external = 42'); 198 assertNoRegion(HighlightRegionType.BUILT_IN, 'external = 42');
205 }); 199 });
206 } 200 }
207 201
208 test_BUILT_IN_factory() { 202 test_BUILT_IN_factory() {
209 addTestFile(''' 203 addTestFile('''
210 class A { 204 class A {
211 factory A() => null; 205 factory A() => null;
212 } 206 }
213 main() { 207 main() {
214 var factory = 42; 208 var factory = 42;
215 }'''); 209 }''');
216 return prepareHighlights().then((_) { 210 return prepareHighlights().then((_) {
217 assertHasRegion(HighlightType.BUILT_IN, 'factory A()'); 211 assertHasRegion(HighlightRegionType.BUILT_IN, 'factory A()');
218 assertNoRegion(HighlightType.BUILT_IN, 'factory = 42'); 212 assertNoRegion(HighlightRegionType.BUILT_IN, 'factory = 42');
219 }); 213 });
220 } 214 }
221 215
222 test_BUILT_IN_get() { 216 test_BUILT_IN_get() {
223 addTestFile(''' 217 addTestFile('''
224 get aaa => 1; 218 get aaa => 1;
225 class A { 219 class A {
226 get bbb => 2; 220 get bbb => 2;
227 } 221 }
228 main() { 222 main() {
229 var get = 42; 223 var get = 42;
230 }'''); 224 }''');
231 return prepareHighlights().then((_) { 225 return prepareHighlights().then((_) {
232 assertHasRegion(HighlightType.BUILT_IN, 'get aaa =>'); 226 assertHasRegion(HighlightRegionType.BUILT_IN, 'get aaa =>');
233 assertHasRegion(HighlightType.BUILT_IN, 'get bbb =>'); 227 assertHasRegion(HighlightRegionType.BUILT_IN, 'get bbb =>');
234 assertNoRegion(HighlightType.BUILT_IN, 'get = 42'); 228 assertNoRegion(HighlightRegionType.BUILT_IN, 'get = 42');
235 }); 229 });
236 } 230 }
237 231
238 test_BUILT_IN_hide() { 232 test_BUILT_IN_hide() {
239 addTestFile(''' 233 addTestFile('''
240 import 'foo.dart' hide Foo; 234 import 'foo.dart' hide Foo;
241 main() { 235 main() {
242 var hide = 42; 236 var hide = 42;
243 }'''); 237 }''');
244 return prepareHighlights().then((_) { 238 return prepareHighlights().then((_) {
245 assertHasRegion(HighlightType.BUILT_IN, 'hide Foo'); 239 assertHasRegion(HighlightRegionType.BUILT_IN, 'hide Foo');
246 assertNoRegion(HighlightType.BUILT_IN, 'hide = 42'); 240 assertNoRegion(HighlightRegionType.BUILT_IN, 'hide = 42');
247 }); 241 });
248 } 242 }
249 243
250 test_BUILT_IN_implements() { 244 test_BUILT_IN_implements() {
251 addTestFile(''' 245 addTestFile('''
252 class A {} 246 class A {}
253 class B implements A {} 247 class B implements A {}
254 main() { 248 main() {
255 var implements = 42; 249 var implements = 42;
256 }'''); 250 }''');
257 return prepareHighlights().then((_) { 251 return prepareHighlights().then((_) {
258 assertHasRegion(HighlightType.BUILT_IN, 'implements A {}'); 252 assertHasRegion(HighlightRegionType.BUILT_IN, 'implements A {}');
259 assertNoRegion(HighlightType.BUILT_IN, 'implements = 42'); 253 assertNoRegion(HighlightRegionType.BUILT_IN, 'implements = 42');
260 }); 254 });
261 } 255 }
262 256
263 test_BUILT_IN_import() { 257 test_BUILT_IN_import() {
264 addTestFile(''' 258 addTestFile('''
265 import "foo.dart"; 259 import "foo.dart";
266 main() { 260 main() {
267 var import = 42; 261 var import = 42;
268 }'''); 262 }''');
269 return prepareHighlights().then((_) { 263 return prepareHighlights().then((_) {
270 assertHasRegion(HighlightType.BUILT_IN, 'import "'); 264 assertHasRegion(HighlightRegionType.BUILT_IN, 'import "');
271 assertNoRegion(HighlightType.BUILT_IN, 'import = 42'); 265 assertNoRegion(HighlightRegionType.BUILT_IN, 'import = 42');
272 }); 266 });
273 } 267 }
274 268
275 test_BUILT_IN_library() { 269 test_BUILT_IN_library() {
276 addTestFile(''' 270 addTestFile('''
277 library lib; 271 library lib;
278 main() { 272 main() {
279 var library = 42; 273 var library = 42;
280 }'''); 274 }''');
281 return prepareHighlights().then((_) { 275 return prepareHighlights().then((_) {
282 assertHasRegion(HighlightType.BUILT_IN, 'library lib;'); 276 assertHasRegion(HighlightRegionType.BUILT_IN, 'library lib;');
283 assertNoRegion(HighlightType.BUILT_IN, 'library = 42'); 277 assertNoRegion(HighlightRegionType.BUILT_IN, 'library = 42');
284 }); 278 });
285 } 279 }
286 280
287 test_BUILT_IN_native() { 281 test_BUILT_IN_native() {
288 addTestFile(''' 282 addTestFile('''
289 class A native "A_native" {} 283 class A native "A_native" {}
290 class B { 284 class B {
291 bbb() native "bbb_native"; 285 bbb() native "bbb_native";
292 } 286 }
293 main() { 287 main() {
294 var native = 42; 288 var native = 42;
295 }'''); 289 }''');
296 return prepareHighlights().then((_) { 290 return prepareHighlights().then((_) {
297 assertHasRegion(HighlightType.BUILT_IN, 'native "A_'); 291 assertHasRegion(HighlightRegionType.BUILT_IN, 'native "A_');
298 assertHasRegion(HighlightType.BUILT_IN, 'native "bbb_'); 292 assertHasRegion(HighlightRegionType.BUILT_IN, 'native "bbb_');
299 assertNoRegion(HighlightType.BUILT_IN, 'native = 42'); 293 assertNoRegion(HighlightRegionType.BUILT_IN, 'native = 42');
300 }); 294 });
301 } 295 }
302 296
303 test_BUILT_IN_on() { 297 test_BUILT_IN_on() {
304 addTestFile(''' 298 addTestFile('''
305 main() { 299 main() {
306 try { 300 try {
307 } on int catch (e) { 301 } on int catch (e) {
308 } 302 }
309 var on = 42; 303 var on = 42;
310 }'''); 304 }''');
311 return prepareHighlights().then((_) { 305 return prepareHighlights().then((_) {
312 assertHasRegion(HighlightType.BUILT_IN, 'on int'); 306 assertHasRegion(HighlightRegionType.BUILT_IN, 'on int');
313 assertNoRegion(HighlightType.BUILT_IN, 'on = 42'); 307 assertNoRegion(HighlightRegionType.BUILT_IN, 'on = 42');
314 }); 308 });
315 } 309 }
316 310
317 test_BUILT_IN_operator() { 311 test_BUILT_IN_operator() {
318 addTestFile(''' 312 addTestFile('''
319 class A { 313 class A {
320 operator +(x) => null; 314 operator +(x) => null;
321 } 315 }
322 main() { 316 main() {
323 var operator = 42; 317 var operator = 42;
324 }'''); 318 }''');
325 return prepareHighlights().then((_) { 319 return prepareHighlights().then((_) {
326 assertHasRegion(HighlightType.BUILT_IN, 'operator +('); 320 assertHasRegion(HighlightRegionType.BUILT_IN, 'operator +(');
327 assertNoRegion(HighlightType.BUILT_IN, 'operator = 42'); 321 assertNoRegion(HighlightRegionType.BUILT_IN, 'operator = 42');
328 }); 322 });
329 } 323 }
330 324
331 test_BUILT_IN_part() { 325 test_BUILT_IN_part() {
332 addTestFile(''' 326 addTestFile('''
333 part "my_part.dart"; 327 part "my_part.dart";
334 main() { 328 main() {
335 var part = 42; 329 var part = 42;
336 }'''); 330 }''');
337 addFile('/project/bin/my_part.dart', 'part of lib;'); 331 addFile('/project/bin/my_part.dart', 'part of lib;');
338 return prepareHighlights().then((_) { 332 return prepareHighlights().then((_) {
339 assertHasRegion(HighlightType.BUILT_IN, 'part "my_'); 333 assertHasRegion(HighlightRegionType.BUILT_IN, 'part "my_');
340 assertNoRegion(HighlightType.BUILT_IN, 'part = 42'); 334 assertNoRegion(HighlightRegionType.BUILT_IN, 'part = 42');
341 }); 335 });
342 } 336 }
343 337
344 test_BUILT_IN_partOf() { 338 test_BUILT_IN_partOf() {
345 addTestFile(''' 339 addTestFile('''
346 part of lib; 340 part of lib;
347 main() { 341 main() {
348 var part = 1; 342 var part = 1;
349 var of = 2; 343 var of = 2;
350 }'''); 344 }''');
351 _addLibraryForTestPart(); 345 _addLibraryForTestPart();
352 return prepareHighlights().then((_) { 346 return prepareHighlights().then((_) {
353 assertHasRegion(HighlightType.BUILT_IN, 'part of', 'part of'.length); 347 assertHasRegion(HighlightRegionType.BUILT_IN, 'part of', 'part of'.length) ;
354 assertNoRegion(HighlightType.BUILT_IN, 'part = 1'); 348 assertNoRegion(HighlightRegionType.BUILT_IN, 'part = 1');
355 assertNoRegion(HighlightType.BUILT_IN, 'of = 2'); 349 assertNoRegion(HighlightRegionType.BUILT_IN, 'of = 2');
356 }); 350 });
357 } 351 }
358 352
359 test_BUILT_IN_set() { 353 test_BUILT_IN_set() {
360 addTestFile(''' 354 addTestFile('''
361 set aaa(x) {} 355 set aaa(x) {}
362 class A 356 class A
363 set bbb(x) {} 357 set bbb(x) {}
364 } 358 }
365 main() { 359 main() {
366 var set = 42; 360 var set = 42;
367 }'''); 361 }''');
368 return prepareHighlights().then((_) { 362 return prepareHighlights().then((_) {
369 assertHasRegion(HighlightType.BUILT_IN, 'set aaa('); 363 assertHasRegion(HighlightRegionType.BUILT_IN, 'set aaa(');
370 assertHasRegion(HighlightType.BUILT_IN, 'set bbb('); 364 assertHasRegion(HighlightRegionType.BUILT_IN, 'set bbb(');
371 assertNoRegion(HighlightType.BUILT_IN, 'set = 42'); 365 assertNoRegion(HighlightRegionType.BUILT_IN, 'set = 42');
372 }); 366 });
373 } 367 }
374 368
375 test_BUILT_IN_show() { 369 test_BUILT_IN_show() {
376 addTestFile(''' 370 addTestFile('''
377 import 'foo.dart' show Foo; 371 import 'foo.dart' show Foo;
378 main() { 372 main() {
379 var show = 42; 373 var show = 42;
380 }'''); 374 }''');
381 return prepareHighlights().then((_) { 375 return prepareHighlights().then((_) {
382 assertHasRegion(HighlightType.BUILT_IN, 'show Foo'); 376 assertHasRegion(HighlightRegionType.BUILT_IN, 'show Foo');
383 assertNoRegion(HighlightType.BUILT_IN, 'show = 42'); 377 assertNoRegion(HighlightRegionType.BUILT_IN, 'show = 42');
384 }); 378 });
385 } 379 }
386 380
387 test_BUILT_IN_static() { 381 test_BUILT_IN_static() {
388 addTestFile(''' 382 addTestFile('''
389 class A { 383 class A {
390 static aaa; 384 static aaa;
391 static bbb() {} 385 static bbb() {}
392 } 386 }
393 main() { 387 main() {
394 var static = 42; 388 var static = 42;
395 }'''); 389 }''');
396 return prepareHighlights().then((_) { 390 return prepareHighlights().then((_) {
397 assertHasRegion(HighlightType.BUILT_IN, 'static aaa;'); 391 assertHasRegion(HighlightRegionType.BUILT_IN, 'static aaa;');
398 assertHasRegion(HighlightType.BUILT_IN, 'static bbb()'); 392 assertHasRegion(HighlightRegionType.BUILT_IN, 'static bbb()');
399 assertNoRegion(HighlightType.BUILT_IN, 'static = 42'); 393 assertNoRegion(HighlightRegionType.BUILT_IN, 'static = 42');
400 }); 394 });
401 } 395 }
402 396
403 test_BUILT_IN_typedef() { 397 test_BUILT_IN_typedef() {
404 addTestFile(''' 398 addTestFile('''
405 typedef A(); 399 typedef A();
406 main() { 400 main() {
407 var typedef = 42; 401 var typedef = 42;
408 }'''); 402 }''');
409 return prepareHighlights().then((_) { 403 return prepareHighlights().then((_) {
410 assertHasRegion(HighlightType.BUILT_IN, 'typedef A();'); 404 assertHasRegion(HighlightRegionType.BUILT_IN, 'typedef A();');
411 assertNoRegion(HighlightType.BUILT_IN, 'typedef = 42'); 405 assertNoRegion(HighlightRegionType.BUILT_IN, 'typedef = 42');
412 }); 406 });
413 } 407 }
414 408
415 test_CLASS() { 409 test_CLASS() {
416 addTestFile(''' 410 addTestFile('''
417 class AAA {} 411 class AAA {}
418 AAA aaa; 412 AAA aaa;
419 '''); 413 ''');
420 return prepareHighlights().then((_) { 414 return prepareHighlights().then((_) {
421 assertHasRegion(HighlightType.CLASS, 'AAA {}'); 415 assertHasRegion(HighlightRegionType.CLASS, 'AAA {}');
422 assertHasRegion(HighlightType.CLASS, 'AAA aaa'); 416 assertHasRegion(HighlightRegionType.CLASS, 'AAA aaa');
423 }); 417 });
424 } 418 }
425 419
426 test_CLASS_notDynamic() { 420 test_CLASS_notDynamic() {
427 addTestFile(''' 421 addTestFile('''
428 dynamic f() {} 422 dynamic f() {}
429 '''); 423 ''');
430 return prepareHighlights().then((_) { 424 return prepareHighlights().then((_) {
431 assertNoRegion(HighlightType.CLASS, 'dynamic f()'); 425 assertNoRegion(HighlightRegionType.CLASS, 'dynamic f()');
432 }); 426 });
433 } 427 }
434 428
435 test_CLASS_notVoid() { 429 test_CLASS_notVoid() {
436 addTestFile(''' 430 addTestFile('''
437 void f() {} 431 void f() {}
438 '''); 432 ''');
439 return prepareHighlights().then((_) { 433 return prepareHighlights().then((_) {
440 assertNoRegion(HighlightType.CLASS, 'void f()'); 434 assertNoRegion(HighlightRegionType.CLASS, 'void f()');
441 }); 435 });
442 } 436 }
443 437
444 test_COMMENT() { 438 test_COMMENT() {
445 addTestFile(''' 439 addTestFile('''
446 /** 440 /**
447 * documentation comment 441 * documentation comment
448 */ 442 */
449 void main() { 443 void main() {
450 // end-of-line comment 444 // end-of-line comment
451 my_function(1); 445 my_function(1);
452 } 446 }
453 447
454 void my_function(String a) { 448 void my_function(String a) {
455 /* block comment */ 449 /* block comment */
456 } 450 }
457 '''); 451 ''');
458 return prepareHighlights().then((_) { 452 return prepareHighlights().then((_) {
459 assertHasRegion(HighlightType.COMMENT_DOCUMENTATION, '/**', 32); 453 assertHasRegion(HighlightRegionType.COMMENT_DOCUMENTATION, '/**', 32);
460 assertHasRegion(HighlightType.COMMENT_END_OF_LINE, '//', 22); 454 assertHasRegion(HighlightRegionType.COMMENT_END_OF_LINE, '//', 22);
461 assertHasRegion(HighlightType.COMMENT_BLOCK, '/* b', 19); 455 assertHasRegion(HighlightRegionType.COMMENT_BLOCK, '/* b', 19);
462 }); 456 });
463 } 457 }
464 458
465 test_CONSTRUCTOR() { 459 test_CONSTRUCTOR() {
466 addTestFile(''' 460 addTestFile('''
467 class AAA { 461 class AAA {
468 AAA() {} 462 AAA() {}
469 AAA.name(p) {} 463 AAA.name(p) {}
470 } 464 }
471 main() { 465 main() {
472 new AAA(); 466 new AAA();
473 new AAA.name(42); 467 new AAA.name(42);
474 } 468 }
475 '''); 469 ''');
476 return prepareHighlights().then((_) { 470 return prepareHighlights().then((_) {
477 assertHasRegion(HighlightType.CONSTRUCTOR, 'name(p)'); 471 assertHasRegion(HighlightRegionType.CONSTRUCTOR, 'name(p)');
478 assertHasRegion(HighlightType.CONSTRUCTOR, 'name(42)'); 472 assertHasRegion(HighlightRegionType.CONSTRUCTOR, 'name(42)');
479 assertNoRegion(HighlightType.CONSTRUCTOR, 'AAA() {}'); 473 assertNoRegion(HighlightRegionType.CONSTRUCTOR, 'AAA() {}');
480 assertNoRegion(HighlightType.CONSTRUCTOR, 'AAA();'); 474 assertNoRegion(HighlightRegionType.CONSTRUCTOR, 'AAA();');
481 }); 475 });
482 } 476 }
483 477
484 test_DIRECTIVE() { 478 test_DIRECTIVE() {
485 addTestFile(''' 479 addTestFile('''
486 library lib; 480 library lib;
487 import 'dart:math'; 481 import 'dart:math';
488 export 'dart:math'; 482 export 'dart:math';
489 part 'part.dart'; 483 part 'part.dart';
490 '''); 484 ''');
491 return prepareHighlights().then((_) { 485 return prepareHighlights().then((_) {
492 assertHasStringRegion(HighlightType.DIRECTIVE, "library lib;"); 486 assertHasStringRegion(HighlightRegionType.DIRECTIVE, "library lib;");
493 assertHasStringRegion(HighlightType.DIRECTIVE, "import 'dart:math';"); 487 assertHasStringRegion(HighlightRegionType.DIRECTIVE, "import 'dart:math';" );
494 assertHasStringRegion(HighlightType.DIRECTIVE, "export 'dart:math';"); 488 assertHasStringRegion(HighlightRegionType.DIRECTIVE, "export 'dart:math';" );
495 assertHasStringRegion(HighlightType.DIRECTIVE, "part 'part.dart';"); 489 assertHasStringRegion(HighlightRegionType.DIRECTIVE, "part 'part.dart';");
496 }); 490 });
497 } 491 }
498 492
499 test_DIRECTIVE_partOf() { 493 test_DIRECTIVE_partOf() {
500 addTestFile(''' 494 addTestFile('''
501 part of lib; 495 part of lib;
502 '''); 496 ''');
503 _addLibraryForTestPart(); 497 _addLibraryForTestPart();
504 return prepareHighlights().then((_) { 498 return prepareHighlights().then((_) {
505 assertHasStringRegion(HighlightType.DIRECTIVE, "part of lib;"); 499 assertHasStringRegion(HighlightRegionType.DIRECTIVE, "part of lib;");
506 }); 500 });
507 } 501 }
508 502
509 test_DYNAMIC_TYPE() { 503 test_DYNAMIC_TYPE() {
510 addTestFile(''' 504 addTestFile('''
511 f() {} 505 f() {}
512 main(p) { 506 main(p) {
513 print(p); 507 print(p);
514 var v1 = f(); 508 var v1 = f();
515 int v2; 509 int v2;
516 var v3 = v2; 510 var v3 = v2;
517 } 511 }
518 '''); 512 ''');
519 return prepareHighlights().then((_) { 513 return prepareHighlights().then((_) {
520 assertHasRegion(HighlightType.DYNAMIC_TYPE, 'p)'); 514 assertHasRegion(HighlightRegionType.DYNAMIC_TYPE, 'p)');
521 assertHasRegion(HighlightType.DYNAMIC_TYPE, 'v1 ='); 515 assertHasRegion(HighlightRegionType.DYNAMIC_TYPE, 'v1 =');
522 assertNoRegion(HighlightType.DYNAMIC_TYPE, 'v2;'); 516 assertNoRegion(HighlightRegionType.DYNAMIC_TYPE, 'v2;');
523 assertNoRegion(HighlightType.DYNAMIC_TYPE, 'v3 ='); 517 assertNoRegion(HighlightRegionType.DYNAMIC_TYPE, 'v3 =');
524 }); 518 });
525 } 519 }
526 520
527 test_FIELD() { 521 test_FIELD() {
528 addTestFile(''' 522 addTestFile('''
529 class A { 523 class A {
530 int aaa = 1; 524 int aaa = 1;
531 int bbb = 2; 525 int bbb = 2;
532 A([this.bbb = 3]); 526 A([this.bbb = 3]);
533 } 527 }
534 main(A a) { 528 main(A a) {
535 a.aaa = 4; 529 a.aaa = 4;
536 a.bbb = 5; 530 a.bbb = 5;
537 } 531 }
538 '''); 532 ''');
539 return prepareHighlights().then((_) { 533 return prepareHighlights().then((_) {
540 assertHasRegion(HighlightType.FIELD, 'aaa = 1'); 534 assertHasRegion(HighlightRegionType.FIELD, 'aaa = 1');
541 assertHasRegion(HighlightType.FIELD, 'bbb = 2'); 535 assertHasRegion(HighlightRegionType.FIELD, 'bbb = 2');
542 assertHasRegion(HighlightType.FIELD, 'bbb = 3'); 536 assertHasRegion(HighlightRegionType.FIELD, 'bbb = 3');
543 assertHasRegion(HighlightType.FIELD, 'aaa = 4'); 537 assertHasRegion(HighlightRegionType.FIELD, 'aaa = 4');
544 assertHasRegion(HighlightType.FIELD, 'bbb = 5'); 538 assertHasRegion(HighlightRegionType.FIELD, 'bbb = 5');
545 }); 539 });
546 } 540 }
547 541
548 test_FIELD_STATIC() { 542 test_FIELD_STATIC() {
549 addTestFile(''' 543 addTestFile('''
550 class A { 544 class A {
551 static aaa = 1; 545 static aaa = 1;
552 static get bbb => null; 546 static get bbb => null;
553 static set ccc(x) {} 547 static set ccc(x) {}
554 } 548 }
555 main() { 549 main() {
556 A.aaa = 2; 550 A.aaa = 2;
557 A.bbb; 551 A.bbb;
558 A.ccc = 3; 552 A.ccc = 3;
559 } 553 }
560 '''); 554 ''');
561 return prepareHighlights().then((_) { 555 return prepareHighlights().then((_) {
562 assertHasRegion(HighlightType.FIELD_STATIC, 'aaa = 1'); 556 assertHasRegion(HighlightRegionType.FIELD_STATIC, 'aaa = 1');
563 assertHasRegion(HighlightType.FIELD_STATIC, 'aaa = 2'); 557 assertHasRegion(HighlightRegionType.FIELD_STATIC, 'aaa = 2');
564 assertHasRegion(HighlightType.FIELD_STATIC, 'bbb;'); 558 assertHasRegion(HighlightRegionType.FIELD_STATIC, 'bbb;');
565 assertHasRegion(HighlightType.FIELD_STATIC, 'ccc = 3'); 559 assertHasRegion(HighlightRegionType.FIELD_STATIC, 'ccc = 3');
566 }); 560 });
567 } 561 }
568 562
569 test_FUNCTION() { 563 test_FUNCTION() {
570 addTestFile(''' 564 addTestFile('''
571 fff(p) {} 565 fff(p) {}
572 main() { 566 main() {
573 fff(42); 567 fff(42);
574 } 568 }
575 '''); 569 ''');
576 return prepareHighlights().then((_) { 570 return prepareHighlights().then((_) {
577 assertHasRegion(HighlightType.FUNCTION_DECLARATION, 'fff(p) {}'); 571 assertHasRegion(HighlightRegionType.FUNCTION_DECLARATION, 'fff(p) {}');
578 assertHasRegion(HighlightType.FUNCTION, 'fff(42)'); 572 assertHasRegion(HighlightRegionType.FUNCTION, 'fff(42)');
579 }); 573 });
580 } 574 }
581 575
582 test_FUNCTION_TYPE_ALIAS() { 576 test_FUNCTION_TYPE_ALIAS() {
583 addTestFile(''' 577 addTestFile('''
584 typedef FFF(p); 578 typedef FFF(p);
585 main(FFF fff) { 579 main(FFF fff) {
586 } 580 }
587 '''); 581 ''');
588 return prepareHighlights().then((_) { 582 return prepareHighlights().then((_) {
589 assertHasRegion(HighlightType.FUNCTION_TYPE_ALIAS, 'FFF(p)'); 583 assertHasRegion(HighlightRegionType.FUNCTION_TYPE_ALIAS, 'FFF(p)');
590 assertHasRegion(HighlightType.FUNCTION_TYPE_ALIAS, 'FFF fff)'); 584 assertHasRegion(HighlightRegionType.FUNCTION_TYPE_ALIAS, 'FFF fff)');
591 }); 585 });
592 } 586 }
593 587
594 test_GETTER_DECLARATION() { 588 test_GETTER_DECLARATION() {
595 addTestFile(''' 589 addTestFile('''
596 get aaa => null; 590 get aaa => null;
597 class A { 591 class A {
598 get bbb => null; 592 get bbb => null;
599 } 593 }
600 main(A a) { 594 main(A a) {
601 aaa; 595 aaa;
602 a.bbb; 596 a.bbb;
603 } 597 }
604 '''); 598 ''');
605 return prepareHighlights().then((_) { 599 return prepareHighlights().then((_) {
606 assertHasRegion(HighlightType.GETTER_DECLARATION, 'aaa => null'); 600 assertHasRegion(HighlightRegionType.GETTER_DECLARATION, 'aaa => null');
607 assertHasRegion(HighlightType.GETTER_DECLARATION, 'bbb => null'); 601 assertHasRegion(HighlightRegionType.GETTER_DECLARATION, 'bbb => null');
608 assertHasRegion(HighlightType.TOP_LEVEL_VARIABLE, 'aaa;'); 602 assertHasRegion(HighlightRegionType.TOP_LEVEL_VARIABLE, 'aaa;');
609 assertHasRegion(HighlightType.FIELD, 'bbb;'); 603 assertHasRegion(HighlightRegionType.FIELD, 'bbb;');
610 }); 604 });
611 } 605 }
612 606
613 test_IDENTIFIER_DEFAULT() { 607 test_IDENTIFIER_DEFAULT() {
614 addTestFile(''' 608 addTestFile('''
615 main() { 609 main() {
616 aaa = 42; 610 aaa = 42;
617 bbb(84); 611 bbb(84);
618 CCC ccc; 612 CCC ccc;
619 } 613 }
620 '''); 614 ''');
621 return prepareHighlights().then((_) { 615 return prepareHighlights().then((_) {
622 assertHasRegion(HighlightType.IDENTIFIER_DEFAULT, 'aaa = 42'); 616 assertHasRegion(HighlightRegionType.IDENTIFIER_DEFAULT, 'aaa = 42');
623 assertHasRegion(HighlightType.IDENTIFIER_DEFAULT, 'bbb(84)'); 617 assertHasRegion(HighlightRegionType.IDENTIFIER_DEFAULT, 'bbb(84)');
624 assertHasRegion(HighlightType.IDENTIFIER_DEFAULT, 'CCC ccc'); 618 assertHasRegion(HighlightRegionType.IDENTIFIER_DEFAULT, 'CCC ccc');
625 }); 619 });
626 } 620 }
627 621
628 test_IMPORT_PREFIX() { 622 test_IMPORT_PREFIX() {
629 addTestFile(''' 623 addTestFile('''
630 import 'dart:math' as ma; 624 import 'dart:math' as ma;
631 main() { 625 main() {
632 ma.max(1, 2); 626 ma.max(1, 2);
633 } 627 }
634 '''); 628 ''');
635 return prepareHighlights().then((_) { 629 return prepareHighlights().then((_) {
636 assertHasRegion(HighlightType.IMPORT_PREFIX, 'ma;'); 630 assertHasRegion(HighlightRegionType.IMPORT_PREFIX, 'ma;');
637 assertHasRegion(HighlightType.IMPORT_PREFIX, 'ma.max'); 631 assertHasRegion(HighlightRegionType.IMPORT_PREFIX, 'ma.max');
638 }); 632 });
639 } 633 }
640 634
641 test_KEYWORD() { 635 test_KEYWORD() {
642 addTestFile(''' 636 addTestFile('''
643 main() { 637 main() {
644 assert(true); 638 assert(true);
645 for (;;) break; 639 for (;;) break;
646 switch (0) { 640 switch (0) {
647 case 0: break; 641 case 0: break;
(...skipping 17 matching lines...) Expand all
665 class A {} 659 class A {}
666 class B extends A { 660 class B extends A {
667 B() : super(); 661 B() : super();
668 m() { 662 m() {
669 return this; 663 return this;
670 } 664 }
671 } 665 }
672 class C = Object with A; 666 class C = Object with A;
673 '''); 667 ''');
674 return prepareHighlights().then((_) { 668 return prepareHighlights().then((_) {
675 assertHasRegion(HighlightType.KEYWORD, 'assert(true)'); 669 assertHasRegion(HighlightRegionType.KEYWORD, 'assert(true)');
676 assertHasRegion(HighlightType.KEYWORD, 'for (;;)'); 670 assertHasRegion(HighlightRegionType.KEYWORD, 'for (;;)');
677 assertHasRegion(HighlightType.KEYWORD, 'for (var v4 in'); 671 assertHasRegion(HighlightRegionType.KEYWORD, 'for (var v4 in');
678 assertHasRegion(HighlightType.KEYWORD, 'break;'); 672 assertHasRegion(HighlightRegionType.KEYWORD, 'break;');
679 assertHasRegion(HighlightType.KEYWORD, 'case 0:'); 673 assertHasRegion(HighlightRegionType.KEYWORD, 'case 0:');
680 assertHasRegion(HighlightType.KEYWORD, 'catch (e) {}'); 674 assertHasRegion(HighlightRegionType.KEYWORD, 'catch (e) {}');
681 assertHasRegion(HighlightType.KEYWORD, 'class A {}'); 675 assertHasRegion(HighlightRegionType.KEYWORD, 'class A {}');
682 assertHasRegion(HighlightType.KEYWORD, 'const v1'); 676 assertHasRegion(HighlightRegionType.KEYWORD, 'const v1');
683 assertHasRegion(HighlightType.KEYWORD, 'continue;'); 677 assertHasRegion(HighlightRegionType.KEYWORD, 'continue;');
684 assertHasRegion(HighlightType.KEYWORD, 'default:'); 678 assertHasRegion(HighlightRegionType.KEYWORD, 'default:');
685 assertHasRegion(HighlightType.KEYWORD, 'do {} while'); 679 assertHasRegion(HighlightRegionType.KEYWORD, 'do {} while');
686 assertHasRegion(HighlightType.KEYWORD, 'if (true)'); 680 assertHasRegion(HighlightRegionType.KEYWORD, 'if (true)');
687 assertHasRegion(HighlightType.KEYWORD, 'false;'); 681 assertHasRegion(HighlightRegionType.KEYWORD, 'false;');
688 assertHasRegion(HighlightType.KEYWORD, 'final v3 ='); 682 assertHasRegion(HighlightRegionType.KEYWORD, 'final v3 =');
689 assertHasRegion(HighlightType.KEYWORD, 'finally {}'); 683 assertHasRegion(HighlightRegionType.KEYWORD, 'finally {}');
690 assertHasRegion(HighlightType.KEYWORD, 'in []'); 684 assertHasRegion(HighlightRegionType.KEYWORD, 'in []');
691 assertHasRegion(HighlightType.KEYWORD, 'is int'); 685 assertHasRegion(HighlightRegionType.KEYWORD, 'is int');
692 assertHasRegion(HighlightType.KEYWORD, 'new A();'); 686 assertHasRegion(HighlightRegionType.KEYWORD, 'new A();');
693 assertHasRegion(HighlightType.KEYWORD, 'rethrow;'); 687 assertHasRegion(HighlightRegionType.KEYWORD, 'rethrow;');
694 assertHasRegion(HighlightType.KEYWORD, 'return this'); 688 assertHasRegion(HighlightRegionType.KEYWORD, 'return this');
695 assertHasRegion(HighlightType.KEYWORD, 'super();'); 689 assertHasRegion(HighlightRegionType.KEYWORD, 'super();');
696 assertHasRegion(HighlightType.KEYWORD, 'switch (0)'); 690 assertHasRegion(HighlightRegionType.KEYWORD, 'switch (0)');
697 assertHasRegion(HighlightType.KEYWORD, 'this;'); 691 assertHasRegion(HighlightRegionType.KEYWORD, 'this;');
698 assertHasRegion(HighlightType.KEYWORD, 'true;'); 692 assertHasRegion(HighlightRegionType.KEYWORD, 'true;');
699 assertHasRegion(HighlightType.KEYWORD, 'try {'); 693 assertHasRegion(HighlightRegionType.KEYWORD, 'try {');
700 assertHasRegion(HighlightType.KEYWORD, 'while (true) {}'); 694 assertHasRegion(HighlightRegionType.KEYWORD, 'while (true) {}');
701 assertHasRegion(HighlightType.KEYWORD, 'while (true);'); 695 assertHasRegion(HighlightRegionType.KEYWORD, 'while (true);');
702 assertHasRegion(HighlightType.KEYWORD, 'with A;'); 696 assertHasRegion(HighlightRegionType.KEYWORD, 'with A;');
703 }); 697 });
704 } 698 }
705 699
706 test_KEYWORD_void() { 700 test_KEYWORD_void() {
707 addTestFile(''' 701 addTestFile('''
708 void main() { 702 void main() {
709 } 703 }
710 '''); 704 ''');
711 return prepareHighlights().then((_) { 705 return prepareHighlights().then((_) {
712 assertHasRegion(HighlightType.KEYWORD, 'void main()'); 706 assertHasRegion(HighlightRegionType.KEYWORD, 'void main()');
713 }); 707 });
714 } 708 }
715 709
716 test_LITERAL_BOOLEAN() { 710 test_LITERAL_BOOLEAN() {
717 addTestFile('var V = true;'); 711 addTestFile('var V = true;');
718 return prepareHighlights().then((_) { 712 return prepareHighlights().then((_) {
719 assertHasRegion(HighlightType.LITERAL_BOOLEAN, 'true;'); 713 assertHasRegion(HighlightRegionType.LITERAL_BOOLEAN, 'true;');
720 }); 714 });
721 } 715 }
722 716
723 test_LITERAL_DOUBLE() { 717 test_LITERAL_DOUBLE() {
724 addTestFile('var V = 4.2;'); 718 addTestFile('var V = 4.2;');
725 return prepareHighlights().then((_) { 719 return prepareHighlights().then((_) {
726 assertHasRegion(HighlightType.LITERAL_DOUBLE, '4.2;', '4.2'.length); 720 assertHasRegion(HighlightRegionType.LITERAL_DOUBLE, '4.2;', '4.2'.length);
727 }); 721 });
728 } 722 }
729 723
730 test_LITERAL_INTEGER() { 724 test_LITERAL_INTEGER() {
731 addTestFile('var V = 42;'); 725 addTestFile('var V = 42;');
732 return prepareHighlights().then((_) { 726 return prepareHighlights().then((_) {
733 assertHasRegion(HighlightType.LITERAL_INTEGER, '42;'); 727 assertHasRegion(HighlightRegionType.LITERAL_INTEGER, '42;');
734 }); 728 });
735 } 729 }
736 730
737 test_LITERAL_LIST() { 731 test_LITERAL_LIST() {
738 addTestFile('var V = <int>[1, 2, 3];'); 732 addTestFile('var V = <int>[1, 2, 3];');
739 return prepareHighlights().then((_) { 733 return prepareHighlights().then((_) {
740 assertHasStringRegion(HighlightType.LITERAL_LIST, '<int>[1, 2, 3]'); 734 assertHasStringRegion(HighlightRegionType.LITERAL_LIST, '<int>[1, 2, 3]');
741 }); 735 });
742 } 736 }
743 737
744 test_LITERAL_MAP() { 738 test_LITERAL_MAP() {
745 addTestFile("var V = const <int, String>{1: 'a', 2: 'b', 3: 'c'};"); 739 addTestFile("var V = const <int, String>{1: 'a', 2: 'b', 3: 'c'};");
746 return prepareHighlights().then((_) { 740 return prepareHighlights().then((_) {
747 assertHasStringRegion( 741 assertHasStringRegion(
748 HighlightType.LITERAL_MAP, 742 HighlightRegionType.LITERAL_MAP,
749 "const <int, String>{1: 'a', 2: 'b', 3: 'c'}"); 743 "const <int, String>{1: 'a', 2: 'b', 3: 'c'}");
750 }); 744 });
751 } 745 }
752 746
753 test_LITERAL_STRING() { 747 test_LITERAL_STRING() {
754 addTestFile('var V = "abc";'); 748 addTestFile('var V = "abc";');
755 return prepareHighlights().then((_) { 749 return prepareHighlights().then((_) {
756 assertHasRegion(HighlightType.LITERAL_STRING, '"abc";', '"abc"'.length); 750 assertHasRegion(HighlightRegionType.LITERAL_STRING, '"abc";', '"abc"'.leng th);
757 }); 751 });
758 } 752 }
759 753
760 test_LOCAL_VARIABLE() { 754 test_LOCAL_VARIABLE() {
761 addTestFile(''' 755 addTestFile('''
762 main() { 756 main() {
763 int vvv = 0; 757 int vvv = 0;
764 vvv; 758 vvv;
765 vvv = 1; 759 vvv = 1;
766 } 760 }
767 '''); 761 ''');
768 return prepareHighlights().then((_) { 762 return prepareHighlights().then((_) {
769 assertHasRegion(HighlightType.LOCAL_VARIABLE_DECLARATION, 'vvv = 0'); 763 assertHasRegion(HighlightRegionType.LOCAL_VARIABLE_DECLARATION, 'vvv = 0') ;
770 assertHasRegion(HighlightType.LOCAL_VARIABLE, 'vvv;'); 764 assertHasRegion(HighlightRegionType.LOCAL_VARIABLE, 'vvv;');
771 assertHasRegion(HighlightType.LOCAL_VARIABLE, 'vvv = 1;'); 765 assertHasRegion(HighlightRegionType.LOCAL_VARIABLE, 'vvv = 1;');
772 }); 766 });
773 } 767 }
774 768
775 test_METHOD() { 769 test_METHOD() {
776 addTestFile(''' 770 addTestFile('''
777 class A { 771 class A {
778 aaa() {} 772 aaa() {}
779 static bbb() {} 773 static bbb() {}
780 } 774 }
781 main(A a) { 775 main(A a) {
782 a.aaa(); 776 a.aaa();
783 a.aaa; 777 a.aaa;
784 A.bbb(); 778 A.bbb();
785 A.bbb; 779 A.bbb;
786 } 780 }
787 '''); 781 ''');
788 return prepareHighlights().then((_) { 782 return prepareHighlights().then((_) {
789 assertHasRegion(HighlightType.METHOD_DECLARATION, 'aaa() {}'); 783 assertHasRegion(HighlightRegionType.METHOD_DECLARATION, 'aaa() {}');
790 assertHasRegion(HighlightType.METHOD_DECLARATION_STATIC, 'bbb() {}'); 784 assertHasRegion(HighlightRegionType.METHOD_DECLARATION_STATIC, 'bbb() {}') ;
791 assertHasRegion(HighlightType.METHOD, 'aaa();'); 785 assertHasRegion(HighlightRegionType.METHOD, 'aaa();');
792 assertHasRegion(HighlightType.METHOD, 'aaa;'); 786 assertHasRegion(HighlightRegionType.METHOD, 'aaa;');
793 assertHasRegion(HighlightType.METHOD_STATIC, 'bbb();'); 787 assertHasRegion(HighlightRegionType.METHOD_STATIC, 'bbb();');
794 assertHasRegion(HighlightType.METHOD_STATIC, 'bbb;'); 788 assertHasRegion(HighlightRegionType.METHOD_STATIC, 'bbb;');
795 }); 789 });
796 } 790 }
797 791
798 test_METHOD_bestType() { 792 test_METHOD_bestType() {
799 addTestFile(''' 793 addTestFile('''
800 main(p) { 794 main(p) {
801 if (p is List) { 795 if (p is List) {
802 p.add(null); 796 p.add(null);
803 } 797 }
804 } 798 }
805 '''); 799 ''');
806 return prepareHighlights().then((_) { 800 return prepareHighlights().then((_) {
807 assertHasRegion(HighlightType.METHOD, 'add(null)'); 801 assertHasRegion(HighlightRegionType.METHOD, 'add(null)');
808 }); 802 });
809 } 803 }
810 804
811 test_PARAMETER() { 805 test_PARAMETER() {
812 addTestFile(''' 806 addTestFile('''
813 main(int p) { 807 main(int p) {
814 p; 808 p;
815 p = 42; 809 p = 42;
816 } 810 }
817 '''); 811 ''');
818 return prepareHighlights().then((_) { 812 return prepareHighlights().then((_) {
819 assertHasRegion(HighlightType.PARAMETER, 'p) {'); 813 assertHasRegion(HighlightRegionType.PARAMETER, 'p) {');
820 assertHasRegion(HighlightType.PARAMETER, 'p;'); 814 assertHasRegion(HighlightRegionType.PARAMETER, 'p;');
821 assertHasRegion(HighlightType.PARAMETER, 'p = 42'); 815 assertHasRegion(HighlightRegionType.PARAMETER, 'p = 42');
822 }); 816 });
823 } 817 }
824 818
825 test_SETTER_DECLARATION() { 819 test_SETTER_DECLARATION() {
826 addTestFile(''' 820 addTestFile('''
827 set aaa(x) {} 821 set aaa(x) {}
828 class A { 822 class A {
829 set bbb(x) {} 823 set bbb(x) {}
830 } 824 }
831 main(A a) { 825 main(A a) {
832 aaa = 1; 826 aaa = 1;
833 a.bbb = 2; 827 a.bbb = 2;
834 } 828 }
835 '''); 829 ''');
836 return prepareHighlights().then((_) { 830 return prepareHighlights().then((_) {
837 assertHasRegion(HighlightType.SETTER_DECLARATION, 'aaa(x)'); 831 assertHasRegion(HighlightRegionType.SETTER_DECLARATION, 'aaa(x)');
838 assertHasRegion(HighlightType.SETTER_DECLARATION, 'bbb(x)'); 832 assertHasRegion(HighlightRegionType.SETTER_DECLARATION, 'bbb(x)');
839 assertHasRegion(HighlightType.TOP_LEVEL_VARIABLE, 'aaa = 1'); 833 assertHasRegion(HighlightRegionType.TOP_LEVEL_VARIABLE, 'aaa = 1');
840 assertHasRegion(HighlightType.FIELD, 'bbb = 2'); 834 assertHasRegion(HighlightRegionType.FIELD, 'bbb = 2');
841 }); 835 });
842 } 836 }
843 837
844 test_TOP_LEVEL_VARIABLE() { 838 test_TOP_LEVEL_VARIABLE() {
845 addTestFile(''' 839 addTestFile('''
846 const VVV = 0; 840 const VVV = 0;
847 @VVV // annotation 841 @VVV // annotation
848 main() { 842 main() {
849 print(VVV); 843 print(VVV);
850 VVV = 1; 844 VVV = 1;
851 } 845 }
852 '''); 846 ''');
853 return prepareHighlights().then((_) { 847 return prepareHighlights().then((_) {
854 assertHasRegion(HighlightType.TOP_LEVEL_VARIABLE, 'VVV = 0'); 848 assertHasRegion(HighlightRegionType.TOP_LEVEL_VARIABLE, 'VVV = 0');
855 assertHasRegion(HighlightType.TOP_LEVEL_VARIABLE, 'VVV // annotation'); 849 assertHasRegion(HighlightRegionType.TOP_LEVEL_VARIABLE, 'VVV // annotation ');
856 assertHasRegion(HighlightType.TOP_LEVEL_VARIABLE, 'VVV);'); 850 assertHasRegion(HighlightRegionType.TOP_LEVEL_VARIABLE, 'VVV);');
857 assertHasRegion(HighlightType.TOP_LEVEL_VARIABLE, 'VVV = 1'); 851 assertHasRegion(HighlightRegionType.TOP_LEVEL_VARIABLE, 'VVV = 1');
858 }); 852 });
859 } 853 }
860 854
861 test_TYPE_NAME_DYNAMIC() { 855 test_TYPE_NAME_DYNAMIC() {
862 addTestFile(''' 856 addTestFile('''
863 dynamic main() { 857 dynamic main() {
864 dynamic = 42; 858 dynamic = 42;
865 } 859 }
866 '''); 860 ''');
867 return prepareHighlights().then((_) { 861 return prepareHighlights().then((_) {
868 assertHasRegion(HighlightType.TYPE_NAME_DYNAMIC, 'dynamic main()'); 862 assertHasRegion(HighlightRegionType.TYPE_NAME_DYNAMIC, 'dynamic main()');
869 assertNoRegion(HighlightType.IDENTIFIER_DEFAULT, 'dynamic main()'); 863 assertNoRegion(HighlightRegionType.IDENTIFIER_DEFAULT, 'dynamic main()');
870 assertNoRegion(HighlightType.TYPE_NAME_DYNAMIC, 'dynamic = 42'); 864 assertNoRegion(HighlightRegionType.TYPE_NAME_DYNAMIC, 'dynamic = 42');
871 }); 865 });
872 } 866 }
873 867
874 test_TYPE_PARAMETER() { 868 test_TYPE_PARAMETER() {
875 addTestFile(''' 869 addTestFile('''
876 class A<T> { 870 class A<T> {
877 T fff; 871 T fff;
878 T mmm(T p) => null; 872 T mmm(T p) => null;
879 } 873 }
880 '''); 874 ''');
881 return prepareHighlights().then((_) { 875 return prepareHighlights().then((_) {
882 assertHasRegion(HighlightType.TYPE_PARAMETER, 'T> {'); 876 assertHasRegion(HighlightRegionType.TYPE_PARAMETER, 'T> {');
883 assertHasRegion(HighlightType.TYPE_PARAMETER, 'T fff;'); 877 assertHasRegion(HighlightRegionType.TYPE_PARAMETER, 'T fff;');
884 assertHasRegion(HighlightType.TYPE_PARAMETER, 'T mmm('); 878 assertHasRegion(HighlightRegionType.TYPE_PARAMETER, 'T mmm(');
885 assertHasRegion(HighlightType.TYPE_PARAMETER, 'T p)'); 879 assertHasRegion(HighlightRegionType.TYPE_PARAMETER, 'T p)');
886 }); 880 });
887 } 881 }
888 882
889 void _addLibraryForTestPart() { 883 void _addLibraryForTestPart() {
890 addFile('$testFolder/my_lib.dart', ''' 884 addFile('$testFolder/my_lib.dart', '''
891 library lib; 885 library lib;
892 part 'test.dart'; 886 part 'test.dart';
893 '''); 887 ''');
894 } 888 }
895 } 889 }
896 890
897 891
898 @ReflectiveTestCase() 892 @ReflectiveTestCase()
899 class HighlightTypeTest { 893 class HighlightTypeTest {
900 void test_toString() { 894 void test_toString() {
901 expect(HighlightType.CLASS.toString(), HighlightType.CLASS.name); 895 expect(HighlightRegionType.CLASS.toString(), 'HighlightRegionType.CLASS');
902 } 896 }
903 897
904 void test_valueOf() { 898 void test_constructor() {
905 expect( 899 expect(
906 HighlightType.CLASS, 900 HighlightRegionType.CLASS,
907 HighlightType.valueOf(HighlightType.CLASS.name)); 901 new HighlightRegionType(HighlightRegionType.CLASS.name));
908 } 902 }
909 903
910 void test_valueOf_unknown() { 904 void test_valueOf_unknown() {
911 expect(() { 905 expect(() {
912 HighlightType.valueOf('no-such-type'); 906 new HighlightRegionType('no-such-type');
913 }, throws); 907 }, throws);
914 } 908 }
915 } 909 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698