On Jun 9, 2010, at 6:01 PM, tmortagne (SVN) wrote:
Author: tmortagne Date: 2010-06-09 18:01:08 +0200 (Wed, 09 Jun 2010) New Revision: 29377
Modified: platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-include/pom.xml platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-include/src/main/java/org/xwiki/rendering/internal/macro/include/IncludeMacro.java platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-include/src/test/java/org/xwiki/rendering/internal/macro/IncludeMacroTest.java Log: XWIKI-4115: Include macro should protect from recursive inclusion
[snip]
+ + @Test + public void testIncludeMacroWithRecursiveInclude() throws Exception + { + this.mockSetup.mockery.checking(new Expectations() {{ + oneOf(mockSetup.documentReferenceResolver).resolve("wiki:Space.Page"); + will(returnValue(new DocumentReference("wiki", "Space", "Page"))); + oneOf(mockSetup.documentReferenceResolver).resolve("Space.Page"); + will(returnValue(new DocumentReference("wiki", "Space", "Page"))); + }}); + + this.includeMacro.setDocumentAccessBridge(mockSetup.bridge); + + MacroBlock includeMacro = new MacroBlock("include", Collections.singletonMap("document", "wiki:Space.Page"), false); + new MacroMarkerBlock("include", Collections.singletonMap("document", "Space.Page"), Collections.<Block>singletonList(includeMacro), false); + MacroTransformationContext context = new MacroTransformationContext(); + context.setCurrentMacroBlock(includeMacro); + + IncludeMacroParameters parameters = new IncludeMacroParameters(); + parameters.setDocument("wiki:Space.Page"); + parameters.setContext(Context.CURRENT); + + List<Block> blocks; + try { + blocks = this.includeMacro.execute(parameters, null, context); + + Assert.fail("The include macro did not checked the recusive inclusion"); + } catch (MacroExecutionException e) {
s/e/expected/ ?
+ if (!e.getMessage().startsWith("Found recursive inclusion")) { + throw e;
I think you should do an Assert.assertTrue() instead here. Thanks -Vincent