| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |