package fitnesse.wikitext.parser;
import fitnesse.html.HtmlElement;
import fitnesse.wiki.WikiPage;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import java.util.List;
public class PathTest {
@Test
public void scansPaths() {
ParserTestHelper.assertScansTokenType("!path stuff", "Path", true);
ParserTestHelper.assertScansTokenType(" !path stuff", "Path", false);
ParserTestHelper.assertScansTokenType("| !path stuff|", "Path", true);
ParserTestHelper.assertScansTokenType("!note !path stuff", "Path", true);
}
@Test
public void translatesPaths() throws Exception {
ParserTestHelper.assertTranslatesTo("!path stuff", "<span class=\"meta\">classpath: stuff</span>");
ParserTestHelper.assertTranslatesTo("!path stuff\n",
"<span class=\"meta\">classpath: stuff</span>" + ParserTestHelper.newLineRendered);
}
@Test
public void translatesVariableInPath() throws Exception {
WikiPage page = new TestRoot().makePage("TestPage", "!define x {stuff}\n!path ${x}y\n");
ParserTestHelper.assertTranslatesTo(page,
"<span class=\"meta\">variable defined: x=stuff</span>" + HtmlElement.endl +
ParserTestHelper.newLineRendered + "<span class=\"meta\">classpath: stuffy</span>" + ParserTestHelper.newLineRendered);
}
@Test
public void findsDefinitions() throws Exception {
WikiPage page = new TestRoot().makePage("TestPage", "!path stuff\n!note and\n!path nonsense");
List<String> paths = new Paths(new HtmlTranslator(new WikiSourcePage(page), new ParsingPage(new WikiSourcePage(page)))).getPaths(ParserTestHelper.parse(page));
assertEquals(2, paths.size());
assertEquals("stuff", paths.get(0));
assertEquals("nonsense", paths.get(1));
}
}