Re: [xwiki-devs] [xwiki-notifications] r29377 - in platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-include: . src/main/java/org/xwiki/rendering/internal/macro/include src/test/java/org/xwiki/rendering/internal/macro
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
On Wed, Jun 9, 2010 at 20:12, Vincent Massol <[email protected]> wrote:
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/ ?
Yep would be more clear.
+ if (!e.getMessage().startsWith("Found recursive inclusion")) { + throw e;
I think you should do an Assert.assertTrue() instead here.
Actually i wanted to let the bad exception pass to see in the test log why the test failed instead of just it failed.
Thanks -Vincent
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
-- Thomas Mortagne
On Jun 10, 2010, at 9:44 AM, Thomas Mortagne wrote:
On Wed, Jun 9, 2010 at 20:12, Vincent Massol <[email protected]> wrote:
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/ ?
Yep would be more clear.
+ if (!e.getMessage().startsWith("Found recursive inclusion")) { + throw e;
I think you should do an Assert.assertTrue() instead here.
Actually i wanted to let the bad exception pass to see in the test log why the test failed instead of just it failed.
For the test to be correct it should generate a failure and not an error. Thanks -Vincent
participants (2)
-
Thomas Mortagne -
Vincent Massol