package org.jboss.windup.testutil.html; import java.io.FileWriter; import java.io.IOException; import java.nio.file.Path; import org.apache.commons.io.FileUtils; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; /** * @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a> */ public class TestReportIndexReportUtil extends TestReportUtil { public boolean checkIncidentByCategoryRow(String category, int incidents, int totalStoryPoints) { WebElement element = getDriver().findElement(By.id("incidentsByTypeTable")); if (element == null) { throw new CheckFailedException("Unable to find incidents by type table element"); } return checkValueInTable(element, category, String.valueOf(incidents), String.valueOf(totalStoryPoints)); } /** * Loads the given page w/ the {@link WebDriver} */ @Override public void loadPage(Path filePath) { try { Path modifiedPath = filePath.getParent().resolve(filePath.getFileName().toString() + "_modified.html"); String contents = FileUtils.readFileToString(filePath.toFile()); // remove some libraries that htmlunit has issues with... we don't really test these through htmlunit anyway contents = contents.replace("$.plot", ""); // contents = contents.replace("<script src=\"resources/libraries/flot/jquery.flot.js\"></script>", ""); contents = contents.replace("<script src=\"resources/libraries/flot/jquery.flot.js\"></script>", "<script>$.plot = function(){}</script>"); contents = contents.replace("<script src=\"resources/libraries/flot/jquery.flot.pie.min.js\"></script>", ""); contents = contents.replace("<script src=\"resources/libraries/flot/jquery.flot.valuelabels.js\"></script>", ""); contents = contents.replace("<script src=\"resources/libraries/flot/jquery.flot.axislabels.js\"></script>", ""); contents = contents.replace("<script src=\"resources/libraries/flot/jquery.flot.resize.js\"></script>", ""); contents = contents.replaceAll("jQuery.Color\\((.|[\n])*?\\);", ""); contents = contents.replace("createTagCharts();", ""); try (FileWriter writer = new FileWriter(modifiedPath.toFile())) { writer.append(contents); } getDriver().get(modifiedPath.toUri().toString()); } catch (IOException e) { throw new RuntimeException(e); } } }