On Mar 10, 2010, at 8:48 AM, Asiri Rathnayake wrote:
Hi Vincent,
On Wed, Mar 10, 2010 at 12:55 PM, Vincent Massol <vincent(a)massol.net> wrote:
Hi Asiri,
Don't we have any tests for wiki macros? I don't see any test providing
that it works. Since wiki macros are something introduced recently I'm
surprised we don't have tests for it (or do we?).
There are tests for wiki macros. See
http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-rendering/xwik…
and
http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-rendering/xwik…
If you are referring to this specific new feature or integration tests, No
there are none.
Yes that's my question, why are there none? We shouldn't apply or accept patches
that don't have tests to prove they work (unless when it's about some old code
modifications and writing tests is just too hard).
Could you add some tests to prove this new feature?
Thanks
-Vincent
Thanks.
- Asiri
>
> Also could you explain the need for default parameter values in wiki macro
> parameter descriptor?
> Since the macro content is available in the content field, isn't it easy to
> use a default value there?
>
> So is this just for convenience or is there something I don't see?
>
> Thanks
> -Vincent
>
> On Mar 10, 2010, at 7:43 AM, asiri (SVN) wrote:
>
>> Author: asiri
>> Date: 2010-03-10 07:43:01 +0100 (Wed, 10 Mar 2010)
>> New Revision: 27562
>>
>> Modified:
>>
>
platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/DefaultWikiMacroFactory.java
>>
>
platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/DefaultWikiMacroInitializer.java
>>
>
platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/WikiMacroConstants.java
>>
>
platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-wikibridge/src/main/java/org/xwiki/rendering/macro/wikibridge/WikiMacroParameterDescriptor.java
>> Log:
>> XWIKI-4944: Add support for Default Values for XWiki Wiki Macros.
>>
>> * Applied anamaria's patch without changes.
>>
>> Modified:
>
platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/DefaultWikiMacroFactory.java
>> ===================================================================
>> ---
>
platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/DefaultWikiMacroFactory.java
> 2010-03-10 05:11:59 UTC (rev 27561)
>> +++
>
platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/DefaultWikiMacroFactory.java
> 2010-03-10 06:43:01 UTC (rev 27562)
>> @@ -191,7 +191,8 @@
>> String parameterDescription =
> macroParameter.getStringValue(PARAMETER_DESCRIPTION_PROPERTY);
>> boolean parameterMandatory =
>>
> (macroParameter.getIntValue(PARAMETER_MANDATORY_PROPERTY) == 0) ? false :
> true;
>> -
>> + String parameterDefaultValue =
> macroParameter.getStringValue(PARAMETER_DEFAULT_VALUE_PROPERTY);
>> +
>> // Verify parameter name.
>> if (StringUtils.isEmpty(parameterName)) {
>> throw new WikiMacroException(String.format(
>> @@ -203,10 +204,15 @@
>> String errorMessage = "Incomplete macro definition in
> [%s], macro parameter description is empty";
>> getLogger().debug(String.format(errorMessage,
> documentReference));
>> }
>> +
>> + // If field empty, assume no default value was provided.
>> + if (StringUtils.isEmpty(parameterDefaultValue)) {
>> + parameterDefaultValue = null;
>> + }
>>
>> // Create the parameter descriptor.
>> parameterDescriptors.add(new
> WikiMacroParameterDescriptor(parameterName, parameterDescription,
>> - parameterMandatory));
>> + parameterMandatory, parameterDefaultValue));
>> }
>> }
>>
>>
>> Modified:
>
platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/DefaultWikiMacroInitializer.java
>> ===================================================================
>> ---
>
platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/DefaultWikiMacroInitializer.java
> 2010-03-10 05:11:59 UTC (rev 27561)
>> +++
>
platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/DefaultWikiMacroInitializer.java
> 2010-03-10 06:43:01 UTC (rev 27562)
>> @@ -235,6 +235,7 @@
>> needsUpdate |= bclass.addTextField(PARAMETER_NAME_PROPERTY,
> "Parameter name", 30);
>> needsUpdate |=
> bclass.addTextAreaField(PARAMETER_DESCRIPTION_PROPERTY, "Parameter
> description", 40, 5);
>> needsUpdate |=
> bclass.addBooleanField(PARAMETER_MANDATORY_PROPERTY, "Parameter
mandatory",
> "yesno");
>> + needsUpdate |=
> bclass.addTextField(PARAMETER_DEFAULT_VALUE_PROPERTY, "Parameter default
> value", 30);
>>
>> if (needsUpdate) {
>> update(doc);
>>
>> Modified:
>
platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/WikiMacroConstants.java
>> ===================================================================
>> ---
>
platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/WikiMacroConstants.java
> 2010-03-10 05:11:59 UTC (rev 27561)
>> +++
>
platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/WikiMacroConstants.java
> 2010-03-10 06:43:01 UTC (rev 27562)
>> @@ -111,4 +111,10 @@
>> * Constant for representing parameter mandatory property.
>> */
>> String PARAMETER_MANDATORY_PROPERTY = "mandatory";
>> +
>> + /**
>> + * Constant for representing parameter defaultValue property.
>> + * @since 2.3M1
>> + */
>> + String PARAMETER_DEFAULT_VALUE_PROPERTY = "defaultValue";
>> }
>>
>> Modified:
>
platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-wikibridge/src/main/java/org/xwiki/rendering/macro/wikibridge/WikiMacroParameterDescriptor.java
>> ===================================================================
>> ---
>
platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-wikibridge/src/main/java/org/xwiki/rendering/macro/wikibridge/WikiMacroParameterDescriptor.java
> 2010-03-10 05:11:59 UTC (rev 27561)
>> +++
>
platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-wikibridge/src/main/java/org/xwiki/rendering/macro/wikibridge/WikiMacroParameterDescriptor.java
> 2010-03-10 06:43:01 UTC (rev 27562)
>> @@ -54,6 +54,11 @@
>> private boolean mandatory;
>>
>> /**
>> + * Default value of the parameter.
>> + */
>> + private Object defaultValue;
>> +
>> + /**
>> * Creates a new {@link WikiMacroParameterDescriptor} instance.
>> *
>> * @param id parameter identifier.
>> @@ -68,6 +73,23 @@
>> }
>>
>> /**
>> + * Creates a new {@link WikiMacroParameterDescriptor} instance.
>> + *
>> + * @param id parameter identifier.
>> + * @param description parameter description.
>> + * @param mandatory if the parameter is mandatory.
>> + * @param defaultValue parameter default value.
>> + * @since 2.3M1
>> + */
>> + public WikiMacroParameterDescriptor(String id, String description,
> boolean mandatory, Object defaultValue)
>> + {
>> + this.id = id;
>> + this.description = description;
>> + this.mandatory = mandatory;
>> + this.defaultValue = defaultValue;
>> + }
>> +
>> + /**
>> * {@inheritDoc}
>> */
>> public String getId()
>> @@ -106,7 +128,7 @@
>> */
>> public Object getDefaultValue()
>> {
>> - return null;
>> + return this.defaultValue;
>> }
>>
>> /**