/* * 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.pages; import com.google.common.collect.Lists; import com.google.inject.Inject; import com.google.jstestdriver.model.JstdTestCase; import com.google.jstestdriver.server.JstdTestCaseStore; import com.google.jstestdriver.util.HtmlWriter; import java.io.IOException; import java.util.List; /** * Runner page * * @author corbinrsmith@gmail.com (Cory Smith) */ public class StandaloneRunnerPage implements Page { private final TestFileUtil testFileUtil; private final JstdTestCaseStore store; @Inject StandaloneRunnerPage(TestFileUtil testFileUtil, JstdTestCaseStore store) { this.testFileUtil = testFileUtil; this.store = store; } @Override public void render(HtmlWriter writer, SlavePageRequest request) throws IOException { writer.startHead() .writeTitle("Console Runner") .writeExternalScript("/static/jstestdrivernamespace.js") .writeExternalScript("/static/lib/json2.js") .writeExternalScript("/static/lib/json_sans_eval.js") .writeExternalScript("/static/lib/jquery-min.js") .writeExternalScript("/static/standalonerunner.js") .writeScript( "jstestdriver.console = new jstestdriver.Console();" + "jstestdriver.runner = jstestdriver.config.createRunner(\n"+ " jstestdriver.config.createStandAloneExecutor);"); List<JstdTestCase> casesToWrite = Lists.newArrayList(); if (request.getParameter(SlavePageRequest.TESTCASE_ID) != null) { testFileUtil.writeTestFiles(writer, request.getParameter(SlavePageRequest.TESTCASE_ID)); } else { for (JstdTestCase testCase : store.getCases()) { testFileUtil.writeTestFiles(writer, testCase.getId()); } } writer.writeScript("jstestdriver.runner.listen(" + "jstestdriver.manualResourceTracker.getResults());"); writer.finishHead() .startBody() .finishBody() .flush(); } }