| 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/src/context/cache.dart'; | 7 import 'package:analyzer/src/context/cache.dart'; |
| 8 import 'package:analyzer/src/generated/ast.dart'; | 8 import 'package:analyzer/src/generated/ast.dart'; |
| 9 import 'package:analyzer/src/generated/constant.dart'; | 9 import 'package:analyzer/src/generated/constant.dart'; |
| 10 import 'package:analyzer/src/generated/element.dart'; | 10 import 'package:analyzer/src/generated/element.dart'; |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 import '../../generated/test_support.dart'; | 25 import '../../generated/test_support.dart'; |
| 26 import '../../reflective_tests.dart'; | 26 import '../../reflective_tests.dart'; |
| 27 import '../context/abstract_context.dart'; | 27 import '../context/abstract_context.dart'; |
| 28 | 28 |
| 29 main() { | 29 main() { |
| 30 groupSep = ' | '; | 30 groupSep = ' | '; |
| 31 runReflectiveTests(BuildClassConstructorsTaskTest); | 31 runReflectiveTests(BuildClassConstructorsTaskTest); |
| 32 runReflectiveTests(BuildCompilationUnitElementTaskTest); | 32 runReflectiveTests(BuildCompilationUnitElementTaskTest); |
| 33 runReflectiveTests(BuildDirectiveElementsTaskTest); | 33 runReflectiveTests(BuildDirectiveElementsTaskTest); |
| 34 runReflectiveTests(BuildEnumMemberElementsTaskTest); | 34 runReflectiveTests(BuildEnumMemberElementsTaskTest); |
| 35 runReflectiveTests(BuildSourceClosuresTaskTest); | 35 runReflectiveTests(BuildSourceExportClosureTaskTest); |
| 36 runReflectiveTests(BuildSourceImportExportClosureTaskTest); |
| 36 runReflectiveTests(BuildExportNamespaceTaskTest); | 37 runReflectiveTests(BuildExportNamespaceTaskTest); |
| 37 runReflectiveTests(BuildLibraryConstructorsTaskTest); | 38 runReflectiveTests(BuildLibraryConstructorsTaskTest); |
| 38 runReflectiveTests(BuildLibraryElementTaskTest); | 39 runReflectiveTests(BuildLibraryElementTaskTest); |
| 39 runReflectiveTests(BuildPublicNamespaceTaskTest); | 40 runReflectiveTests(BuildPublicNamespaceTaskTest); |
| 40 runReflectiveTests(BuildTypeProviderTaskTest); | 41 runReflectiveTests(BuildTypeProviderTaskTest); |
| 41 runReflectiveTests(ComputeConstantDependenciesTaskTest); | 42 runReflectiveTests(ComputeConstantDependenciesTaskTest); |
| 42 runReflectiveTests(ComputeConstantValueTaskTest); | 43 runReflectiveTests(ComputeConstantValueTaskTest); |
| 43 runReflectiveTests(ContainingLibrariesTaskTest); | 44 runReflectiveTests(ContainingLibrariesTaskTest); |
| 44 runReflectiveTests(DartErrorsTaskTest); | 45 runReflectiveTests(DartErrorsTaskTest); |
| 45 runReflectiveTests(EvaluateUnitConstantsTaskTest); | 46 runReflectiveTests(EvaluateUnitConstantsTaskTest); |
| (...skipping 1045 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1091 computeResult(sources.first, LIBRARY_ELEMENT3); | 1092 computeResult(sources.first, LIBRARY_ELEMENT3); |
| 1092 expect(task, new isInstanceOf<BuildPublicNamespaceTask>()); | 1093 expect(task, new isInstanceOf<BuildPublicNamespaceTask>()); |
| 1093 // validate | 1094 // validate |
| 1094 LibraryElement library = outputs[LIBRARY_ELEMENT3]; | 1095 LibraryElement library = outputs[LIBRARY_ELEMENT3]; |
| 1095 Namespace namespace = library.publicNamespace; | 1096 Namespace namespace = library.publicNamespace; |
| 1096 expect(namespace.definedNames.keys, unorderedEquals(['a', 'd'])); | 1097 expect(namespace.definedNames.keys, unorderedEquals(['a', 'd'])); |
| 1097 } | 1098 } |
| 1098 } | 1099 } |
| 1099 | 1100 |
| 1100 @reflectiveTest | 1101 @reflectiveTest |
| 1101 class BuildSourceClosuresTaskTest extends _AbstractDartTaskTest { | 1102 class BuildSourceExportClosureTaskTest extends _AbstractDartTaskTest { |
| 1102 test_perform_exportClosure() { | 1103 test_perform_exportClosure() { |
| 1103 Source sourceA = newSource('/a.dart', ''' | 1104 Source sourceA = newSource('/a.dart', ''' |
| 1104 library lib_a; | 1105 library lib_a; |
| 1105 export 'b.dart'; | 1106 export 'b.dart'; |
| 1106 '''); | 1107 '''); |
| 1107 Source sourceB = newSource('/b.dart', ''' | 1108 Source sourceB = newSource('/b.dart', ''' |
| 1108 library lib_b; | 1109 library lib_b; |
| 1109 export 'c.dart'; | 1110 export 'c.dart'; |
| 1110 '''); | 1111 '''); |
| 1111 Source sourceC = newSource('/c.dart', ''' | 1112 Source sourceC = newSource('/c.dart', ''' |
| 1112 library lib_c; | 1113 library lib_c; |
| 1113 export 'a.dart'; | 1114 export 'a.dart'; |
| 1114 '''); | 1115 '''); |
| 1115 Source sourceD = newSource('/d.dart', ''' | 1116 Source sourceD = newSource('/d.dart', ''' |
| 1116 library lib_d; | 1117 library lib_d; |
| 1117 '''); | 1118 '''); |
| 1118 // a.dart | 1119 // a.dart |
| 1119 { | 1120 { |
| 1120 computeResult(sourceA, EXPORT_SOURCE_CLOSURE); | 1121 computeResult(sourceA, EXPORT_SOURCE_CLOSURE); |
| 1121 expect(task, new isInstanceOf<BuildSourceClosuresTask>()); | 1122 expect(task, new isInstanceOf<BuildSourceExportClosureTask>()); |
| 1122 List<Source> closure = outputs[EXPORT_SOURCE_CLOSURE]; | 1123 List<Source> closure = outputs[EXPORT_SOURCE_CLOSURE]; |
| 1123 expect(closure, unorderedEquals([sourceA, sourceB, sourceC])); | 1124 expect(closure, unorderedEquals([sourceA, sourceB, sourceC])); |
| 1124 } | 1125 } |
| 1125 // c.dart | 1126 // c.dart |
| 1126 { | 1127 { |
| 1127 computeResult(sourceC, EXPORT_SOURCE_CLOSURE); | 1128 computeResult(sourceC, EXPORT_SOURCE_CLOSURE); |
| 1128 expect(task, new isInstanceOf<BuildSourceClosuresTask>()); | 1129 expect(task, new isInstanceOf<BuildSourceExportClosureTask>()); |
| 1129 List<Source> closure = outputs[EXPORT_SOURCE_CLOSURE]; | 1130 List<Source> closure = outputs[EXPORT_SOURCE_CLOSURE]; |
| 1130 expect(closure, unorderedEquals([sourceA, sourceB, sourceC])); | 1131 expect(closure, unorderedEquals([sourceA, sourceB, sourceC])); |
| 1131 } | 1132 } |
| 1132 // d.dart | 1133 // d.dart |
| 1133 { | 1134 { |
| 1134 computeResult(sourceD, EXPORT_SOURCE_CLOSURE); | 1135 computeResult(sourceD, EXPORT_SOURCE_CLOSURE); |
| 1135 expect(task, new isInstanceOf<BuildSourceClosuresTask>()); | 1136 expect(task, new isInstanceOf<BuildSourceExportClosureTask>()); |
| 1136 List<Source> closure = outputs[EXPORT_SOURCE_CLOSURE]; | 1137 List<Source> closure = outputs[EXPORT_SOURCE_CLOSURE]; |
| 1137 expect(closure, unorderedEquals([sourceD])); | 1138 expect(closure, unorderedEquals([sourceD])); |
| 1138 } | 1139 } |
| 1139 } | 1140 } |
| 1141 } |
| 1140 | 1142 |
| 1141 test_perform_importClosure() { | 1143 @reflectiveTest |
| 1142 Source sourceA = newSource('/a.dart', ''' | 1144 class BuildSourceImportExportClosureTaskTest extends _AbstractDartTaskTest { |
| 1143 library lib_a; | |
| 1144 import 'b.dart'; | |
| 1145 '''); | |
| 1146 Source sourceB = newSource('/b.dart', ''' | |
| 1147 library lib_b; | |
| 1148 import 'c.dart'; | |
| 1149 '''); | |
| 1150 Source sourceC = newSource('/c.dart', ''' | |
| 1151 library lib_c; | |
| 1152 import 'a.dart'; | |
| 1153 '''); | |
| 1154 Source sourceD = newSource('/d.dart', ''' | |
| 1155 library lib_d; | |
| 1156 '''); | |
| 1157 Source coreSource = context.sourceFactory.resolveUri(null, 'dart:core'); | |
| 1158 // a.dart | |
| 1159 { | |
| 1160 computeResult(sourceA, IMPORT_SOURCE_CLOSURE); | |
| 1161 expect(task, new isInstanceOf<BuildSourceClosuresTask>()); | |
| 1162 List<Source> closure = outputs[IMPORT_SOURCE_CLOSURE]; | |
| 1163 expect(closure, contains(sourceA)); | |
| 1164 expect(closure, contains(sourceB)); | |
| 1165 expect(closure, contains(sourceC)); | |
| 1166 expect(closure, contains(coreSource)); | |
| 1167 } | |
| 1168 // c.dart | |
| 1169 { | |
| 1170 computeResult(sourceC, IMPORT_SOURCE_CLOSURE); | |
| 1171 expect(task, new isInstanceOf<BuildSourceClosuresTask>()); | |
| 1172 List<Source> closure = outputs[IMPORT_SOURCE_CLOSURE]; | |
| 1173 expect(closure, contains(sourceA)); | |
| 1174 expect(closure, contains(sourceB)); | |
| 1175 expect(closure, contains(sourceC)); | |
| 1176 expect(closure, contains(coreSource)); | |
| 1177 } | |
| 1178 // d.dart | |
| 1179 { | |
| 1180 computeResult(sourceD, IMPORT_SOURCE_CLOSURE); | |
| 1181 expect(task, new isInstanceOf<BuildSourceClosuresTask>()); | |
| 1182 List<Source> closure = outputs[IMPORT_SOURCE_CLOSURE]; | |
| 1183 expect(closure, contains(sourceD)); | |
| 1184 expect(closure, contains(coreSource)); | |
| 1185 } | |
| 1186 } | |
| 1187 | |
| 1188 test_perform_importExportClosure() { | 1145 test_perform_importExportClosure() { |
| 1189 Source sourceA = newSource('/a.dart', ''' | 1146 Source sourceA = newSource('/a.dart', ''' |
| 1190 library lib_a; | 1147 library lib_a; |
| 1191 '''); | 1148 '''); |
| 1192 Source sourceB = newSource('/b.dart', ''' | 1149 Source sourceB = newSource('/b.dart', ''' |
| 1193 library lib_b; | 1150 library lib_b; |
| 1194 export 'a.dart'; | 1151 export 'a.dart'; |
| 1195 '''); | 1152 '''); |
| 1196 Source sourceC = newSource('/c.dart', ''' | 1153 Source sourceC = newSource('/c.dart', ''' |
| 1197 library lib_c; | 1154 library lib_c; |
| 1198 import 'b.dart'; | 1155 import 'b.dart'; |
| 1199 '''); | 1156 '''); |
| 1200 Source coreSource = context.sourceFactory.resolveUri(null, 'dart:core'); | 1157 Source coreSource = context.sourceFactory.resolveUri(null, 'dart:core'); |
| 1201 // c.dart | 1158 // c.dart |
| 1202 { | 1159 { |
| 1203 computeResult(sourceC, IMPORT_EXPORT_SOURCE_CLOSURE); | 1160 computeResult(sourceC, IMPORT_EXPORT_SOURCE_CLOSURE); |
| 1204 expect(task, new isInstanceOf<BuildSourceClosuresTask>()); | 1161 expect(task, new isInstanceOf<BuildSourceImportExportClosureTask>()); |
| 1205 List<Source> closure = outputs[IMPORT_EXPORT_SOURCE_CLOSURE]; | 1162 List<Source> closure = outputs[IMPORT_EXPORT_SOURCE_CLOSURE]; |
| 1206 expect(closure, contains(sourceA)); | 1163 expect(closure, contains(sourceA)); |
| 1207 expect(closure, contains(sourceB)); | 1164 expect(closure, contains(sourceB)); |
| 1208 expect(closure, contains(sourceC)); | 1165 expect(closure, contains(sourceC)); |
| 1209 expect(closure, contains(coreSource)); | 1166 expect(closure, contains(coreSource)); |
| 1210 } | 1167 } |
| 1211 // b.dart | 1168 // b.dart |
| 1212 { | 1169 { |
| 1213 computeResult(sourceB, IMPORT_EXPORT_SOURCE_CLOSURE); | 1170 computeResult(sourceB, IMPORT_EXPORT_SOURCE_CLOSURE); |
| 1214 expect(task, new isInstanceOf<BuildSourceClosuresTask>()); | 1171 expect(task, new isInstanceOf<BuildSourceImportExportClosureTask>()); |
| 1215 List<Source> closure = outputs[IMPORT_EXPORT_SOURCE_CLOSURE]; | 1172 List<Source> closure = outputs[IMPORT_EXPORT_SOURCE_CLOSURE]; |
| 1216 expect(closure, contains(sourceA)); | 1173 expect(closure, contains(sourceA)); |
| 1217 expect(closure, contains(sourceB)); | 1174 expect(closure, contains(sourceB)); |
| 1218 expect(closure, contains(coreSource)); | 1175 expect(closure, contains(coreSource)); |
| 1219 } | 1176 } |
| 1220 } | 1177 } |
| 1221 | 1178 |
| 1222 test_perform_isClient_false() { | 1179 test_perform_isClient_false() { |
| 1223 Source sourceA = newSource('/a.dart', ''' | 1180 Source sourceA = newSource('/a.dart', ''' |
| 1224 library lib_a; | 1181 library lib_a; |
| 1225 import 'b.dart'; | 1182 import 'b.dart'; |
| 1226 '''); | 1183 '''); |
| 1227 newSource('/b.dart', ''' | 1184 newSource('/b.dart', ''' |
| 1228 library lib_b; | 1185 library lib_b; |
| 1229 '''); | 1186 '''); |
| 1230 computeResult(sourceA, IS_CLIENT); | 1187 computeResult(sourceA, IS_CLIENT); |
| 1231 expect(task, new isInstanceOf<BuildSourceClosuresTask>()); | 1188 expect(task, new isInstanceOf<BuildSourceImportExportClosureTask>()); |
| 1232 expect(outputs[IS_CLIENT], isFalse); | 1189 expect(outputs[IS_CLIENT], isFalse); |
| 1233 } | 1190 } |
| 1234 | 1191 |
| 1235 test_perform_isClient_true_export_indirect() { | 1192 test_perform_isClient_true_export_indirect() { |
| 1236 newSource('/exports_html.dart', ''' | 1193 newSource('/exports_html.dart', ''' |
| 1237 library lib_exports_html; | 1194 library lib_exports_html; |
| 1238 export 'dart:html'; | 1195 export 'dart:html'; |
| 1239 '''); | 1196 '''); |
| 1240 Source source = newSource('/test.dart', ''' | 1197 Source source = newSource('/test.dart', ''' |
| 1241 import 'exports_html.dart'; | 1198 import 'exports_html.dart'; |
| 1242 '''); | 1199 '''); |
| 1243 computeResult(source, IS_CLIENT); | 1200 computeResult(source, IS_CLIENT); |
| 1244 expect(task, new isInstanceOf<BuildSourceClosuresTask>()); | 1201 expect(task, new isInstanceOf<BuildSourceImportExportClosureTask>()); |
| 1245 expect(outputs[IS_CLIENT], isTrue); | 1202 expect(outputs[IS_CLIENT], isTrue); |
| 1246 } | 1203 } |
| 1247 | 1204 |
| 1248 test_perform_isClient_true_import_direct() { | 1205 test_perform_isClient_true_import_direct() { |
| 1249 Source sourceA = newSource('/a.dart', ''' | 1206 Source sourceA = newSource('/a.dart', ''' |
| 1250 library lib_a; | 1207 library lib_a; |
| 1251 import 'dart:html'; | 1208 import 'dart:html'; |
| 1252 '''); | 1209 '''); |
| 1253 computeResult(sourceA, IS_CLIENT); | 1210 computeResult(sourceA, IS_CLIENT); |
| 1254 expect(task, new isInstanceOf<BuildSourceClosuresTask>()); | 1211 expect(task, new isInstanceOf<BuildSourceImportExportClosureTask>()); |
| 1255 expect(outputs[IS_CLIENT], isTrue); | 1212 expect(outputs[IS_CLIENT], isTrue); |
| 1256 } | 1213 } |
| 1257 | 1214 |
| 1258 test_perform_isClient_true_import_indirect() { | 1215 test_perform_isClient_true_import_indirect() { |
| 1259 Source sourceA = newSource('/a.dart', ''' | 1216 Source sourceA = newSource('/a.dart', ''' |
| 1260 library lib_a; | 1217 library lib_a; |
| 1261 import 'b.dart'; | 1218 import 'b.dart'; |
| 1262 '''); | 1219 '''); |
| 1263 newSource('/b.dart', ''' | 1220 newSource('/b.dart', ''' |
| 1264 library lib_b; | 1221 library lib_b; |
| 1265 import 'dart:html'; | 1222 import 'dart:html'; |
| 1266 '''); | 1223 '''); |
| 1267 computeResult(sourceA, IS_CLIENT); | 1224 computeResult(sourceA, IS_CLIENT); |
| 1268 expect(task, new isInstanceOf<BuildSourceClosuresTask>()); | 1225 expect(task, new isInstanceOf<BuildSourceImportExportClosureTask>()); |
| 1269 expect(outputs[IS_CLIENT], isTrue); | 1226 expect(outputs[IS_CLIENT], isTrue); |
| 1270 } | 1227 } |
| 1271 } | 1228 } |
| 1272 | 1229 |
| 1273 @reflectiveTest | 1230 @reflectiveTest |
| 1274 class BuildTypeProviderTaskTest extends _AbstractDartTaskTest { | 1231 class BuildTypeProviderTaskTest extends _AbstractDartTaskTest { |
| 1275 test_perform() { | 1232 test_perform() { |
| 1276 computeResult(AnalysisContextTarget.request, TYPE_PROVIDER); | 1233 computeResult(AnalysisContextTarget.request, TYPE_PROVIDER); |
| 1277 expect(task, new isInstanceOf<BuildTypeProviderTask>()); | 1234 expect(task, new isInstanceOf<BuildTypeProviderTask>()); |
| 1278 // validate | 1235 // validate |
| (...skipping 1502 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2781 /** | 2738 /** |
| 2782 * Fill [errorListener] with [result] errors in the current [task]. | 2739 * Fill [errorListener] with [result] errors in the current [task]. |
| 2783 */ | 2740 */ |
| 2784 void _fillErrorListener(ResultDescriptor<List<AnalysisError>> result) { | 2741 void _fillErrorListener(ResultDescriptor<List<AnalysisError>> result) { |
| 2785 List<AnalysisError> errors = task.outputs[result]; | 2742 List<AnalysisError> errors = task.outputs[result]; |
| 2786 expect(errors, isNotNull, reason: result.name); | 2743 expect(errors, isNotNull, reason: result.name); |
| 2787 errorListener = new GatheringErrorListener(); | 2744 errorListener = new GatheringErrorListener(); |
| 2788 errorListener.addAll(errors); | 2745 errorListener.addAll(errors); |
| 2789 } | 2746 } |
| 2790 } | 2747 } |
| OLD | NEW |