| 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 25 matching lines...) Expand all Loading... |
| 36 runReflectiveTests(BuildCompilationUnitElementTaskTest); | 36 runReflectiveTests(BuildCompilationUnitElementTaskTest); |
| 37 runReflectiveTests(BuildDirectiveElementsTaskTest); | 37 runReflectiveTests(BuildDirectiveElementsTaskTest); |
| 38 runReflectiveTests(BuildEnumMemberElementsTaskTest); | 38 runReflectiveTests(BuildEnumMemberElementsTaskTest); |
| 39 runReflectiveTests(BuildExportSourceClosureTaskTest); | 39 runReflectiveTests(BuildExportSourceClosureTaskTest); |
| 40 runReflectiveTests(BuildExportNamespaceTaskTest); | 40 runReflectiveTests(BuildExportNamespaceTaskTest); |
| 41 runReflectiveTests(BuildFunctionTypeAliasesTaskTest); | 41 runReflectiveTests(BuildFunctionTypeAliasesTaskTest); |
| 42 runReflectiveTests(BuildLibraryElementTaskTest); | 42 runReflectiveTests(BuildLibraryElementTaskTest); |
| 43 runReflectiveTests(BuildPublicNamespaceTaskTest); | 43 runReflectiveTests(BuildPublicNamespaceTaskTest); |
| 44 runReflectiveTests(BuildTypeProviderTaskTest); | 44 runReflectiveTests(BuildTypeProviderTaskTest); |
| 45 runReflectiveTests(ParseDartTaskTest); | 45 runReflectiveTests(ParseDartTaskTest); |
| 46 runReflectiveTests(ResolveTypeNamesTaskTest); |
| 46 runReflectiveTests(ScanDartTaskTest); | 47 runReflectiveTests(ScanDartTaskTest); |
| 47 } | 48 } |
| 48 | 49 |
| 49 @reflectiveTest | 50 @reflectiveTest |
| 50 class BuildCompilationUnitElementTaskTest extends _AbstractDartTaskTest { | 51 class BuildCompilationUnitElementTaskTest extends _AbstractDartTaskTest { |
| 51 test_buildInputs() { | 52 test_buildInputs() { |
| 52 LibraryUnitTarget target = new LibraryUnitTarget(emptySource, emptySource); | 53 LibraryUnitTarget target = new LibraryUnitTarget(emptySource, emptySource); |
| 53 Map<String, TaskInput> inputs = | 54 Map<String, TaskInput> inputs = |
| 54 BuildCompilationUnitElementTask.buildInputs(target); | 55 BuildCompilationUnitElementTask.buildInputs(target); |
| 55 expect(inputs, isNotNull); | 56 expect(inputs, isNotNull); |
| (...skipping 973 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1029 | 1030 |
| 1030 static void _assertHasCore(List<Source> sources, int lenght) { | 1031 static void _assertHasCore(List<Source> sources, int lenght) { |
| 1031 expect(sources, hasLength(lenght)); | 1032 expect(sources, hasLength(lenght)); |
| 1032 expect(sources, contains(predicate((Source s) { | 1033 expect(sources, contains(predicate((Source s) { |
| 1033 return s.fullName.endsWith('core.dart'); | 1034 return s.fullName.endsWith('core.dart'); |
| 1034 }))); | 1035 }))); |
| 1035 } | 1036 } |
| 1036 } | 1037 } |
| 1037 | 1038 |
| 1038 @reflectiveTest | 1039 @reflectiveTest |
| 1040 class ResolveTypeNamesTaskTest extends _AbstractDartTaskTest { |
| 1041 test_perform() { |
| 1042 Source source = _newSource('/test.dart', ''' |
| 1043 class A {} |
| 1044 class B extends A {} |
| 1045 int f(String p) => p.length; |
| 1046 '''); |
| 1047 LibraryUnitTarget target = new LibraryUnitTarget(source, source); |
| 1048 _computeResult(target, RESOLVED_UNIT6); |
| 1049 expect(task, new isInstanceOf<ResolveTypeNamesTask>()); |
| 1050 // validate |
| 1051 CompilationUnit unit = outputs[RESOLVED_UNIT6]; |
| 1052 { |
| 1053 ClassDeclaration nodeA = unit.declarations[0]; |
| 1054 ClassDeclaration nodeB = unit.declarations[1]; |
| 1055 DartType extendsType = nodeB.extendsClause.superclass.type; |
| 1056 expect(extendsType, nodeA.element.type); |
| 1057 } |
| 1058 { |
| 1059 FunctionDeclaration functionNode = unit.declarations[2]; |
| 1060 DartType returnType = functionNode.returnType.type; |
| 1061 List<FormalParameter> parameters = |
| 1062 functionNode.functionExpression.parameters.parameters; |
| 1063 expect(returnType.displayName, 'int'); |
| 1064 expect(parameters[0].element.type.displayName, 'String'); |
| 1065 } |
| 1066 } |
| 1067 |
| 1068 test_perform_errors() { |
| 1069 Source source = _newSource('/test.dart', ''' |
| 1070 NoSuchClass f() => null; |
| 1071 '''); |
| 1072 LibraryUnitTarget target = new LibraryUnitTarget(source, source); |
| 1073 _computeResult(target, RESOLVE_TYPE_NAMES_ERRORS); |
| 1074 expect(task, new isInstanceOf<ResolveTypeNamesTask>()); |
| 1075 // validate |
| 1076 _fillErrorListener(RESOLVE_TYPE_NAMES_ERRORS); |
| 1077 errorListener |
| 1078 .assertErrorsWithCodes(<ErrorCode>[StaticWarningCode.UNDEFINED_CLASS]); |
| 1079 } |
| 1080 } |
| 1081 |
| 1082 @reflectiveTest |
| 1039 class ScanDartTaskTest extends _AbstractDartTaskTest { | 1083 class ScanDartTaskTest extends _AbstractDartTaskTest { |
| 1040 test_buildInputs() { | 1084 test_buildInputs() { |
| 1041 Map<String, TaskInput> inputs = ScanDartTask.buildInputs(emptySource); | 1085 Map<String, TaskInput> inputs = ScanDartTask.buildInputs(emptySource); |
| 1042 expect(inputs, isNotNull); | 1086 expect(inputs, isNotNull); |
| 1043 expect(inputs.keys, unorderedEquals([ScanDartTask.CONTENT_INPUT_NAME])); | 1087 expect(inputs.keys, unorderedEquals([ScanDartTask.CONTENT_INPUT_NAME])); |
| 1044 } | 1088 } |
| 1045 | 1089 |
| 1046 test_constructor() { | 1090 test_constructor() { |
| 1047 ScanDartTask task = new ScanDartTask(context, emptySource); | 1091 ScanDartTask task = new ScanDartTask(context, emptySource); |
| 1048 expect(task, isNotNull); | 1092 expect(task, isNotNull); |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1122 taskManager.addTaskDescriptor(ParseDartTask.DESCRIPTOR); | 1166 taskManager.addTaskDescriptor(ParseDartTask.DESCRIPTOR); |
| 1123 taskManager.addTaskDescriptor(BuildCompilationUnitElementTask.DESCRIPTOR); | 1167 taskManager.addTaskDescriptor(BuildCompilationUnitElementTask.DESCRIPTOR); |
| 1124 taskManager.addTaskDescriptor(BuildLibraryElementTask.DESCRIPTOR); | 1168 taskManager.addTaskDescriptor(BuildLibraryElementTask.DESCRIPTOR); |
| 1125 taskManager.addTaskDescriptor(BuildPublicNamespaceTask.DESCRIPTOR); | 1169 taskManager.addTaskDescriptor(BuildPublicNamespaceTask.DESCRIPTOR); |
| 1126 taskManager.addTaskDescriptor(BuildDirectiveElementsTask.DESCRIPTOR); | 1170 taskManager.addTaskDescriptor(BuildDirectiveElementsTask.DESCRIPTOR); |
| 1127 taskManager.addTaskDescriptor(BuildExportSourceClosureTask.DESCRIPTOR); | 1171 taskManager.addTaskDescriptor(BuildExportSourceClosureTask.DESCRIPTOR); |
| 1128 taskManager.addTaskDescriptor(BuildExportNamespaceTask.DESCRIPTOR); | 1172 taskManager.addTaskDescriptor(BuildExportNamespaceTask.DESCRIPTOR); |
| 1129 taskManager.addTaskDescriptor(BuildTypeProviderTask.DESCRIPTOR); | 1173 taskManager.addTaskDescriptor(BuildTypeProviderTask.DESCRIPTOR); |
| 1130 taskManager.addTaskDescriptor(BuildEnumMemberElementsTask.DESCRIPTOR); | 1174 taskManager.addTaskDescriptor(BuildEnumMemberElementsTask.DESCRIPTOR); |
| 1131 taskManager.addTaskDescriptor(BuildFunctionTypeAliasesTask.DESCRIPTOR); | 1175 taskManager.addTaskDescriptor(BuildFunctionTypeAliasesTask.DESCRIPTOR); |
| 1176 taskManager.addTaskDescriptor(ResolveTypeNamesTask.DESCRIPTOR); |
| 1132 // prepare AnalysisDriver | 1177 // prepare AnalysisDriver |
| 1133 analysisDriver = new AnalysisDriver(taskManager, context); | 1178 analysisDriver = new AnalysisDriver(taskManager, context); |
| 1134 } | 1179 } |
| 1135 | 1180 |
| 1136 void _computeResult(AnalysisTarget target, ResultDescriptor result) { | 1181 void _computeResult(AnalysisTarget target, ResultDescriptor result) { |
| 1137 task = analysisDriver.computeResult(target, result); | 1182 task = analysisDriver.computeResult(target, result); |
| 1138 expect(task.caughtException, isNull); | 1183 expect(task.caughtException, isNull); |
| 1139 outputs = task.outputs; | 1184 outputs = task.outputs; |
| 1140 } | 1185 } |
| 1141 | 1186 |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1181 return entryMap.putIfAbsent(target, () => new CacheEntry()); | 1226 return entryMap.putIfAbsent(target, () => new CacheEntry()); |
| 1182 } | 1227 } |
| 1183 | 1228 |
| 1184 TimestampedData<String> getContents(Source source) => source.contents; | 1229 TimestampedData<String> getContents(Source source) => source.contents; |
| 1185 | 1230 |
| 1186 noSuchMethod(Invocation invocation) { | 1231 noSuchMethod(Invocation invocation) { |
| 1187 print('noSuchMethod: ${invocation.memberName}'); | 1232 print('noSuchMethod: ${invocation.memberName}'); |
| 1188 return super.noSuchMethod(invocation); | 1233 return super.noSuchMethod(invocation); |
| 1189 } | 1234 } |
| 1190 } | 1235 } |
| OLD | NEW |