package spec.concordion.command.verifyRows; import java.util.ArrayList; import java.util.Collection; import nu.xom.Document; import nu.xom.Element; import nu.xom.Nodes; import org.concordion.integration.junit3.ConcordionTestCase; import org.concordion.internal.util.Check; import test.concordion.TestRig; public class VerifyRowsTest extends ConcordionTestCase { public Collection<String> usernames; public String processFragment(String fragment, String csv) throws Exception { usernames = csvToCollection(csv); Document document = new TestRig() .withFixture(this) .processFragment(fragment) .getXOMDocument(); String result = ""; Element table = (Element) document.getRootElement().query("//table").get(0); Nodes rows = table.query(".//tr"); for (int i = 1; i < rows.size(); i++) { if (!result.equals("")) { result += ", "; } result += categorize((Element)rows.get(i)); } return result; } private String categorize(Element row) { String cssClass = row.getAttributeValue("class"); if (cssClass == null) { Element cell = (Element) row.query("td").get(0); cssClass = cell.getAttributeValue("class"); } Check.notNull(cssClass, "cssClass is null"); return cssClass.toUpperCase(); } private static Collection<String> csvToCollection(String csv) { Collection<String> c = new ArrayList<String>(); for (String s : csv.split(", ?")) { c.add(s); } return c; } }