// Copyright (C) 2003-2009 by Object Mentor, Inc. All rights reserved. // Released under the terms of the CPL Common Public License version 1.0. package fitnesse.responders.run; import fitnesse.responders.run.formatters.*; public class SuiteResponder extends TestResponder { private boolean includeHtml; @Override protected String getTitle() { return "Suite Results"; } @Override protected String mainTemplate() { return "suitePage"; } protected void checkArguments() { super.checkArguments(); includeHtml |= request.hasInput("includehtml"); } void addXmlFormatter() { CachingSuiteXmlFormatter xmlFormatter = new CachingSuiteXmlFormatter(context, page, response.getWriter()); if (includeHtml) xmlFormatter.includeHtml(); formatters.add(xmlFormatter); } void addHtmlFormatter() { BaseFormatter formatter = new SuiteHtmlFormatter(context, page) { protected void writeData(String output) { addToResponse(output); } }; formatters.add(formatter); } protected void addTestHistoryFormatter() { HistoryWriterFactory source = new HistoryWriterFactory(); formatters.add(new PageHistoryFormatter(context, page, source)); formatters.add(new SuiteHistoryFormatter(context, page, source)); } protected void performExecution() throws Exception { SuiteFilter filter = new SuiteFilter(request, page.getPageCrawler().getFullPath(page).toString()); SuiteContentsFinder suiteTestFinder = new SuiteContentsFinder(page, filter, root); MultipleTestsRunner runner = new MultipleTestsRunner(suiteTestFinder.getAllPagesToRunForThisSuite(), context, page, formatters); runner.setDebug(isRemoteDebug()); runner.setFastTest(isFastTest()); runner.executeTestPages(); } }