package fitnesse.wikitext.parser;
import org.junit.Test;
public class StyleTest {
@Test public void scansParenthesisStyle() throws Exception {
ParserTestHelper.assertScansTokenType("!style_x(my text)", "Style", true);
ParserTestHelper.assertScansTokenType("!style_style(my text)", "Style", true);
ParserTestHelper.assertScansTokenType("!style(Hi)", "Style", false);
ParserTestHelper.assertScansTokenType("!style_(Hi)", "Style", false);
ParserTestHelper.assertScansTokenType("!style_myStyle(hi))", "Style", true);
}
@Test public void scansBraceStyle() throws Exception {
ParserTestHelper.assertScansTokenType("!style_x{my text}", "Style", true);
ParserTestHelper.assertScansTokenType("!style_style{my text}", "Style", true);
ParserTestHelper.assertScansTokenType("!style{Hi}", "Style", false);
ParserTestHelper.assertScansTokenType("!style_{Hi}", "Style", false);
ParserTestHelper.assertScansTokenType("!style_myStyle{hi}}", "Style", true);
}
@Test public void scansBracketStyle() throws Exception {
ParserTestHelper.assertScansTokenType("!style_x[my text]", "Style", true);
ParserTestHelper.assertScansTokenType("!style_style[my text]", "Style", true);
ParserTestHelper.assertScansTokenType("!style[Hi]", "Style", false);
ParserTestHelper.assertScansTokenType("!style_[Hi]", "Style", false);
ParserTestHelper.assertScansTokenType("!style_myStyle[hi]]", "Style", true);
}
@Test public void translatesStyle() {
ParserTestHelper.assertTranslatesTo("!style_myStyle(wow zap)", "<span class=\"myStyle\">wow zap</span>");
ParserTestHelper.assertTranslatesTo("!style_myStyle[wow zap]", "<span class=\"myStyle\">wow zap</span>");
ParserTestHelper.assertTranslatesTo("!style_myStyle[)]", "<span class=\"myStyle\">)</span>");
ParserTestHelper.assertTranslatesTo("!style_myStyle{wow zap}", "<span class=\"myStyle\">wow zap</span>");
}
@Test public void ignoresMismatchedStyle() {
ParserTestHelper.assertTranslatesTo("!style_myStyle[stuff)", "!style_myStyle[stuff)");
}
@Test public void translatesNestedStyle() {
ParserTestHelper.assertTranslatesTo("!style_myStyle(!style_otherStyle(stuff))",
"<span class=\"myStyle\"><span class=\"otherStyle\">stuff</span></span>");
}
@Test public void translatesOverlappedStyle() {
ParserTestHelper.assertTranslatesTo("!style_red(!style_blue{a)}",
"!style_red(<span class=\"blue\">a)</span>");
}
}