public String formatTestResult() { if (testResult.getExecutionResult() == null) { return testResult.getMessage() != null ? Utils.escapeHTML(testResult.getMessage()) : originalContent; } final String escapedMessage = testResult.hasMessage() ? Utils.escapeHTML(testResult.getMessage()) : originalContent; switch (testResult.getExecutionResult()) { case PASS: return String.format("<span class=\"pass\">%s</span>", escapedMessage); case FAIL: if (testResult.hasActual() && testResult.hasExpected()) { return String.format( "[%s] <span class=\"fail\">expected [%s]</span>", Utils.escapeHTML(testResult.getActual()), Utils.escapeHTML(testResult.getExpected())); } else if ((testResult.hasActual() || testResult.hasExpected()) && testResult.hasMessage()) { return String.format( "[%s] <span class=\"fail\">%s</span>", Utils.escapeHTML( testResult.hasActual() ? testResult.getActual() : testResult.getExpected()), Utils.escapeHTML(testResult.getMessage())); } return String.format("<span class=\"fail\">%s</span>", escapedMessage); case IGNORE: return String.format( "%s <span class=\"ignore\">%s</span>", originalContent, escapedMessage); case ERROR: return String.format( "%s <span class=\"error\">%s</span>", originalContent, escapedMessage); } return "Should not be here"; }
protected TestResult markField(int tableRow, int matchedRow, int col, QueryResults queryResults) { if (col >= fieldNames.size()) return null; // ignore strange table geometry. String fieldName = fieldNames.get(col); String actualValue = queryResults.getCell(fieldName, matchedRow); String expectedValue = table.getCellContents(col, tableRow); TestResult testResult; if (actualValue == null) testResult = TestResult.fail(String.format("field %s not present", fieldName), expectedValue); else if (expectedValue == null || expectedValue.length() == 0) testResult = TestResult.ignore(actualValue); else { testResult = matchMessage(actualValue, expectedValue); // if (testResult != null) // table.substitute(col, tableRow, replaceSymbolsWithFullExpansion(message)); // else // table.substitute(col, tableRow, replaceSymbolsWithFullExpansion(expectedValue)); // else if (testResult == null) testResult = TestResult.fail(actualValue, replaceSymbolsWithFullExpansion(expectedValue)); else if (testResult.getExecutionResult() == ExecutionResult.PASS) testResult = markMatch(tableRow, matchedRow, col, testResult.getMessage()); } table.updateContent(col, tableRow, testResult); getTestContext().increment(testResult.getExecutionResult()); return testResult; }