in tool/stats_lib.dart [158:208]
bool _compareHtml(
List<Element> expectedElements, List<Element> actualElements) {
if (expectedElements.length != actualElements.length) {
return false;
}
for (var childNum = 0; childNum < expectedElements.length; childNum++) {
var expected = expectedElements[childNum];
var actual = actualElements[childNum];
if (expected.runtimeType != actual.runtimeType) {
return false;
}
if (expected.localName != actual.localName) {
return false;
}
if (expected.attributes.length != actual.attributes.length) {
return false;
}
var expectedAttrKeys = expected.attributes.keys.toList();
expectedAttrKeys.sort();
var actualAttrKeys = actual.attributes.keys.toList();
actualAttrKeys.sort();
for (var attrNum = 0; attrNum < actualAttrKeys.length; attrNum++) {
var expectedAttrKey = expectedAttrKeys[attrNum];
var actualAttrKey = actualAttrKeys[attrNum];
if (expectedAttrKey != actualAttrKey) {
return false;
}
if (expected.attributes[expectedAttrKey] !=
actual.attributes[actualAttrKey]) {
return false;
}
}
var childrenEqual = _compareHtml(expected.children, actual.children);
if (!childrenEqual) {
return false;
}
}
return true;
}