package fitnesse.wikitext.test; import fitnesse.wiki.*; import fitnesse.wikitext.parser.SourcePage; import fitnesse.wikitext.parser.WikiSourcePage; import org.junit.Test; import java.util.ArrayList; import java.util.List; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class WikiSourcePageTest { @Test public void getsChildren() { TestRoot root = new TestRoot(); WikiPage page = root.makePage("PageOne"); root.makePage(page, "PageTwo"); root.makePage(page, "PageThree"); WikiSourcePage source = new WikiSourcePage(page); ArrayList<String> names = new ArrayList<String>(); for (SourcePage child: source.getChildren()) names.add(child.getName()); assertEquals(2, names.size()); assertTrue(names.contains("PageTwo")); assertTrue(names.contains("PageThree")); } @Test public void getsVirtualChildren() { TestRoot root = new TestRoot(); WikiPage page = root.makePage("PageOne"); root.makePage(page, "PageTwo"); root.makePage(page, "PageThree"); WikiPage virtualPage = root.makePage("VirtualPage"); VirtualCouplingExtension extension = (VirtualCouplingExtension) virtualPage.getExtension(VirtualCouplingExtension.NAME); extension.setVirtualCoupling(new MockVirtualCouplingPage(page)); WikiSourcePage source = new WikiSourcePage(virtualPage); ArrayList<String> names = new ArrayList<String>(); for (SourcePage child: source.getChildren()) names.add(child.getName()); assertEquals(2, names.size()); assertTrue(names.contains("PageTwo")); assertTrue(names.contains("PageThree")); } @SuppressWarnings("serial") private class MockVirtualCouplingPage extends VirtualCouplingPage { private WikiPage mockVirtualPage; public MockVirtualCouplingPage(WikiPage mockVirtualPage) { super(mockVirtualPage); this.mockVirtualPage = mockVirtualPage; } public List<WikiPage> getChildren() { return mockVirtualPage.getChildren(); } } @Test public void getsUrlForPage() { WikiPage test = new TestRoot().makePage("MyPage"); assertEquals("WikiPath", new WikiSourcePage(test).makeUrl("WikiPath")); } @Test public void getsUrlForProxyPage() { WikiPage root = InMemoryPage.makeRoot("RooT"); ProxyPage virtualPage = new ProxyPage("VirtualPage", root, "host", 9999, PathParser.parse("RealPage.VirtualPage")); assertEquals("http://host:9999/RealPage.WikiPath", new WikiSourcePage(virtualPage).makeUrl("WikiPath")); } }