package fitnesse.wikitext.parser;
import fitnesse.wiki.*;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
public class WikiWordTest {
private TestRoot root;
private WikiPage pageOne;
private WikiPage pageOneTwo;
private WikiPage pageOneTwoThree;
private WikiPage pageOneThree;
@Before
public void setUp() throws Exception {
root = new TestRoot();
pageOne = root.makePage("PageOne");
pageOneTwo = root.makePage(pageOne, "PageOne2");
pageOneTwoThree = root.makePage(pageOneTwo, "PageThree");
pageOneThree = root.makePage(pageOne, "PageThree");
}
@Test
public void translatesWikiWords() throws Exception {
ParserTestHelper.assertTranslatesTo(pageOne, "PageOne", wikiLink("PageOne", "PageOne"));
ParserTestHelper.assertTranslatesTo(pageOneTwo, "PageOne2", wikiLink("PageOne.PageOne2", "PageOne2"));
ParserTestHelper.assertTranslatesTo(pageOneThree, ".PageOne", wikiLink("PageOne", ".PageOne"));
ParserTestHelper.assertTranslatesTo(pageOne, ">PageOne2", wikiLink("PageOne.PageOne2", ">PageOne2"));
ParserTestHelper.assertTranslatesTo(pageOneTwoThree, "<PageOne", wikiLink("PageOne", "<PageOne"));
}
@Test
public void translatesMissingWikiWords() throws Exception {
ParserTestHelper.assertTranslatesTo(pageOne, "PageNine",
"PageNine<a title=\"create page\" href=\"PageNine?edit&nonExistent=true\">[?]</a>");
}
@Test
public void regracesWikiWords() throws Exception {
root.setPageData(pageOne, "!define " + WikiWord.REGRACE_LINK + " {true}\nPageOne\n!define " + WikiWord.REGRACE_LINK + " {false}\n");
assertTrue(ParserTestHelper.translateTo(pageOne).contains(wikiLink("PageOne", "Page One")));
}
private String wikiLink(String link, String text) {
return "<a href=\"" + link + "\">" + text + "</a>";
}
}