in java/src/org/apache/qetest/xsl/XHTComparator.java [482:554]
boolean basicChildCompare(Node gold, Node test, PrintWriter reporter,
boolean[] warning, Node next[])
{
next[0] = gold;
next[1] = test;
boolean alreadyTriedToAdvance = false;
if ((null != gold) && (null == test))
{
gold = tryToAdvancePastWhitespace(gold, reporter, warning, next,
0);
alreadyTriedToAdvance = true;
if ((null != gold) && (null == test))
{
reporter.println(MISSING_TEST_NODE + nodeTypeString(gold)
+ SEPARATOR + SEPARATOR
+ "missing node on test");
return false;
}
}
else if ((null == gold) && (null != test))
{
test = tryToAdvancePastWhitespace(test, reporter, warning, next,
1);
alreadyTriedToAdvance = true;
if ((null == gold) && (null != test))
{
reporter.println(MISSING_GOLD_NODE + SEPARATOR
+ nodeTypeString(test) + SEPARATOR
+ "missing node on gold");
return false;
}
}
if ((null != gold) && (gold.getNodeType() != test.getNodeType()))
{
Node savedGold = gold;
Node savedTest = test;
if (!alreadyTriedToAdvance)
{
gold = tryToAdvancePastWhitespace(gold, reporter, warning,
next, 0);
if (gold == savedGold)
{
test = tryToAdvancePastWhitespace(test, reporter,
warning, next, 1);
}
}
if ((null != gold) && (gold.getNodeType() != test.getNodeType()))
{
gold = savedGold;
test = savedTest;
reporter.println(MISMATCH_NODE + nodeTypeString(gold)
+ SEPARATOR + nodeTypeString(test) + SEPARATOR
+ "node type mismatch");
printNodeDiff(gold, test, reporter);
return false;
}
}
return true;
} // end of basicChildCompare()