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

Side by Side Diff: pkg/analyzer/test/src/task/dart_test.dart

Issue 1009693002: Task: Build Enum Member Elements. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 9 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) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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.src.task.dart_test; 5 library test.src.task.dart_test;
6 6
7 import 'package:analyzer/file_system/file_system.dart'; 7 import 'package:analyzer/file_system/file_system.dart';
8 import 'package:analyzer/file_system/memory_file_system.dart'; 8 import 'package:analyzer/file_system/memory_file_system.dart';
9 import 'package:analyzer/src/context/cache.dart'; 9 import 'package:analyzer/src/context/cache.dart';
10 import 'package:analyzer/src/generated/ast.dart'; 10 import 'package:analyzer/src/generated/ast.dart';
(...skipping 17 matching lines...) Expand all
28 import 'package:unittest/unittest.dart'; 28 import 'package:unittest/unittest.dart';
29 29
30 import '../../generated/test_support.dart'; 30 import '../../generated/test_support.dart';
31 import '../../reflective_tests.dart'; 31 import '../../reflective_tests.dart';
32 import '../mock_sdk.dart'; 32 import '../mock_sdk.dart';
33 33
34 main() { 34 main() {
35 groupSep = ' | '; 35 groupSep = ' | ';
36 runReflectiveTests(BuildCompilationUnitElementTaskTest); 36 runReflectiveTests(BuildCompilationUnitElementTaskTest);
37 runReflectiveTests(BuildDirectiveElementsTaskTest); 37 runReflectiveTests(BuildDirectiveElementsTaskTest);
38 runReflectiveTests(BuildEnumMemberElementsTaskTest);
38 runReflectiveTests(BuildLibraryElementTaskTest); 39 runReflectiveTests(BuildLibraryElementTaskTest);
39 runReflectiveTests(BuildPublicNamespaceTaskTest); 40 runReflectiveTests(BuildPublicNamespaceTaskTest);
40 runReflectiveTests(BuildTypeProviderTaskTest); 41 runReflectiveTests(BuildTypeProviderTaskTest);
41 runReflectiveTests(ParseDartTaskTest); 42 runReflectiveTests(ParseDartTaskTest);
42 runReflectiveTests(ScanDartTaskTest); 43 runReflectiveTests(ScanDartTaskTest);
43 } 44 }
44 45
45 @reflectiveTest 46 @reflectiveTest
46 class BuildCompilationUnitElementTaskTest extends _AbstractDartTaskTest { 47 class BuildCompilationUnitElementTaskTest extends _AbstractDartTaskTest {
47 test_buildInputs() { 48 test_buildInputs() {
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 return task.inputs[key][source]; 366 return task.inputs[key][source];
366 } 367 }
367 368
368 _getImportLibraryInput(Source source) { 369 _getImportLibraryInput(Source source) {
369 var key = BuildDirectiveElementsTask.IMPORTS_LIBRARY_ELEMENT1_INPUT_NAME; 370 var key = BuildDirectiveElementsTask.IMPORTS_LIBRARY_ELEMENT1_INPUT_NAME;
370 return task.inputs[key][source]; 371 return task.inputs[key][source];
371 } 372 }
372 } 373 }
373 374
374 @reflectiveTest 375 @reflectiveTest
376 class BuildEnumMemberElementsTaskTest extends _AbstractDartTaskTest {
377 test_perform() {
378 Source source = _newSource('/test.dart', '''
379 enum MyEnum {
380 A, B
381 }
382 ''');
383 _computeResult(source, RESOLVED_UNIT4);
384 expect(task, new isInstanceOf<BuildEnumMemberElementsTask>());
385 CompilationUnit unit = outputs[RESOLVED_UNIT4];
386 // validate Element
387 ClassElement enumElement = unit.element.getEnum('MyEnum');
388 print(enumElement.fields);
389 List<FieldElement> fields = enumElement.fields;
390 expect(fields, hasLength(4));
391 {
392 FieldElementImpl index = fields[0];
393 expect(index, isNotNull);
394 expect(index.name, 'index');
395 expect(index.isStatic, isFalse);
396 expect(index.evaluationResult, isNull);
397 _assertGetter(index);
398 }
399 {
400 ConstFieldElementImpl values = fields[1];
401 expect(values, isNotNull);
402 expect(values.name, 'values');
403 expect(values.isStatic, isTrue);
404 expect(values.evaluationResult, isNotNull);
405 _assertGetter(values);
406 }
407 {
408 ConstFieldElementImpl constant = fields[2];
409 expect(constant, isNotNull);
410 expect(constant.name, 'A');
411 expect(constant.isStatic, isTrue);
412 expect(constant.evaluationResult, isNotNull);
413 _assertGetter(constant);
414 }
415 {
416 ConstFieldElementImpl constant = fields[3];
417 expect(constant, isNotNull);
418 expect(constant.name, 'B');
419 expect(constant.isStatic, isTrue);
420 expect(constant.evaluationResult, isNotNull);
421 _assertGetter(constant);
422 }
423 // validate nodes
424 EnumDeclaration enumNode = unit.declarations[0];
425 expect(enumNode.name.staticElement, same(enumElement));
426 expect(enumNode.constants[0].element, same(enumElement.getField('A')));
427 expect(enumNode.constants[1].element, same(enumElement.getField('B')));
428 }
429
430 static void _assertGetter(FieldElement field) {
431 PropertyAccessorElement getter = field.getter;
432 expect(getter, isNotNull);
433 expect(getter.variable, same(field));
434 expect(getter.type, isNotNull);
435 }
436 }
437
438 @reflectiveTest
375 class BuildLibraryElementTaskTest extends _AbstractDartTaskTest { 439 class BuildLibraryElementTaskTest extends _AbstractDartTaskTest {
376 Source librarySource; 440 Source librarySource;
377 CompilationUnit libraryUnit; 441 CompilationUnit libraryUnit;
378 CompilationUnitElement libraryUnitElement; 442 CompilationUnitElement libraryUnitElement;
379 List<CompilationUnit> partUnits; 443 List<CompilationUnit> partUnits;
380 444
381 LibraryElement libraryElement; 445 LibraryElement libraryElement;
382 446
383 test_buildInputs() { 447 test_buildInputs() {
384 ExtendedAnalysisContext context = new _MockContext(); 448 ExtendedAnalysisContext context = new _MockContext();
(...skipping 478 matching lines...) Expand 10 before | Expand all | Expand 10 after
863 new DartUriResolver(sdk), 927 new DartUriResolver(sdk),
864 new ResourceUriResolver(resourceProvider) 928 new ResourceUriResolver(resourceProvider)
865 ]); 929 ]);
866 // prepare TaskManager 930 // prepare TaskManager
867 taskManager.addTaskDescriptor(GetContentTask.DESCRIPTOR); 931 taskManager.addTaskDescriptor(GetContentTask.DESCRIPTOR);
868 taskManager.addTaskDescriptor(ScanDartTask.DESCRIPTOR); 932 taskManager.addTaskDescriptor(ScanDartTask.DESCRIPTOR);
869 taskManager.addTaskDescriptor(ParseDartTask.DESCRIPTOR); 933 taskManager.addTaskDescriptor(ParseDartTask.DESCRIPTOR);
870 taskManager.addTaskDescriptor(BuildCompilationUnitElementTask.DESCRIPTOR); 934 taskManager.addTaskDescriptor(BuildCompilationUnitElementTask.DESCRIPTOR);
871 taskManager.addTaskDescriptor(BuildLibraryElementTask.DESCRIPTOR); 935 taskManager.addTaskDescriptor(BuildLibraryElementTask.DESCRIPTOR);
872 taskManager.addTaskDescriptor(BuildPublicNamespaceTask.DESCRIPTOR); 936 taskManager.addTaskDescriptor(BuildPublicNamespaceTask.DESCRIPTOR);
937 taskManager.addTaskDescriptor(BuildDirectiveElementsTask.DESCRIPTOR);
873 taskManager.addTaskDescriptor(BuildTypeProviderTask.DESCRIPTOR); 938 taskManager.addTaskDescriptor(BuildTypeProviderTask.DESCRIPTOR);
874 taskManager.addTaskDescriptor(BuildDirectiveElementsTask.DESCRIPTOR); 939 taskManager.addTaskDescriptor(BuildEnumMemberElementsTask.DESCRIPTOR);
875 // prepare AnalysisDriver 940 // prepare AnalysisDriver
876 analysisDriver = new AnalysisDriver(taskManager, context); 941 analysisDriver = new AnalysisDriver(taskManager, context);
877 } 942 }
878 943
879 void _computeResult(AnalysisTarget target, ResultDescriptor result) { 944 void _computeResult(AnalysisTarget target, ResultDescriptor result) {
880 task = analysisDriver.computeResult(target, result); 945 task = analysisDriver.computeResult(target, result);
881 expect(task.caughtException, isNull); 946 expect(task.caughtException, isNull);
882 outputs = task.outputs; 947 outputs = task.outputs;
883 } 948 }
884 949
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
924 return entryMap.putIfAbsent(target, () => new CacheEntry()); 989 return entryMap.putIfAbsent(target, () => new CacheEntry());
925 } 990 }
926 991
927 TimestampedData<String> getContents(Source source) => source.contents; 992 TimestampedData<String> getContents(Source source) => source.contents;
928 993
929 noSuchMethod(Invocation invocation) { 994 noSuchMethod(Invocation invocation) {
930 print('noSuchMethod: ${invocation.memberName}'); 995 print('noSuchMethod: ${invocation.memberName}');
931 return super.noSuchMethod(invocation); 996 return super.noSuchMethod(invocation);
932 } 997 }
933 } 998 }
OLDNEW
« pkg/analyzer/lib/src/task/dart.dart ('K') | « pkg/analyzer/lib/src/task/dart.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698