// 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.versions; import util.RegexTestCase; import fitnesse.FitNesseContext; import fitnesse.Responder; import fitnesse.http.MockRequest; import fitnesse.http.SimpleResponse; import fitnesse.testutil.FitNesseUtil; import fitnesse.wiki.InMemoryPage; import fitnesse.wiki.PageData; import fitnesse.wiki.PathParser; import fitnesse.wiki.VersionInfo; import fitnesse.wiki.WikiPage; public class VersionResponderTest extends RegexTestCase { private String oldVersion; private SimpleResponse response; private WikiPage root; private WikiPage page; private void makeTestResponse(String pageName) throws Exception { root = InMemoryPage.makeRoot("RooT"); FitNesseContext context = FitNesseUtil.makeTestContext(root); page = root.getPageCrawler().addPage(root, PathParser.parse(pageName), "original content"); PageData data = page.getData(); data.setContent("new stuff"); VersionInfo commitRecord = page.commit(data); oldVersion = commitRecord.getName(); MockRequest request = new MockRequest(); request.setResource(pageName); request.addInput("version", oldVersion); Responder responder = new VersionResponder(); response = (SimpleResponse) responder.makeResponse(context, request); } public void testVersionName() throws Exception { makeTestResponse("PageOne"); assertHasRegexp("original content", response.getContent()); assertDoesntHaveRegexp("new stuff", response.getContent()); assertHasRegexp(oldVersion, response.getContent()); } public void testButtons() throws Exception { makeTestResponse("PageOne"); assertDoesntHaveRegexp("Edit button", response.getContent()); assertDoesntHaveRegexp("Search button", response.getContent()); assertDoesntHaveRegexp("Test button", response.getContent()); assertDoesntHaveRegexp("Suite button", response.getContent()); assertDoesntHaveRegexp("Versions button", response.getContent()); assertHasRegexp(">Rollback</a>", response.getContent()); } public void testNameNoAtRootLevel() throws Exception { makeTestResponse("PageOne.PageTwo"); assertSubString("PageOne.PageTwo?responder=", response.getContent()); } }