use of org.xwiki.rendering.parser.Parser in project xwiki-platform by xwiki.
the class DefaultHTMLConverterTest method parseAndRender.
/**
* Unit test for {@link DefaultHTMLConverter#parseAndRender(String, String)}.
*/
@Test
public void parseAndRender() throws Exception {
String html = "some HTML";
String syntaxId = "syntax/x.y";
// Verify the HTML is cleaned.
HTMLCleaner cleaner = mocker.getInstance(HTMLCleaner.class);
when(cleaner.clean(html)).thenReturn(html);
// Verify the HTML is parsed into XDOM.
XDOM xdom = new XDOM(Collections.<Block>emptyList());
Parser xhtmlParser = mocker.getInstance(Parser.class, "xhtml/1.0");
when(xhtmlParser.parse(any(StringReader.class))).thenReturn(xdom);
Assert.assertEquals("", mocker.getComponentUnderTest().parseAndRender(html, syntaxId));
// Verify that the macro transformations have been executed.
Transformation macroTransformation = mocker.getInstance(Transformation.class, "macro");
RenderingContext renderingContext = mocker.getInstance(RenderingContext.class);
// It's very important to verify that a transformation context id is set as otherwise if the content being
// edited has different velocity macros executing, they'll be executed in isolation and thus what's defined in
// one won't be visible from the other ones (For example see https://jira.xwiki.org/browse/XWIKI-11695).
ArgumentCaptor<TransformationContext> txContextArgument = ArgumentCaptor.forClass(TransformationContext.class);
verify((MutableRenderingContext) renderingContext).transformInContext(same(macroTransformation), txContextArgument.capture(), same(xdom));
assertEquals("wysiwygtxid", txContextArgument.getValue().getId());
// Verify the XDOM is rendered to Annotated XHTML.
BlockRenderer xhtmlRenderer = mocker.getInstance(BlockRenderer.class, "annotatedxhtml/1.0");
verify(xhtmlRenderer).render(same(xdom), any(WikiPrinter.class));
// Verify that the syntax meta data has been set.
Assert.assertEquals(Syntax.valueOf("syntax/x.y"), xdom.getMetaData().getMetaData(MetaData.SYNTAX));
}
use of org.xwiki.rendering.parser.Parser in project xwiki-platform by xwiki.
the class DocumentTitleDisplayerTest method fallbackOnSpaceNameWhenSpaceHomePageTitleIsEmpty.
@Test
public void fallbackOnSpaceNameWhenSpaceHomePageTitleIsEmpty() throws Exception {
EntityReferenceProvider defaultEntityReferenceProvider = this.mocker.getInstance(EntityReferenceProvider.class);
when(defaultEntityReferenceProvider.getDefaultReference(EntityType.DOCUMENT)).thenReturn(new EntityReference("Page", EntityType.DOCUMENT));
DocumentModelBridge document = mock(DocumentModelBridge.class);
when(document.getDocumentReference()).thenReturn(new DocumentReference("wiki", Arrays.asList("Space"), "Page"));
XDOM titleXDOM = new XDOM(Arrays.asList(new WordBlock("Space")));
Parser plainTextParser = this.mocker.getInstance(Parser.class, "plain/1.0");
when(plainTextParser.parse(any(StringReader.class))).thenReturn(titleXDOM);
DocumentDisplayerParameters params = new DocumentDisplayerParameters();
params.setTitleDisplayed(true);
assertSame(titleXDOM, this.mocker.getComponentUnderTest().display(document, params));
ArgumentCaptor<Reader> argument = ArgumentCaptor.forClass(Reader.class);
verify(plainTextParser).parse(argument.capture());
assertEquals("Space", IOUtils.toString(argument.getValue()));
}
use of org.xwiki.rendering.parser.Parser in project xwiki-platform by xwiki.
the class IntegrationTests method initialize.
@RenderingTestSuite.Initialized
public void initialize(MockitoComponentManager componentManager) throws Exception {
// For performance reasons we mock some components to avoid having to draw all oldcore components
// Macro Reference Resolver
DocumentReferenceResolver<String> macroResolver = componentManager.registerMockComponent(new DefaultParameterizedType(null, DocumentReferenceResolver.class, String.class), "macro");
DocumentReference referencedDocumentReference = new DocumentReference("Wiki", "Space", "Page");
when(macroResolver.resolve(eq("Space.Page"), any(MacroBlock.class))).thenReturn(referencedDocumentReference);
// Document Access Bridge mock
// Simulate the XDOM of the referenced document
DocumentAccessBridge dab = componentManager.registerMockComponent(DocumentAccessBridge.class);
DocumentModelBridge dmb = mock(DocumentModelBridge.class);
when(dab.getTranslatedDocumentInstance(referencedDocumentReference)).thenReturn(dmb);
Parser parser = componentManager.getInstance(Parser.class, "xwiki/2.1");
XDOM xdom = parser.parse(new StringReader("= heading1 =\n==heading2=="));
when(dmb.getXDOM()).thenReturn(xdom);
}
use of org.xwiki.rendering.parser.Parser in project xwiki-platform by xwiki.
the class DefaultExtendedRenderingConfigurationTest method getConfiguredAndDisabledSyntaxesWhenNoConfigXObjectAndExistingXWikiCfgProperty.
@Test
public void getConfiguredAndDisabledSyntaxesWhenNoConfigXObjectAndExistingXWikiCfgProperty() throws Exception {
ConfigurationSource renderingSource = this.mocker.getInstance(ConfigurationSource.class, "rendering");
when(renderingSource.getProperty("disabledSyntaxes")).thenReturn(null);
ConfigurationSource xwikiCfgSource = this.mocker.getInstance(ConfigurationSource.class, "xwikicfg");
when(xwikiCfgSource.getProperty("xwiki.rendering.syntaxes", List.class)).thenReturn(Arrays.asList("xwiki/2.0", "xwiki/2.1"));
// Register some Syntaxes for the test
Parser xwikiSyntax20Parser = this.mocker.registerMockComponent(Parser.class, Syntax.XWIKI_2_0.toIdString());
when(xwikiSyntax20Parser.getSyntax()).thenReturn(Syntax.XWIKI_2_0);
Parser xwikiSyntax21Parser = this.mocker.registerMockComponent(Parser.class, Syntax.XWIKI_2_1.toIdString());
when(xwikiSyntax21Parser.getSyntax()).thenReturn(Syntax.XWIKI_2_1);
Syntax syntax1 = new Syntax(new SyntaxType("syntax1", "Syntax 1"), "1.0");
Parser syntax1Parser = this.mocker.registerMockComponent(Parser.class, syntax1.toIdString());
when(syntax1Parser.getSyntax()).thenReturn(syntax1);
Syntax syntax2 = new Syntax(new SyntaxType("syntax2", "Syntax 2"), "1.0");
Parser syntax2Parser = this.mocker.registerMockComponent(Parser.class, syntax2.toIdString());
when(syntax2Parser.getSyntax()).thenReturn(syntax2);
List<Syntax> disabledSyntaxes = this.mocker.getComponentUnderTest().getDisabledSyntaxes();
assertEquals(2, disabledSyntaxes.size());
assertTrue(disabledSyntaxes.contains(syntax1));
assertTrue(disabledSyntaxes.contains(syntax2));
List<Syntax> configuredSyntaxes = this.mocker.getComponentUnderTest().getConfiguredSyntaxes();
assertEquals(2, configuredSyntaxes.size());
assertTrue(configuredSyntaxes.contains(Syntax.XWIKI_2_0));
assertTrue(configuredSyntaxes.contains(Syntax.XWIKI_2_1));
}
use of org.xwiki.rendering.parser.Parser in project xwiki-platform by xwiki.
the class DefaultExtendedRenderingConfigurationTest method getConfiguredAndDisabledSyntaxesWhenConfigXObjectExists.
@Test
public void getConfiguredAndDisabledSyntaxesWhenConfigXObjectExists() throws Exception {
ConfigurationSource renderingSource = this.mocker.getInstance(ConfigurationSource.class, "rendering");
when(renderingSource.getProperty("disabledSyntaxes")).thenReturn(Arrays.asList("syntax1/1.0", "syntax2/1.0"));
// Register some Syntaxes for the test
Parser syntax1Parser = this.mocker.registerMockComponent(Parser.class, "syntax1/1.0");
Syntax syntax1 = new Syntax(new SyntaxType("syntax1", "Syntax 1"), "1.0");
when(syntax1Parser.getSyntax()).thenReturn(syntax1);
Parser syntax2Parser = this.mocker.registerMockComponent(Parser.class, "syntax2/1.0");
Syntax syntax2 = new Syntax(new SyntaxType("syntax2", "Syntax 2"), "1.0");
when(syntax2Parser.getSyntax()).thenReturn(syntax2);
Parser xwikiSyntax20Parser = this.mocker.registerMockComponent(Parser.class, "xwiki/2.0");
Syntax xwikiSyntax20 = new Syntax(new SyntaxType("xwiki", "XWiki"), "2.0");
when(xwikiSyntax20Parser.getSyntax()).thenReturn(xwikiSyntax20);
List<Syntax> disabledSyntaxes = this.mocker.getComponentUnderTest().getDisabledSyntaxes();
assertEquals(2, disabledSyntaxes.size());
assertTrue(disabledSyntaxes.contains(syntax1));
assertTrue(disabledSyntaxes.contains(syntax2));
List<Syntax> configuredSyntaxes = this.mocker.getComponentUnderTest().getConfiguredSyntaxes();
assertEquals(1, configuredSyntaxes.size());
assertTrue(configuredSyntaxes.contains(xwikiSyntax20));
}
Aggregations