Asiri,

Can you document the test case (wikimaro2.test) and add comments to  
explain what the test tests? (it's not obvious IMO).

Also you might want to consider writing a unit test proper instead of  
using the rendering test fwk maybe since I'm not sure what it brings  
here (but I haven't really checked enough so I may be wrong).

-Vincent

On Oct 23, 2009, at 1:11 PM, asiri (SVN) wrote:

> Author: asiri
> Date: 2009-10-23 13:11:30 +0200 (Fri, 23 Oct 2009)
> New Revision: 24669
>
> Added:
>   platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki- 
> rendering-macro-wikibridge/src/test/resources/wikimacro2.test
> Removed:
>   platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki- 
> rendering-macro-wikibridge/src/test/resources/META-INF/components.txt
> Modified:
>   platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki- 
> rendering-macro-wikibridge/src/test/java/org/xwiki/rendering/ 
> RenderingTests.java
>   platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki- 
> rendering-macro-wikibridge/src/test/java/org/xwiki/rendering/ 
> internal/macro/wikibridge/MockWikiMacro.java
>   platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki- 
> rendering-macro-wikibridge/src/test/resources/wikimacro1.test
> Log:
> XWIKI-4520: Not possible to generate inline content from wiki macros  
> when the macro body starts with another macro.
>
> * Added a test case to exploit the issue.
>
> Modified: platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/ 
> xwiki-rendering-macro-wikibridge/src/test/java/org/xwiki/rendering/ 
> RenderingTests.java
> ===================================================================
> --- platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki- 
> rendering-macro-wikibridge/src/test/java/org/xwiki/rendering/ 
> RenderingTests.java   2009-10-23 10:23:04 UTC (rev 24668)
> +++ platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki- 
> rendering-macro-wikibridge/src/test/java/org/xwiki/rendering/ 
> RenderingTests.java   2009-10-23 11:11:30 UTC (rev 24669)
> @@ -20,6 +20,9 @@
>
> package org.xwiki.rendering;
>
> +import java.util.ArrayList;
> +import java.util.List;
> +
> import junit.framework.Test;
> import junit.framework.TestCase;
>
> @@ -28,6 +31,13 @@
> import org.xwiki.bridge.DocumentAccessBridge;
> import org.xwiki.component.descriptor.DefaultComponentDescriptor;
> import org.xwiki.component.embed.EmbeddableComponentManager;
> +import  
> org.xwiki.rendering.internal.macro.wikibridge.DefaultWikiMacro;
> +import org.xwiki.rendering.internal.macro.wikibridge.MockWikiMacro;
> +import org.xwiki.rendering.macro.descriptor.DefaultContentDescriptor;
> +import org.xwiki.rendering.macro.wikibridge.WikiMacro;
> +import org.xwiki.rendering.macro.wikibridge.WikiMacroDescriptor;
> +import org.xwiki.rendering.macro.wikibridge.WikiMacroManager;
> +import  
> org.xwiki.rendering.macro.wikibridge.WikiMacroParameterDescriptor;
> import org.xwiki.rendering.scaffolding.RenderingTestSuite;
> import org.xwiki.test.ComponentManagerTestSetup;
>
> @@ -50,6 +60,7 @@
>         RenderingTestSuite suite = new RenderingTestSuite("Test Wiki  
> Macro Bridge");
>
>         suite.addTestsFromResource("wikimacro1", true);
> +        suite.addTestsFromResource("wikimacro2", true);
>
>         ComponentManagerTestSetup testSetup = new  
> ComponentManagerTestSetup(suite);
>         setUpMocks(testSetup.getComponentManager());
> @@ -67,9 +78,35 @@
>             new DefaultComponentDescriptor<DocumentAccessBridge>();
>         descriptorDAB.setRole(DocumentAccessBridge.class);
>         componentManager.registerComponent(descriptorDAB,  
> mockDocumentAccessBridge);
> +
> +        // Register mock wiki macros.
> +        WikiMacroManager wikiMacroManager =  
> componentManager.lookup(WikiMacroManager.class);
> +
> +        // Mock wiki macro - 1.
> +        WikiMacroParameterDescriptor param1 = new  
> WikiMacroParameterDescriptor("param1", "This is param1", true);
> +        WikiMacroParameterDescriptor param2 = new  
> WikiMacroParameterDescriptor("param2", "This is param2", true);
> +        List<WikiMacroParameterDescriptor> params = new  
> ArrayList<WikiMacroParameterDescriptor>();
> +        params.add(param1);
> +        params.add(param2);
> +        WikiMacroDescriptor descriptor = new  
> WikiMacroDescriptor("Mock Wiki Macro - 1", "Description", "Test",
> +            new DefaultContentDescriptor(false), params);
> +        WikiMacro wikiMacro = new MockWikiMacro(new  
> DefaultWikiMacro("xwiki:Main.MockWikiMacro1", "mockwikimacro1",
> +            true, descriptor, "This is **mockwikimacro1**", "xwiki/ 
> 2.0", componentManager), componentManager);
> +         
> wikiMacroManager.registerWikiMacro("xwiki:Main.MockWikiMacro1",  
> wikiMacro);
> +
> +        // Mock wiki macro - 2.
> +        params = new ArrayList<WikiMacroParameterDescriptor>();
> +        descriptor = new WikiMacroDescriptor("Mock Wiki Macro - 2",  
> "Description", "Test",
> +            new DefaultContentDescriptor(false), params);
> +        wikiMacro = new MockWikiMacro(new  
> DefaultWikiMacro("xwiki:Main.MockWikiMacro2", "mockwikimacro2",
> +            true, descriptor, "{{mockwikimacro1 param1=\"p1\"  
> param2=\"p2\"/}}", "xwiki/2.0", componentManager),
> +            componentManager);
> +         
> wikiMacroManager.registerWikiMacro("xwiki:Main.MockWikiMacro2",  
> wikiMacro);
> +
>
>         context.checking(new Expectations() {{
> -             
> oneOf 
> (mockDocumentAccessBridge).getDocument("xwiki:Main.TestWikiMacro");  
> will(returnValue(null));
> +             
> allowing 
> (mockDocumentAccessBridge).getDocument("xwiki:Main.MockWikiMacro1");  
> will(returnValue(null));
> +             
> allowing 
> (mockDocumentAccessBridge).getDocument("xwiki:Main.MockWikiMacro2");  
> will(returnValue(null));
>         }});
>     }
> }
>
> Modified: platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/ 
> xwiki-rendering-macro-wikibridge/src/test/java/org/xwiki/rendering/ 
> internal/macro/wikibridge/MockWikiMacro.java
> ===================================================================
> --- platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki- 
> rendering-macro-wikibridge/src/test/java/org/xwiki/rendering/ 
> internal/macro/wikibridge/MockWikiMacro.java  2009-10-23 10:23:04 UTC  
> (rev 24668)
> +++ platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki- 
> rendering-macro-wikibridge/src/test/java/org/xwiki/rendering/ 
> internal/macro/wikibridge/MockWikiMacro.java  2009-10-23 11:11:30 UTC  
> (rev 24669)
> @@ -20,72 +20,48 @@
>
> package org.xwiki.rendering.internal.macro.wikibridge;
>
> -import java.util.ArrayList;
> import java.util.HashMap;
> import java.util.List;
>
> -import org.xwiki.component.annotation.Component;
> -import org.xwiki.component.annotation.Requirement;
> +import org.xwiki.component.manager.ComponentLookupException;
> import org.xwiki.component.manager.ComponentManager;
> -import org.xwiki.component.phase.Initializable;
> -import org.xwiki.component.phase.InitializationException;
> import org.xwiki.context.Execution;
> import org.xwiki.rendering.block.Block;
> import org.xwiki.rendering.macro.Macro;
> import org.xwiki.rendering.macro.MacroExecutionException;
> -import org.xwiki.rendering.macro.descriptor.DefaultContentDescriptor;
> import org.xwiki.rendering.macro.descriptor.MacroDescriptor;
> -import org.xwiki.rendering.macro.wikibridge.WikiMacroDescriptor;
> -import  
> org.xwiki.rendering.macro.wikibridge.WikiMacroParameterDescriptor;
> +import org.xwiki.rendering.macro.wikibridge.WikiMacro;
> import org.xwiki.rendering.macro.wikibridge.WikiMacroParameters;
> import org.xwiki.rendering.transformation.MacroTransformationContext;
>
> /**
> - * A wrapper macro used for testing a {...@link DefaultWikiMacro}  
> instance.
> + * A wrapper macro used for testing wiki macros.
>  *
>  * @version $Id$
>  * @since 2.0M2
>  */
> -...@component("testwikimacro")
> -public class MockWikiMacro implements Macro<WikiMacroParameters>,  
> Initializable
> +public class MockWikiMacro implements WikiMacro
> {
>     /**
> -     * The internal {...@link DefaultWikiMacro} instance.
> +     * The internal wiki macro instance.
>      */
> -    private DefaultWikiMacro wikiMacro;
> +    private WikiMacro wikiMacro;
>
>     /**
>      * The {...@link ComponentManager} component.
>      */
> -    @Requirement
>     private ComponentManager componentManager;
> -
> +
>     /**
> -     * The {...@link Execution} component.
> +     * Creates a new mock wiki macro encapsulating the given wiki  
> macro instance.
> +     *
> +     * @param wikiMacro encapsulated wiki macro instance.
> +     * @param componentManager component manager.
>      */
> -    @Requirement
> -    private Execution execution;
> -
> -    /**
> -     * {...@inheritdoc}
> -     */
> -    public void initialize() throws InitializationException
> +    public MockWikiMacro(WikiMacro wikiMacro, ComponentManager  
> componentManager)
>     {
> -        // Require two parameters, one mandatory and one optional.
> -        WikiMacroParameterDescriptor param1 = new  
> WikiMacroParameterDescriptor("param1", "This is param1", true);
> -        WikiMacroParameterDescriptor param2 = new  
> WikiMacroParameterDescriptor("param2", "This is param2", true);
> -        List<WikiMacroParameterDescriptor> params = new  
> ArrayList<WikiMacroParameterDescriptor>();
> -        params.add(param1);
> -        params.add(param2);
> -
> -        // Initialize the internal WikiMacro instance.
> -        WikiMacroDescriptor descriptor = new  
> WikiMacroDescriptor("Test Wiki Macro", "Description", "Test",
> -            new DefaultContentDescriptor(false), params);
> -        this.wikiMacro = new  
> DefaultWikiMacro("xwiki:Main.TestWikiMacro", "testwikimacro", true,  
> descriptor,
> -            "This is **testwikimacro**", "xwiki/2.0",  
> componentManager);
> -
> -        // Set a dummy XWikiContext.
> -        execution.getContext().setProperty("xwikicontext", new  
> HashMap<String, Object>());
> +        this.wikiMacro = wikiMacro;
> +        this.componentManager = componentManager;
>     }
>
>     /**
> @@ -94,10 +70,26 @@
>     public List<Block> execute(WikiMacroParameters parameters,  
> String content, MacroTransformationContext context)
>         throws MacroExecutionException
>     {
> +        // Use a dummy XWikiContext.
> +        try {
> +            Execution execution =  
> componentManager.lookup(Execution.class);
> +            execution.getContext().setProperty("xwikicontext", new  
> HashMap<String, Object>());
> +        } catch (ComponentLookupException ex) {
> +            throw new MacroExecutionException(ex.getMessage(), ex);
> +        }
> +
>         return this.wikiMacro.execute(parameters, content, context);
>     }
>
>     /**
> +     * {...@inheritdoc}
> +     */
> +    public String getId()
> +    {
> +        return this.wikiMacro.getId();
> +    }
> +
> +    /**
>      * {...@inheritdoc}
>      */
>     public MacroDescriptor getDescriptor()
>
> Deleted: platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/ 
> xwiki-rendering-macro-wikibridge/src/test/resources/META-INF/ 
> components.txt
> ===================================================================
> --- platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki- 
> rendering-macro-wikibridge/src/test/resources/META-INF/ 
> components.txt        2009-10-23 10:23:04 UTC (rev 24668)
> +++ platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki- 
> rendering-macro-wikibridge/src/test/resources/META-INF/ 
> components.txt        2009-10-23 11:11:30 UTC (rev 24669)
> @@ -1 +0,0 @@
> -org.xwiki.rendering.internal.macro.wikibridge.MockWikiMacro
> \ No newline at end of file
>
> Modified: platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/ 
> xwiki-rendering-macro-wikibridge/src/test/resources/wikimacro1.test
> ===================================================================
> --- platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki- 
> rendering-macro-wikibridge/src/test/resources/wikimacro1.test  
> 2009-10-23 10:23:04 UTC (rev 24668)
> +++ platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki- 
> rendering-macro-wikibridge/src/test/resources/wikimacro1.test  
> 2009-10-23 11:11:30 UTC (rev 24669)
> @@ -1,20 +1,20 @@
> .#-----------------------------------------------------
> .input|xwiki/2.0
> .#-----------------------------------------------------
> -{{testwikimacro param1="val1" param2="val2"/}}
> +{{mockwikimacro1 param1="val1" param2="val2"/}}
> .#-----------------------------------------------------
> .expect|event/1.0
> .#-----------------------------------------------------
> beginDocument
> -beginMacroMarkerStandalone [testwikimacro] [param1=val1|param2=val2]
> +beginMacroMarkerStandalone [mockwikimacro1] [param1=val1|param2=val2]
> beginParagraph
> onWord [This]
> onSpace
> onWord [is]
> onSpace
> beginFormat [BOLD]
> -onWord [testwikimacro]
> +onWord [mockwikimacro1]
> endFormat [BOLD]
> endParagraph
> -endMacroMarkerStandalone [testwikimacro] [param1=val1|param2=val2]
> +endMacroMarkerStandalone [mockwikimacro1] [param1=val1|param2=val2]
> endDocument
> \ No newline at end of file
>
> Added: platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/ 
> xwiki-rendering-macro-wikibridge/src/test/resources/wikimacro2.test
> ===================================================================
> --- platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki- 
> rendering-macro-wikibridge/src/test/resources/ 
> wikimacro2.test                               (rev 0)
> +++ platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki- 
> rendering-macro-wikibridge/src/test/resources/wikimacro2.test  
> 2009-10-23 11:11:30 UTC (rev 24669)
> @@ -0,0 +1,8 @@
> +.#-----------------------------------------------------
> +.input|xwiki/2.0
> +.#-----------------------------------------------------
> +Hello! {{mockwikimacro2/}}
> +.#-----------------------------------------------------
> +.expect|xhtml/1.0
> +.#-----------------------------------------------------
> +<p>Hello! This is <strong>mockwikimacro1</strong></p>
> \ No newline at end of file
>
> _______________________________________________
> notifications mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/notifications

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to