| Index: pkg/analyzer_experimental/test/generated/test_support.dart
|
| ===================================================================
|
| --- pkg/analyzer_experimental/test/generated/test_support.dart (revision 23549)
|
| +++ pkg/analyzer_experimental/test/generated/test_support.dart (working copy)
|
| @@ -11,54 +11,73 @@
|
| import 'package:analyzer_experimental/src/generated/error.dart';
|
| import 'package:analyzer_experimental/src/generated/scanner.dart';
|
| import 'package:analyzer_experimental/src/generated/element.dart' show InterfaceType, MethodElement, PropertyAccessorElement;
|
| -import 'package:analyzer_experimental/src/generated/engine.dart' show AnalysisContext, AnalysisContextImpl;
|
| +import 'package:analyzer_experimental/src/generated/engine.dart' show AnalysisContext, AnalysisContextImpl, RecordingErrorListener;
|
| import 'package:unittest/unittest.dart' as _ut;
|
|
|
| +
|
| /**
|
| * Instances of the class {@code GatheringErrorListener} implement an error listener that collects
|
| * all of the errors passed to it for later examination.
|
| */
|
| class GatheringErrorListener implements AnalysisErrorListener {
|
| +
|
| /**
|
| * The source being parsed.
|
| */
|
| String _rawSource;
|
| +
|
| /**
|
| * The source being parsed after inserting a marker at the beginning and end of the range of the
|
| * most recent error.
|
| */
|
| String _markedSource;
|
| +
|
| /**
|
| * A list containing the errors that were collected.
|
| */
|
| List<AnalysisError> _errors = new List<AnalysisError>();
|
| +
|
| /**
|
| * A table mapping sources to the line information for the source.
|
| */
|
| Map<Source, LineInfo> _lineInfoMap = new Map<Source, LineInfo>();
|
| +
|
| /**
|
| * An empty array of errors used when no errors are expected.
|
| */
|
| static List<AnalysisError> _NO_ERRORS = new List<AnalysisError>(0);
|
| +
|
| /**
|
| * Initialize a newly created error listener to collect errors.
|
| */
|
| GatheringErrorListener() : super() {
|
| - _jtd_constructor_349_impl();
|
| + _jtd_constructor_357_impl();
|
| }
|
| - _jtd_constructor_349_impl() {
|
| + _jtd_constructor_357_impl() {
|
| }
|
| +
|
| /**
|
| * Initialize a newly created error listener to collect errors.
|
| */
|
| GatheringErrorListener.con1(String rawSource2) {
|
| - _jtd_constructor_350_impl(rawSource2);
|
| + _jtd_constructor_358_impl(rawSource2);
|
| }
|
| - _jtd_constructor_350_impl(String rawSource2) {
|
| + _jtd_constructor_358_impl(String rawSource2) {
|
| this._rawSource = rawSource2;
|
| this._markedSource = rawSource2;
|
| }
|
| +
|
| /**
|
| + * Add all of the errors recorded by the given listener to this listener.
|
| + * @param listener the listener that has recorded the errors to be added
|
| + */
|
| + void addAll(RecordingErrorListener listener) {
|
| + for (AnalysisError error in listener.errors) {
|
| + onError(error);
|
| + }
|
| + }
|
| +
|
| + /**
|
| * Assert that the number of errors that have been gathered matches the number of errors that are
|
| * given and that they have the expected error codes and locations. The order in which the errors
|
| * were gathered is ignored.
|
| @@ -80,6 +99,7 @@
|
| }
|
| }
|
| }
|
| +
|
| /**
|
| * Assert that the number of errors that have been gathered matches the number of errors that are
|
| * given and that they have the expected error codes. The order in which the errors were gathered
|
| @@ -90,6 +110,9 @@
|
| */
|
| void assertErrors2(List<ErrorCode> expectedErrorCodes) {
|
| JavaStringBuilder builder = new JavaStringBuilder();
|
| + for (ErrorCode errorCode in expectedErrorCodes) {
|
| + JUnitTestCase.assertFalseMsg("Empty error code message", errorCode.message.isEmpty);
|
| + }
|
| Map<ErrorCode, int> expectedCounts = new Map<ErrorCode, int>();
|
| for (ErrorCode code in expectedErrorCodes) {
|
| int count = expectedCounts[code];
|
| @@ -128,7 +151,7 @@
|
| }
|
| builder.append(expectedCount);
|
| builder.append(" errors of type ");
|
| - builder.append(code);
|
| + builder.append("${code.runtimeType.toString()}.${code}");
|
| builder.append(", found ");
|
| builder.append(actualCount);
|
| }
|
| @@ -143,7 +166,7 @@
|
| builder.append("; ");
|
| }
|
| builder.append("0 errors of type ");
|
| - builder.append(code);
|
| + builder.append("${code.runtimeType.toString()}.${code}");
|
| builder.append(", found ");
|
| builder.append(actualCount);
|
| builder.append(" (");
|
| @@ -160,6 +183,7 @@
|
| JUnitTestCase.fail(builder.toString());
|
| }
|
| }
|
| +
|
| /**
|
| * Assert that the number of errors that have been gathered matches the number of severities that
|
| * are given and that there are the same number of errors and warnings as specified by the
|
| @@ -191,6 +215,7 @@
|
| JUnitTestCase.fail("Expected ${expectedErrorCount} errors and ${expectedWarningCount} warnings, found ${actualErrorCount} errors and ${actualWarningCount} warnings");
|
| }
|
| }
|
| +
|
| /**
|
| * Assert that no errors have been gathered.
|
| * @throws AssertionFailedError if any errors have been gathered
|
| @@ -198,11 +223,13 @@
|
| void assertNoErrors() {
|
| assertErrors(_NO_ERRORS);
|
| }
|
| +
|
| /**
|
| * Return the errors that were collected.
|
| * @return the errors that were collected
|
| */
|
| List<AnalysisError> get errors => _errors;
|
| +
|
| /**
|
| * Return the line information associated with the given source, or {@code null} if no line
|
| * information has been associated with the source.
|
| @@ -210,6 +237,7 @@
|
| * @return the line information associated with the source
|
| */
|
| LineInfo getLineInfo(Source source) => _lineInfoMap[source];
|
| +
|
| /**
|
| * Return {@code true} if an error with the given error code has been gathered.
|
| * @param errorCode the error code being searched for
|
| @@ -223,6 +251,7 @@
|
| }
|
| return false;
|
| }
|
| +
|
| /**
|
| * Return {@code true} if at least one error has been gathered.
|
| * @return {@code true} if at least one error has been gathered
|
| @@ -236,6 +265,7 @@
|
| }
|
| _errors.add(error);
|
| }
|
| +
|
| /**
|
| * Set the line information associated with the given source to the given information.
|
| * @param source the source with which the line information is associated
|
| @@ -244,6 +274,7 @@
|
| void setLineInfo(Source source, List<int> lineStarts) {
|
| _lineInfoMap[source] = new LineInfo(lineStarts);
|
| }
|
| +
|
| /**
|
| * Set the line information associated with the given source to the given information.
|
| * @param source the source with which the line information is associated
|
| @@ -252,6 +283,7 @@
|
| void setLineInfo2(Source source, LineInfo lineInfo) {
|
| _lineInfoMap[source] = lineInfo;
|
| }
|
| +
|
| /**
|
| * Return {@code true} if the two errors are equivalent.
|
| * @param firstError the first error being compared
|
| @@ -259,6 +291,7 @@
|
| * @return {@code true} if the two errors are equivalent
|
| */
|
| bool equals3(AnalysisError firstError, AnalysisError secondError) => identical(firstError.errorCode, secondError.errorCode) && firstError.offset == secondError.offset && firstError.length == secondError.length && equals4(firstError.source, secondError.source);
|
| +
|
| /**
|
| * Return {@code true} if the two sources are equivalent.
|
| * @param firstSource the first source being compared
|
| @@ -273,6 +306,7 @@
|
| }
|
| return firstSource == secondSource;
|
| }
|
| +
|
| /**
|
| * Assert that the number of errors that have been gathered matches the number of errors that are
|
| * given and that they have the expected error codes. The order in which the errors were gathered
|
| @@ -315,6 +349,7 @@
|
| }
|
| JUnitTestCase.fail(writer.toString());
|
| }
|
| +
|
| /**
|
| * Search through the given list of errors for an error that is equal to the target error. If one
|
| * is found, remove it from the list and return {@code true}, otherwise return {@code false}without modifying the list.
|
| @@ -332,11 +367,13 @@
|
| return true;
|
| }
|
| }
|
| +
|
| /**
|
| * The class {@code EngineTestCase} defines utility methods for making assertions.
|
| */
|
| class EngineTestCase extends JUnitTestCase {
|
| static int _PRINT_RANGE = 6;
|
| +
|
| /**
|
| * Assert that the tokens in the actual stream of tokens have the same types and lexemes as the
|
| * tokens in the expected stream of tokens. Note that this does not assert anything about the
|
| @@ -354,6 +391,7 @@
|
| right = right.next;
|
| }
|
| }
|
| +
|
| /**
|
| * Assert that the array of actual values contain exactly the same values as those in the array of
|
| * expected value, with the exception that the order of the elements is not required to be the
|
| @@ -383,6 +421,7 @@
|
| }
|
| }
|
| }
|
| +
|
| /**
|
| * Assert that a given String is equal to an expected value.
|
| * @param expected the expected String value
|
| @@ -408,6 +447,7 @@
|
| JUnitTestCase.assertEqualsMsg(message, expected, actual);
|
| }
|
| }
|
| +
|
| /**
|
| * Assert that the given list is non-{@code null} and has exactly expected elements.
|
| * @param list the list being tested
|
| @@ -430,6 +470,7 @@
|
| }
|
| }
|
| }
|
| +
|
| /**
|
| * Assert that the given array is non-{@code null} and has exactly expected elements.
|
| * @param array the array being tested
|
| @@ -446,13 +487,14 @@
|
| JUnitTestCase.fail("Expected array of size ${expectedSize}; contained ${array.length} elements");
|
| }
|
| for (int i = 0; i < expectedElements.length; i++) {
|
| - Object element = array[0];
|
| + Object element = array[i];
|
| Object expectedElement = expectedElements[i];
|
| if (!element == expectedElement) {
|
| JUnitTestCase.fail("Expected ${expectedElement} at [${i}]; found ${element}");
|
| }
|
| }
|
| }
|
| +
|
| /**
|
| * Assert that the given list is non-{@code null} and has exactly expected elements.
|
| * @param set the list being tested
|
| @@ -474,6 +516,7 @@
|
| }
|
| }
|
| }
|
| +
|
| /**
|
| * Assert that the given object is an instance of the expected class.
|
| * @param expectedClass the class that the object is expected to be an instance of
|
| @@ -487,6 +530,7 @@
|
| }
|
| return object as Object;
|
| }
|
| +
|
| /**
|
| * Assert that the given array is non-{@code null} and has the expected number of elements.
|
| * @param expectedLength the expected number of elements
|
| @@ -501,6 +545,7 @@
|
| JUnitTestCase.fail("Expected array of length ${expectedLength}; contained ${array.length} elements");
|
| }
|
| }
|
| +
|
| /**
|
| * Assert that the actual token has the same type and lexeme as the expected token. Note that this
|
| * does not assert anything about the offsets of the tokens (although the lengths will be equal).
|
| @@ -518,6 +563,7 @@
|
| JUnitTestCase.assertEquals(((expectedToken as StringToken)).lexeme, ((actualToken as StringToken)).lexeme);
|
| }
|
| }
|
| +
|
| /**
|
| * Assert that the given list is non-{@code null} and has the expected number of elements.
|
| * @param expectedSize the expected number of elements
|
| @@ -532,6 +578,7 @@
|
| JUnitTestCase.fail("Expected list of size ${expectedSize}; contained ${list.length} elements");
|
| }
|
| }
|
| +
|
| /**
|
| * Assert that the given map is non-{@code null} and has the expected number of elements.
|
| * @param expectedSize the expected number of elements
|
| @@ -546,6 +593,7 @@
|
| JUnitTestCase.fail("Expected map of size ${expectedSize}; contained ${map.length} elements");
|
| }
|
| }
|
| +
|
| /**
|
| * Assert that the given set is non-{@code null} and has the expected number of elements.
|
| * @param expectedSize the expected number of elements
|
| @@ -560,6 +608,7 @@
|
| JUnitTestCase.fail("Expected set of size ${expectedSize}; contained ${set.length} elements");
|
| }
|
| }
|
| +
|
| /**
|
| * Convert the given array of lines into a single source string.
|
| * @param lines the lines to be merged into a single source string
|
| @@ -572,6 +621,7 @@
|
| }
|
| return writer.toString();
|
| }
|
| +
|
| /**
|
| * Calculate the offset where the given strings differ.
|
| * @param str1 the first String to compare
|
| @@ -597,6 +647,7 @@
|
| context.sourceFactory = new SourceFactory.con2([]);
|
| return context;
|
| }
|
| +
|
| /**
|
| * Return the getter in the given type with the given name. Inherited getters are ignored.
|
| * @param type the type in which the getter is declared
|
| @@ -609,9 +660,10 @@
|
| return accessor;
|
| }
|
| }
|
| - JUnitTestCase.fail("Could not find getter named ${getterName} in ${type.name}");
|
| + JUnitTestCase.fail("Could not find getter named ${getterName} in ${type.displayName}");
|
| return null;
|
| }
|
| +
|
| /**
|
| * Return the method in the given type with the given name. Inherited methods are ignored.
|
| * @param type the type in which the method is declared
|
| @@ -624,7 +676,7 @@
|
| return method;
|
| }
|
| }
|
| - JUnitTestCase.fail("Could not find method named ${methodName} in ${type.name}");
|
| + JUnitTestCase.fail("Could not find method named ${methodName} in ${type.displayName}");
|
| return null;
|
| }
|
| static dartSuite() {
|
|
|