package fitnesse.responders.testHistory; import java.io.UnsupportedEncodingException; import java.util.List; import fitnesse.FitNesseContext; import fitnesse.Responder; import fitnesse.http.Request; import fitnesse.http.Response; import fitnesse.http.SimpleResponse; import fitnesse.responders.run.SuiteResponder; import fitnesse.testrunner.SuiteContentsFinder; import fitnesse.testrunner.SuiteFilter; import fitnesse.html.template.HtmlPage; import fitnesse.html.template.PageTitle; import fitnesse.wiki.PathParser; import fitnesse.wiki.WikiPage; import fitnesse.wiki.WikiPagePath; public class SuiteOverviewResponder implements Responder { private FitNesseContext context; @Override public Response makeResponse(FitNesseContext context, Request request) throws UnsupportedEncodingException { this.context = context; WikiPage root = context.getRootPage(); WikiPage page = root.getPageCrawler().getPage(PathParser.parse(request.getResource())); SuiteFilter filter = SuiteResponder.createSuiteFilter(request, page.getPageCrawler().getFullPath().toString()); SuiteContentsFinder suiteTestFinder = new SuiteContentsFinder(page, filter, root); List<WikiPage> pagelist = suiteTestFinder.getAllPagesToRunForThisSuite(); SuiteOverviewTree treeview = new SuiteOverviewTree(pagelist); treeview.findLatestResults(context.getTestHistoryDirectory()); treeview.countResults(); WikiPagePath path = PathParser.parse(request.getResource()); SimpleResponse response = makeResponse(treeview, path, request); return response; } private SimpleResponse makeResponse(SuiteOverviewTree treeview, WikiPagePath path, Request request) throws UnsupportedEncodingException { SimpleResponse response = new SimpleResponse(); HtmlPage page = context.pageFactory.newPage(); page.setTitle("Suite Overview"); page.setPageTitle(new PageTitle("Suite Overview", path)); page.put("treeRoot", treeview.getTreeRoot()); page.put("viewLocation", request.getResource()); page.setMainTemplate("suiteOverview"); response.setContent(page.html()); return response; } }