@Test(expected = IllegalArgumentException.class) public void testRegisterClassWithoutExplicitName() { asciidoctor.javaExtensionRegistry().inlineMacro(AbstractTestProcessor.class); }
@Test(expected = IllegalArgumentException.class) public void testRegisterClassWithNameAsClass() { asciidoctor.javaExtensionRegistry().inlineMacro(TestProcessorWithName.class); }
@Test public void an_inline_macro_as_string_extension_should_be_executed_when_an_inline_macro_is_detected() { JavaExtensionRegistry javaExtensionRegistry = this.asciidoctor.javaExtensionRegistry(); javaExtensionRegistry.inlineMacro("man", "org.asciidoctor.extension.ManpageMacro"); String content = asciidoctor.convertFile( classpath.getResource("sample-with-man-link.ad"), options().toFile(false).get()); org.jsoup.nodes.Document doc = Jsoup.parse(content, "UTF-8"); Element link = doc.getElementsByTag("a").first(); assertThat(link.attr("href"), is("gittutorial.html")); }
@Test public void an_inline_macro_extension_should_be_executed_when_an_inline_macro_is_detected() { JavaExtensionRegistry javaExtensionRegistry = this.asciidoctor.javaExtensionRegistry(); javaExtensionRegistry.inlineMacro("man", ManpageMacro.class); String content = asciidoctor.convertFile( classpath.getResource("sample-with-man-link.ad"), options().toFile(false).get()); org.jsoup.nodes.Document doc = Jsoup.parse(content, "UTF-8"); Element link = doc.getElementsByTag("a").first(); assertThat(link.attr("href"), is("gittutorial.html")); }
@Test public void an_inline_macro_as_instance_extension_should_be_executed_when_regexp_is_set_as_option_inline_macro_is_detected() { JavaExtensionRegistry javaExtensionRegistry = this.asciidoctor.javaExtensionRegistry(); Map<String, Object> options = new HashMap<>(); options.put(InlineMacroProcessor.REGEXP, "man(?:page)?:(\\S+?)\\[(.*?)\\]"); ManpageMacro inlineMacroProcessor = new ManpageMacro("man", options); javaExtensionRegistry.inlineMacro(inlineMacroProcessor); String content = asciidoctor.convertFile( classpath.getResource("sample-with-man-link.ad"), options().toFile(false).get()); org.jsoup.nodes.Document doc = Jsoup.parse(content, "UTF-8"); Element link = doc.getElementsByTag("a").first(); assertNotNull(link); assertThat(link.attr("href"), is("gittutorial.html")); }
@Test public void should_create_context_menu() { asciidoctor.javaExtensionRegistry().inlineMacro(ImageInlineMacroProcessor.class); String result = asciidoctor.convert("foo:1234[]", OptionsBuilder.options().toFile(false).safe(SafeMode.UNSAFE)); assertThat( result, containsString( "<img src=\"http://foo.bar/1234\" alt=\"Image not available\" width=\"64\" height=\"64\">")); } }
@Test public void should_create_keyboard_elements() { asciidoctor.javaExtensionRegistry().inlineMacro(KeyboardInlineMacroProcessor.class); // <1> String result = asciidoctor.convert("ctrl:S[]", OptionsBuilder.options().toFile(false).safe(SafeMode.UNSAFE)); assertThat( result, containsString( "<kbd>Ctrl</kbd>+<kbd>S</kbd>")); } }
@Test public void an_inline_macro_as_instance_extension_should_be_executed_when_an_inline_macro_is_detected() { JavaExtensionRegistry javaExtensionRegistry = this.asciidoctor.javaExtensionRegistry(); Map<String, Object> options = new HashMap<>(); ManpageMacro inlineMacroProcessor = new ManpageMacro("man", options); javaExtensionRegistry.inlineMacro(inlineMacroProcessor); String content = asciidoctor.convertFile( classpath.getResource("sample-with-man-link.ad"), options().toFile(false).get()); org.jsoup.nodes.Document doc = Jsoup.parse(content, "UTF-8"); Element link = doc.getElementsByTag("a").first(); assertNotNull(link); assertThat(link.attr("href"), is("gittutorial.html")); }
@Test public void should_create_context_menu() { asciidoctor.javaExtensionRegistry().inlineMacro(ContextMenuInlineMacroProcessor.class); String result = asciidoctor.convert("rightclick:New|Class[]", OptionsBuilder.options().toFile(false).safe(SafeMode.UNSAFE)); assertThat( result, containsString( "<span class=\"menuseq\"><b class=\"menu\">Right click</b> <b class=\"caret\">›</b> <b class=\"submenu\">New</b> <b class=\"caret\">›</b> <b class=\"menuitem\">Class</b></span>")); } }
@Test public void an_inline_macro_as_instance_extension_should_not_be_executed_when_regexp_is_set_and_does_not_match() { JavaExtensionRegistry javaExtensionRegistry = this.asciidoctor.javaExtensionRegistry(); Map<String, Object> options = new HashMap<>(); options.put(InlineMacroProcessor.REGEXP, "man(?:page)?:(ThisDoesNotMatch)\\[(.*?)\\]"); ManpageMacro inlineMacroProcessor = new ManpageMacro("man", options); javaExtensionRegistry.inlineMacro(inlineMacroProcessor); String content = asciidoctor.convertFile( classpath.getResource("sample-with-man-link.ad"), options().toFile(false).get()); org.jsoup.nodes.Document doc = Jsoup.parse(content, "UTF-8"); Element link = doc.getElementsByTag("a").first(); assertNull(link); }
@Test public void testRegisterClassWithNameAsClassWithExplicitName() { final String explicitblockname = "explicitblockname"; asciidoctor.javaExtensionRegistry().inlineMacro(explicitblockname, TestProcessorWithName.class); final String result = asciidoctor.convert(document(explicitblockname, "Explicit"), OptionsBuilder.options()); check("Hello EXPLICIT", result); }
@Test public void testRegisterClassAsClassWithExplicitName() { final String explicitblockname = "anotherexplicitname"; asciidoctor.javaExtensionRegistry().inlineMacro(explicitblockname, AbstractTestProcessor.class); final String result = asciidoctor.convert(document(explicitblockname, "ExplicitClass"), OptionsBuilder.options()); check("Hello EXPLICIT CLASS", result); }
@Test public void testRegisterNamedClassAsClass() { asciidoctor.javaExtensionRegistry().inlineMacro(AnnotatedTestProcessor.class); final String result = asciidoctor.convert(document(AnnotatedTestProcessor.NAME, "World"), OptionsBuilder.options()); check("Hello WORLD", result); }
@Test public void testRegisterNamedClassAsClassWithExplicitName() { final String explicitblockname = "explicitblockname"; asciidoctor.javaExtensionRegistry().inlineMacro(explicitblockname, AnnotatedTestProcessor.class); final String result = asciidoctor.convert(document(explicitblockname, "Explicit"), OptionsBuilder.options()); check("Hello EXPLICIT", result); }
@Test(expected = AsciidoctorCoreException.class) public void testRegisterClassAsInstance() { asciidoctor.javaExtensionRegistry().inlineMacro(new AbstractTestProcessor()); asciidoctor.convert(document("foo", "HelloExplicitInstance"), OptionsBuilder.options()); }
@Test public void testRegisterNamedClassAsInstanceWithExplicitName() { final String blockName = "somename"; asciidoctor.javaExtensionRegistry().inlineMacro(blockName, new AnnotatedTestProcessor()); final String result = asciidoctor.convert(document(blockName, "YetAnotherTest"), OptionsBuilder.options()); check("Hello YET ANOTHER TEST", result); }
@Test public void testRegisterNamedClassAsInstance() { asciidoctor.javaExtensionRegistry().inlineMacro(new AnnotatedTestProcessor()); final String result = asciidoctor.convert(document(AnnotatedTestProcessor.NAME, "AnotherTest"), OptionsBuilder.options()); check("Hello ANOTHER TEST", result); }
@Test public void testRegisterClassAsInstanceWithExplicitName() { final String explicitblockname = "someexplicitname"; asciidoctor.javaExtensionRegistry().inlineMacro(explicitblockname, new AbstractTestProcessor()); final String result = asciidoctor.convert(document(explicitblockname, "ExplicitInstance"), OptionsBuilder.options()); check("Hello EXPLICIT INSTANCE", result); }
@Test public void testRegisterClassWithNameAsInstanceWithExplicitName() { final String blockName = "somename"; asciidoctor.javaExtensionRegistry().inlineMacro(blockName, new TestProcessorWithName()); final String result = asciidoctor.convert(document(blockName, "YetAnotherTest"), OptionsBuilder.options()); check("Hello YET ANOTHER TEST", result); }
@Test public void testRegisterClassWithNameAsInstance() { asciidoctor.javaExtensionRegistry().inlineMacro(new TestProcessorWithName()); final String result = asciidoctor.convert(document(TestProcessorWithName.NAME, "AnotherTest"), OptionsBuilder.options()); check("Hello ANOTHER TEST", result); }