in lib/src/file_descriptor.dart [143:177]
String _textMismatchMessage(
String prettyPath, String expected, String actual) {
final expectedLines = expected.split('\n');
final actualLines = actual.split('\n');
var results = [];
// Compare them line by line to see which ones match.
var length = math.max(expectedLines.length, actualLines.length);
for (var i = 0; i < length; i++) {
if (i >= actualLines.length) {
// Missing output.
results.add('? ${expectedLines[i]}');
} else if (i >= expectedLines.length) {
// Unexpected extra output.
results.add('X ${actualLines[i]}');
} else {
var expectedLine = expectedLines[i];
var actualLine = actualLines[i];
if (expectedLine != actualLine) {
// Mismatched lines.
results.add('X $actualLine');
} else {
// Matched lines.
results.add('${glyph.verticalLine} $actualLine');
}
}
}
return 'File "$prettyPath" should contain:\n'
'${addBar(expected)}\n'
'but actually contained:\n'
"${results.join('\n')}";
}