package com.twasyl.slideshowfx.content.extension.code; import com.twasyl.slideshowfx.markup.markdown.MarkdownMarkup; import org.junit.BeforeClass; import org.junit.Test; import java.util.regex.Matcher; import java.util.regex.Pattern; import static com.twasyl.slideshowfx.content.extension.code.enums.SupportedLanguage.JAVA; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; /** * This class tests the {@link CodeContentExtension} class using a markdown markup. * @author Thierry Wasylczenko * @since SlideshowFX 1.3 */ public class MarkdownCodeContentExtensionTest extends BaseCodeContentExtensionTest { @BeforeClass public static void setUp() { extension = new CodeContentExtension(); markup = new MarkdownMarkup(); } @Test public void showLines() { extension.controller = mockController("private String s;", true, JAVA); final String content = extension.buildContentString(markup); final Pattern pattern = Pattern.compile("line\\-numbers"); final Matcher matcher = pattern.matcher(content); assertTrue(matcher.find()); assertTrue(content.startsWith("<pre class=\"language-java line-numbers\"><code class=\"language-java line-numbers\">")); } @Test public void dontShowLines() { extension.controller = mockController("private String s;", false, JAVA); final String content = extension.buildContentString(markup); final Pattern pattern = Pattern.compile("line\\-numbers"); final Matcher matcher = pattern.matcher(content); assertFalse(matcher.find()); } @Test public void javaLanguage() { extension.controller = mockController("private String s;", true, JAVA); final String content = extension.buildContentString(markup); final Pattern pattern = Pattern.compile(JAVA.getCssClass()); final Matcher matcher = pattern.matcher(content); assertTrue(matcher.find()); } @Test public void lineSpecifierCodeMultiLines() { extension.controller = mockController("private String s;\n\nprivate boolean b;", false, JAVA); final String content = extension.buildContentString(markup); assertTrue(content.startsWith("```" + JAVA.getCssClass())); assertTrue(content.endsWith("\n```")); } @Test public void withoutLanguageAndDontShowLines() { extension.controller = mockController("private String s;", false, null); final String content = extension.buildContentString(markup); assertTrue(content.startsWith("```")); } }