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

Side by Side Diff: pkg/analysis_server/test/analysis/notification_outline_test.dart

Issue 934353002: Issue 22476. Outline for enums. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 10 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.analysis.notification.outline; 5 library test.analysis.notification.outline;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/src/constants.dart'; 9 import 'package:analysis_server/src/constants.dart';
10 import 'package:analysis_server/src/protocol.dart'; 10 import 'package:analysis_server/src/protocol.dart';
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 expect(location.offset, testCode.indexOf("B(int p);")); 249 expect(location.offset, testCode.indexOf("B(int p);"));
250 expect(location.length, "B".length); 250 expect(location.length, "B".length);
251 } 251 }
252 expect(element.parameters, "(int p)"); 252 expect(element.parameters, "(int p)");
253 expect(element.returnType, isNull); 253 expect(element.returnType, isNull);
254 } 254 }
255 } 255 }
256 }); 256 });
257 } 257 }
258 258
259 test_enum() {
260 addTestFile('''
261 enum MyEnum {
262 A, B, C
263 }
264 ''');
265 return prepareOutline().then((_) {
266 Outline unitOutline = outline;
267 List<Outline> topOutlines = unitOutline.children;
268 expect(topOutlines, hasLength(1));
269 // MyEnum
270 {
271 Outline outline_MyEnum = topOutlines[0];
272 Element element_MyEnum = outline_MyEnum.element;
273 expect(element_MyEnum.kind, ElementKind.ENUM);
274 expect(element_MyEnum.name, "MyEnum");
275 {
276 Location location = element_MyEnum.location;
277 expect(location.offset, testCode.indexOf("MyEnum {"));
278 expect(location.length, 'MyEnum'.length);
279 }
280 expect(element_MyEnum.parameters, null);
281 expect(element_MyEnum.returnType, null);
282 // MyEnum children
283 List<Outline> outlines_MyEnum = outline_MyEnum.children;
284 expect(outlines_MyEnum, hasLength(3));
285 _isEnumConstant(outlines_MyEnum[0], 'A');
286 _isEnumConstant(outlines_MyEnum[1], 'B');
287 _isEnumConstant(outlines_MyEnum[2], 'C');
288 }
289 });
290 }
291
259 /** 292 /**
260 * Code like this caused NPE in the past. 293 * Code like this caused NPE in the past.
261 * 294 *
262 * https://code.google.com/p/dart/issues/detail?id=21373 295 * https://code.google.com/p/dart/issues/detail?id=21373
263 */ 296 */
264 test_invalidGetterInConstructor() { 297 test_invalidGetterInConstructor() {
265 addTestFile(''' 298 addTestFile('''
266 class A { 299 class A {
267 A() { 300 A() {
268 get badGetter { 301 get badGetter {
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after
753 { 786 {
754 Location location = element.location; 787 Location location = element.location;
755 expect(location.offset, testCode.indexOf("propB(int v) {}")); 788 expect(location.offset, testCode.indexOf("propB(int v) {}"));
756 expect(location.length, "propB".length); 789 expect(location.length, "propB".length);
757 } 790 }
758 expect(element.parameters, "(int v)"); 791 expect(element.parameters, "(int v)");
759 expect(element.returnType, ""); 792 expect(element.returnType, "");
760 } 793 }
761 }); 794 });
762 } 795 }
796
797 void _isEnumConstant(Outline outline, String name) {
798 Element element = outline.element;
799 expect(element.kind, ElementKind.ENUM_CONSTANT);
800 expect(element.name, name);
801 expect(element.parameters, isNull);
802 expect(element.returnType, isNull);
803 }
763 } 804 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/lib/src/generated_protocol.dart ('k') | pkg/analysis_server/test/integration/protocol_matchers.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698