in Utils/expect_common.dart [88:140]
static void stringEquals(
String? expected, String? actual, [String reason = '']) {
String defaultMessage =
'Expect.stringEquals(expected: <$expected>, <$actual>$reason) fails';
if (expected == actual) return;
if (expected == null || actual == null) {
_fail('$defaultMessage');
} else {
// Scan from the left until we find a mismatch
int left = 0;
int expLength = expected.length;
int actLength = actual.length;
while (true) {
if (left == expLength) {
assert(left < actLength);
String snippet = actual.substring(left, actLength);
_fail('$defaultMessage\nDiff:\n...[ ]\n...[ $snippet ]');
} else if (left == actLength) {
assert(left < expLength);
String snippet = expected.substring(left, expLength);
_fail('$defaultMessage\nDiff:\n...[ ]\n...[ $snippet ]');
} else if (expected[left] != actual[left]) {
break;
}
left++;
}
// scan from the right until we find a mismatch
int right = 0;
while (true) {
if (right == expLength) {
assert(right < actLength);
String snippet = actual.substring(0, actLength - right);
_fail('$defaultMessage\nDiff:\n[ ]...\n[ $snippet ]...');
} else if (right == actLength) {
assert(right < expLength);
String snippet = expected.substring(0, expLength - right);
_fail('$defaultMessage\nDiff:\n[ ]...\n[ $snippet ]...');
} else if ((expLength - right <= left || actLength - right <= left) ||
((expected[expLength - right - 1] != actual[actLength - right - 1]))){
// Stop scanning if we've reached the end of the left-to-right match
break;
}
right++;
}
String eSnippet = expected.substring(left, expLength - right);
String aSnippet = actual.substring(left, actLength - right);
String diff = '\nDiff:\n...[ $eSnippet ]...\n...[ $aSnippet ]...';
_fail('$defaultMessage$diff');
}
}