package com.crawljax.util;
import java.util.List;
import org.custommonkey.xmlunit.DetailedDiff;
import org.custommonkey.xmlunit.Diff;
import org.custommonkey.xmlunit.Difference;
import org.w3c.dom.Document;
/**
* This class allows to compare two Document objects and save the differences in a list.
*
* @author beze232056
*/
public class DOMComparer {
/**
* The control document. This is used as a base to compare the testDOM with.
*/
private final Document controlDOM;
/**
* The test document. This is the document in which we want to detect differences.
*/
private final Document testDOM;
/**
* Constructor.
*
* @param controlDOM
* The control DOM.
* @param testDOM
* The test DOM.
*/
public DOMComparer(Document controlDOM, Document testDOM) {
this.controlDOM = controlDOM;
this.testDOM = testDOM;
}
/**
* Compare the controlDOM and testDOM and save and return the differences in a list.
*
* @return list with differences
*/
@SuppressWarnings("unchecked")
public List<Difference> compare() {
Diff diff = new Diff(this.controlDOM, this.testDOM);
DetailedDiff detDiff = new DetailedDiff(diff);
return detDiff.getAllDifferences();
}
}