Package com.google.jstestdriver.server.handlers

Source Code of com.google.jstestdriver.server.handlers.HomeHandler

/*
* Copyright 2010 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.google.jstestdriver.server.handlers;

import com.google.inject.Inject;
import com.google.jstestdriver.BrowserInfo;
import com.google.jstestdriver.CapturedBrowsers;
import com.google.jstestdriver.FileInfo;
import com.google.jstestdriver.SlaveBrowser;
import com.google.jstestdriver.annotations.ResponseWriter;
import com.google.jstestdriver.requesthandlers.RequestHandler;

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

import javax.servlet.http.HttpServletResponse;

/**
* Need to make it nicer, maybe use a template system...
*
* TODO(rdionne): Pull in Soy.  Will be non-trivial due to common deps
* with potentially different versions.
*
* @author jeremiele@google.com (Jeremie Lenfant-Engelmann)
*/
class HomeHandler implements RequestHandler {

  private final CapturedBrowsers capturedBrowsers;
  private final HttpServletResponse response;
  private final PrintWriter writer;

  @Inject
  public HomeHandler(
      CapturedBrowsers capturedBrowsers,
      HttpServletResponse response,
      @ResponseWriter PrintWriter writer) {
    this.capturedBrowsers = capturedBrowsers;
    this.response = response;
    this.writer = writer;
  }

  public void handleIt() throws IOException {
    response.setContentType("text/html");
    writer.write("<html><head><title>JsTestDriver</title>");
    writer.write("<script>");
    writer.write("function getEl(id){return document.getElementById(id);}");
    writer.write("function toggle(id) {\n");
    writer.write("if (getEl(id).style.display=='block') {");
    writer.write("getEl(id).style.display='none';");
    writer.write("} else {");
    writer.write("getEl(id).style.display='block';}");
    writer.write("}</script>");
    writer.write("</head><body>");
    writer.write("<a href=\"/capture\">Capture This Browser</a><br/>");
    writer.write("<a href=\"/capture?strict\">Capture This Browser in strict mode</a><br/>");
    writer.write("<p><strong>Captured Browsers: (");
    writer.write(String.valueOf(capturedBrowsers.getSlaveBrowsers().size()));
    writer.write(")</strong></p>");
    for (SlaveBrowser browser : capturedBrowsers.getSlaveBrowsers()) {
      writer.write("<div>");
      BrowserInfo info = browser.getBrowserInfo();
      writer.write("Id: " + info.getId() + "<br/>");
      writer.write("Name: " + info.getName() + "<br/>");
      writer.write("Version: " + info.getVersion() + "<br/>");
      writer.write("Operating System: " + info.getOs() + "<br/>");
      writer.write(browser.inUse() ? "In use.<br/>" : "Not in use.<br/>");
      writer.write(String.format("RunnerType %s <br/>", browser.getRunnerType()));
      if (browser.getCommandRunning() != null) {
        writer.write("Currently running " + browser.getCommandRunning() + "<br/>");
      } else {
        writer.write("Currently waiting...<br/>");
      }
      writer.write("<input type='button' value='List Files' onclick=\"toggle('f" + browser.getId() + "')\"/>");
      writer.write("<ul style='display:none' id='f" + browser.getId() + "'>");
      for (FileInfo fileInfo : browser.getFileSet()) {
        writer.write("<li>");
        writer.write(fileInfo.getDisplayPath());
        writer.write("</li>");
      }
      writer.write("</ul>");
      writer.write("<input type='button' value='Show Responses' onclick=\"toggle('r" + browser.getId() + "')\"/>");
      writer.write("<pre id='r" + browser.getId() + "' style='display:none'>");
      writer.write(browser.viewResponses());
      writer.write("</pre>");
      writer.write("</div>");
      writer.flush();
    }
    writer.write("</body></html>");
    writer.flush();
  }
}
TOP

Related Classes of com.google.jstestdriver.server.handlers.HomeHandler

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.