Package ch.qos.mistletoe.servlet

Source Code of ch.qos.mistletoe.servlet.MistletoeServlet

package ch.qos.mistletoe.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletConfig;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;

import ch.qos.mistletoe.core.MistletoeCore;
import ch.qos.mistletoe.core.TestReport;

public class MistletoeServlet extends HttpServlet {
  private static final long serialVersionUID = 8651798172023005153L;

  static String DEFAULT_TEST_SUITE_KEY = "defaultTestSuite";
  static String TEST_CLASS_NAME_KEY = "testClassName";
  String defaultTestClassName;

  public void init(ServletConfig config) {
    defaultTestClassName = trim(config.getInitParameter(DEFAULT_TEST_SUITE_KEY));
  }

  boolean isEmpty(String s) {
    return s == null || s.length() == 0;
  }
 
  String trim(String s) {
    if(s == null) {
      return null;
    } else {
      return s.trim();
    }
  }
 
  public void service(ServletRequest req, ServletResponse response)
      throws IOException {
    response.setContentType("text/html");

    HttpServletRequest request = (HttpServletRequest) req;
   
    PrintWriter out = response.getWriter();
    TestReportPrinter trp = new TestReportPrinter(request, out);
   
    trp.printHeader();
    String testClassName = trim(request.getParameter(TEST_CLASS_NAME_KEY));
   
    if (isEmpty(testClassName)) {
      testClassName = defaultTestClassName;
    }
   
    out.print("<form>");
    out.println();
    out.print("Name of suite or test to run:");
    out.println();
    out.print("<input name=\"" + TEST_CLASS_NAME_KEY
        + "\" type=\"text\" size=\"70\" value=\"" + testClassName + "\"/>");
    out.println();
    out.print("<input type=\"submit\" value=\"Run\"/>");
    out.println();

    out.print("</form>");
    out.println();

    if (testClassName == null || testClassName.length() == 0) {
      out.println("Enter target class name to run.");
    } else {
      testClassName = testClassName.trim();
      TestReport testReport = run(out, testClassName);
      if (testReport != null) {
        trp.printSummary(testReport);
        trp.printAsTable("  ", testReport);
      }
    }
    trp.printFooter();
    out.close();
  }

  TestReport run(PrintWriter out, String targetClassStr) {
    MistletoeCore mCore = null;
    try {
      mCore = new MistletoeCore(targetClassStr);
    } catch (ClassNotFoundException e) {
      out.print("Failed to load class [" + targetClassStr+"]");
      return null;
    }

    TestReport rootReport = mCore.run();
    rootReport = TestReport.getFistChildIfNecessary(rootReport);
    return rootReport;
  }

}
TOP

Related Classes of ch.qos.mistletoe.servlet.MistletoeServlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.