public static String getSummary() throws Exception {
    String summaryHTMLContent = _readResource("META-INF/resources/html/summary.html");

    _summaryContentWrapperLoggerElement.addChildLoggerElement(_getSummaryContentLoggerElement());

    summaryHTMLContent =
        StringUtil.replace(
            summaryHTMLContent,
            "<div id=\"summaryContentContainer\" />",
            _summaryContentContainerLoggerElement.toString());

    LoggerElement summaryTestDescriptionLoggerElement = _getSummaryTestDescriptionLoggerElement();

    summaryHTMLContent =
        StringUtil.replace(
            summaryHTMLContent,
            "<p id=\"summaryTestDescription\" />",
            summaryTestDescriptionLoggerElement.toString());

    LoggerElement summaryTestNameLoggerElement = _getSummaryTestNameLoggerElement();

    summaryHTMLContent =
        StringUtil.replace(
            summaryHTMLContent,
            "<h3 id=\"summaryTestName\" />",
            summaryTestNameLoggerElement.toString());

    summaryHTMLContent =
        StringUtil.replace(
            summaryHTMLContent,
            "<ul id=\"summaryTitleContainer\" />",
            _summaryTitleContainerLoggerElement.toString());

    return summaryHTMLContent;
  }
  private static LoggerElement _getMinorStepsLoggerElement() {
    LoggerElement loggerElement = new LoggerElement();

    loggerElement.setClassName("content minor-steps");
    loggerElement.setName("ul");

    return loggerElement;
  }
  private static LoggerElement _getSummaryTestNameLoggerElement() {
    LoggerElement loggerElement = new LoggerElement("summaryTestName");

    loggerElement.setName("h3");
    loggerElement.setText(PoshiRunnerContext.getTestCaseCommandName());

    return loggerElement;
  }
  private static LoggerElement _getCauseBodyLoggerElement() {
    LoggerElement loggerElement = new LoggerElement();

    loggerElement.setClassName("cause-body");
    loggerElement.setName("pre");

    return loggerElement;
  }
  private static LoggerElement _getScreenshotsBeforeHeaderLoggerElement() {
    LoggerElement loggerElement = new LoggerElement();

    loggerElement.setText("Before Failure:");
    loggerElement.setName("h5");

    return loggerElement;
  }
  private static LoggerElement _getCauseHeaderLoggerElement() {
    LoggerElement loggerElement = new LoggerElement();

    loggerElement.setClassName("cause-header");
    loggerElement.setName("h4");
    loggerElement.setText("Cause:");

    return loggerElement;
  }
  private static LoggerElement _getButtonLoggerElement() {
    LoggerElement loggerElement = new LoggerElement();

    loggerElement.setClassName("btn header");
    loggerElement.setName("button");
    loggerElement.setText("+");

    return loggerElement;
  }
  private static LoggerElement _getStepDescriptionLoggerElement(Element element) throws Exception {

    LoggerElement loggerElement = new LoggerElement();

    loggerElement.setClassName("step-description");
    loggerElement.setText(_getSummary(element));

    return loggerElement;
  }
Beispiel #9
0
 protected AbstractLoggerElement<?> addNewElement(final LoggingSubsystemElement element)
     throws UpdateFailedException {
   final LoggerElement newElement = new LoggerElement(name);
   newElement.setUseParentHandlers(useParentHandlers);
   if (!element.addLogger(newElement)) {
     throw new UpdateFailedException("Logger " + name + " already exists");
   }
   return newElement;
 }
  private static LoggerElement _getSummaryTitleLoggerElement(String title) {
    LoggerElement loggerElement = new LoggerElement();

    loggerElement.setName("li");

    loggerElement.addChildLoggerElement(_getSummaryTitleLinkLoggerElement(title));

    return loggerElement;
  }
  private static LoggerElement _getStepsHeaderLoggerElement() {
    LoggerElement loggerElement = new LoggerElement();

    loggerElement.setClassName("steps-header");
    loggerElement.setName("h4");
    loggerElement.setText("Steps:");

    return loggerElement;
  }
  static {
    _summaryContentContainerLoggerElement.addChildLoggerElement(
        _summaryContentWrapperLoggerElement);
    _summaryContentContainerLoggerElement.setID("summaryContentContainer");

    _summaryTitleContainerLoggerElement.addChildLoggerElement(
        _getSummaryTitleLoggerElement("SUMMARY"));
    _summaryTitleContainerLoggerElement.setName("ul");
  }
  private static LoggerElement _getScreenshotsHeaderLoggerElement() {
    LoggerElement loggerElement = new LoggerElement();

    loggerElement.setClassName("screenshots-header");
    loggerElement.setName("h4");
    loggerElement.setText("Screenshots:");

    return loggerElement;
  }
  private static LoggerElement _getCauseLoggerElement() {
    LoggerElement loggerElement = new LoggerElement();

    loggerElement.setClassName("cause");

    loggerElement.addChildLoggerElement(_getCauseHeaderLoggerElement());
    loggerElement.addChildLoggerElement(_causeBodyLoggerElement);

    return loggerElement;
  }
  private static LoggerElement _getSummaryTitleLinkLoggerElement(String title) {

    LoggerElement loggerElement = new LoggerElement();

    loggerElement.setAttribute("href", "#");
    loggerElement.setName("a");
    loggerElement.setText(title);

    return loggerElement;
  }
  private static LoggerElement _getStepsLoggerElement() {
    LoggerElement loggerElement = new LoggerElement();

    loggerElement.setClassName("steps");

    loggerElement.addChildLoggerElement(_getStepsHeaderLoggerElement());
    loggerElement.addChildLoggerElement(_majorStepsLoggerElement);

    return loggerElement;
  }
  private static LoggerElement _getStatusLoggerElement(String status) {
    LoggerElement loggerElement = new LoggerElement();

    loggerElement.setClassName("status");
    loggerElement.setID(null);
    loggerElement.setName("span");
    loggerElement.setText(" --> " + status);

    return loggerElement;
  }
  public static LoggerElement getSummarySnapshotLoggerElement() {
    LoggerElement loggerElement = _summaryLogLoggerElement.copy();

    LoggerElement stepsLoggerElement = loggerElement.loggerElement("div");

    LoggerElement majorStepsLoggerElement = stepsLoggerElement.loggerElement("ul");

    List<LoggerElement> majorStepLoggerElements = majorStepsLoggerElement.loggerElements("li");

    for (int i = 0; i < majorStepLoggerElements.size(); i++) {
      LoggerElement majorStepLoggerElement = majorStepLoggerElements.get(i);

      boolean lastMajorStep = (i >= (majorStepLoggerElements.size() - 1));

      majorStepLoggerElement.removeChildLoggerElements("button");

      if (lastMajorStep) {
        if (_containsMinorStepWarning) {
          _warnStepLoggerElement(majorStepLoggerElement);
        } else {
          _failStepLoggerElement(majorStepLoggerElement);
        }
      } else {
        majorStepLoggerElement.removeChildLoggerElements("ul");
      }
    }

    return loggerElement;
  }
  private static LoggerElement _getSummaryLogLoggerElement() {
    LoggerElement loggerElement = new LoggerElement();

    loggerElement.setClassName("summary-log");
    loggerElement.setName("div");

    loggerElement.addChildLoggerElement(_getStepsLoggerElement());
    loggerElement.addChildLoggerElement(_getCauseLoggerElement());

    return loggerElement;
  }
  private static LoggerElement _getMinorStepLoggerElement(Element element) throws Exception {

    LoggerElement loggerElement = new LoggerElement();

    loggerElement.setClassName("minor-step");
    loggerElement.setName("li");

    loggerElement.addChildLoggerElement(_getStepDescriptionLoggerElement(element));

    return loggerElement;
  }
  private static void _warnStepLoggerElement(LoggerElement stepLoggerElement) {

    stepLoggerElement.addClassName("summary-warning");

    LoggerElement lineContainerLoggerElement = stepLoggerElement.loggerElement("div");

    if (lineContainerLoggerElement == null) {
      return;
    }

    lineContainerLoggerElement.addChildLoggerElement(_getStatusLoggerElement("WARNING"));
    lineContainerLoggerElement.setName("strong");
  }
  private static void _failStepLoggerElement(LoggerElement stepLoggerElement) {

    stepLoggerElement.addClassName("summary-failure");

    LoggerElement lineContainerLoggerElement = stepLoggerElement.loggerElement("div");

    if (lineContainerLoggerElement == null) {
      return;
    }

    lineContainerLoggerElement.addChildLoggerElement(_getStatusLoggerElement("FAILED"));
    lineContainerLoggerElement.setName("strong");
  }
  private static LoggerElement _getSummaryTestDescriptionLoggerElement() {
    LoggerElement loggerElement = new LoggerElement("summaryTestDescription");

    String testCaseDescription =
        PoshiRunnerContext.getTestCaseDescription(PoshiRunnerContext.getTestCaseCommandName());

    if (Validator.isNull(testCaseDescription)) {
      testCaseDescription = "";
    }

    loggerElement.setName("p");
    loggerElement.setText(testCaseDescription);

    return loggerElement;
  }
  private static LoggerElement _getScreenshotsBeforeLinkLoggerElement() {
    LoggerElement loggerElement = new LoggerElement();

    StringBuilder sb = new StringBuilder();

    sb.append("screenshots/before");
    sb.append(CommandLoggerHandler.getErrorLinkId());
    sb.append(".jpg");

    loggerElement.setAttribute("href", sb.toString());

    loggerElement.setAttribute("title", "Before Failure");
    loggerElement.setName("a");

    loggerElement.addChildLoggerElement(_getScreenshotsBeforeThumbnailLoggerElement());

    return loggerElement;
  }
  private static LoggerElement _getScreenshotsBeforeThumbnailLoggerElement() {
    LoggerElement loggerElement = new LoggerElement();

    loggerElement.setAttribute("alt", "Before Failure");

    StringBuilder sb = new StringBuilder();

    sb.append("screenshots/before");
    sb.append(CommandLoggerHandler.getErrorLinkId());
    sb.append(".jpg");

    loggerElement.setAttribute("src", sb.toString());

    loggerElement.setClassName("screenshots-thumbnail");
    loggerElement.setName("img");

    return loggerElement;
  }
  private static LoggerElement _getScreenshotsLoggerElement() {
    LoggerElement loggerElement = new LoggerElement();

    loggerElement.setClassName("screenshots");

    loggerElement.addChildLoggerElement(_getScreenshotsHeaderLoggerElement());

    loggerElement.addChildLoggerElement(_getScreenshotsBeforeHeaderLoggerElement());
    loggerElement.addChildLoggerElement(_getScreenshotsBeforeLinkLoggerElement());

    loggerElement.addChildLoggerElement(_getScreenshotsAfterHeaderLoggerElement());
    loggerElement.addChildLoggerElement(_getScreenshotsAfterLinkLoggerElement());

    return loggerElement;
  }
  private static void _passStepLoggerElement(LoggerElement stepLoggerElement) {

    LoggerElement lineContainerLoggerElement = stepLoggerElement.loggerElement("div");

    lineContainerLoggerElement.addChildLoggerElement(_getStatusLoggerElement("PASSED"));
  }
  private static LoggerElement _getSummaryContentLoggerElement() {
    LoggerElement loggerElement = _summaryLogLoggerElement.copy();

    LoggerElement stepsLoggerElement = loggerElement.loggerElement("div");

    LoggerElement majorStepsLoggerElement = stepsLoggerElement.loggerElement("ul");

    List<LoggerElement> majorStepLoggerElements = majorStepsLoggerElement.loggerElements("li");

    for (int i = 0; i < majorStepLoggerElements.size(); i++) {
      LoggerElement majorStepLoggerElement = majorStepLoggerElements.get(i);

      boolean lastMajorStep = (i >= (majorStepLoggerElements.size() - 1));

      if (_containsMinorStepWarning && lastMajorStep) {
        _warnStepLoggerElement(majorStepLoggerElement);
      }

      String togglerClassNameSuffix = "collapsed";

      String majorStepClassName = majorStepLoggerElement.getClassName();

      if (lastMajorStep) {
        if (majorStepClassName.contains("summary-failure")
            || majorStepClassName.contains("summary-warning")) {

          togglerClassNameSuffix = "expanded";
        }
      }

      LoggerElement buttonLoggerElement = majorStepLoggerElement.loggerElement("button");

      buttonLoggerElement.addClassName("toggler-header-" + togglerClassNameSuffix);

      LoggerElement minorStepsLoggerElement = majorStepLoggerElement.loggerElement("ul");

      minorStepsLoggerElement.addClassName("toggler-content-" + togglerClassNameSuffix);
    }

    return loggerElement;
  }