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 _getScreenshotsHeaderLoggerElement() {
    LoggerElement loggerElement = new LoggerElement();

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

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

    _summaryTitleContainerLoggerElement.addChildLoggerElement(
        _getSummaryTitleLoggerElement("SUMMARY"));
    _summaryTitleContainerLoggerElement.setName("ul");
  }
  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;
  }
  private static LoggerElement _getButtonLoggerElement() {
    LoggerElement loggerElement = new LoggerElement();

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

    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 _getStatusLoggerElement(String status) {
    LoggerElement loggerElement = new LoggerElement();

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

    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 LoggerElement _getSummaryLogLoggerElement() {
    LoggerElement loggerElement = new LoggerElement();

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

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

    return loggerElement;
  }
  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 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 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 _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 _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;
  }