Author: ivaynberg
Date: Thu Nov 12 04:35:56 2009
New Revision: 835232

URL: http://svn.apache.org/viewvc?rev=835232&view=rev
Log:
WICKET-2571 forward port variation into ng resource refs

Modified:
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/resource/ResourceRequestHandler.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractResourceReferenceMapper.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/ResourceReferenceMapper.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/Resource.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReference.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReferenceRegistry.java
    
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/AbstractResourceReferenceEncoderTest.java
    
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/ResourceReferenceEncoderTest.java

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/resource/ResourceRequestHandler.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/resource/ResourceRequestHandler.java?rev=835232&r1=835231&r2=835232&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/resource/ResourceRequestHandler.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/resource/ResourceRequestHandler.java
 Thu Nov 12 04:35:56 2009
@@ -34,6 +34,7 @@
        private final Resource resource;
        private final Locale locale;
        private final String style;
+       private final String variation;
        private final PageParameters pageParameters;
 
        /**
@@ -42,9 +43,10 @@
         * @param resource
         * @param locale
         * @param style
+        * @param variation
         * @param pageParameters
         */
-       public ResourceRequestHandler(Resource resource, Locale locale, String 
style,
+       public ResourceRequestHandler(Resource resource, Locale locale, String 
style, String variation,
                PageParameters pageParameters)
        {
                Checks.argumentNotNull(resource, "resource");
@@ -52,6 +54,7 @@
                this.resource = resource;
                this.locale = locale;
                this.style = style;
+               this.variation = variation;
                this.pageParameters = pageParameters != null ? pageParameters : 
new PageParameters();
        }
 
@@ -72,6 +75,14 @@
        }
        
        /**
+        * @return variation
+        */
+       public String getVariation()
+       {
+               return variation;
+       }
+
+       /**
         * @return page parameters
         */
        public PageParameters getPageParameters()
@@ -90,7 +101,7 @@
        public void respond(RequestCycle requestCycle)
        {
                Resource.Attributes a = new 
Resource.Attributes(requestCycle.getRequest(),
-                       requestCycle.getResponse(), locale, style, 
pageParameters);
+                       requestCycle.getResponse(), locale, style, variation, 
pageParameters);
                resource.respond(a);
        }
 

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractResourceReferenceMapper.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractResourceReferenceMapper.java?rev=835232&r1=835231&r2=835232&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractResourceReferenceMapper.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractResourceReferenceMapper.java
 Thu Nov 12 04:35:56 2009
@@ -35,11 +35,13 @@
        {
                protected Locale locale;
                protected String style;
+               protected String variation;
        };
        
        protected static String 
encodeResourceReferenceAttributes(ResourceReferenceAttributes attributes)
        {
-               if (attributes == null || (attributes.locale == null && 
attributes.style == null))
+               if (attributes == null ||
+                       (attributes.locale == null && attributes.style == null 
&& attributes.variation == null))
                {
                        return null;
                }
@@ -55,6 +57,11 @@
                                res.append("-");
                                res.append(attributes.style);
                        }
+                       if (!Strings.isEmpty(attributes.variation))
+                       {
+                               res.append("-");
+                               res.append(attributes.variation);
+                       }
                        return res.toString();
                }
        };
@@ -64,12 +71,17 @@
                ResourceReferenceAttributes res = new 
ResourceReferenceAttributes();            
                if (!Strings.isEmpty(attributes))
                {
-                       String split[] = attributes.split("-", 2);
+                       String split[] = attributes.split("-", 3);
                        res.locale = parseLocale(split[0]);
                        if (split.length == 2)
                        {
                                res.style = split[1];
                        }                       
+                       else if (split.length == 3)
+                       {
+                               res.style = split[1];
+                               res.variation = split[2];
+               }
                }
                return res;
        }
@@ -107,6 +119,7 @@
                ResourceReferenceAttributes attributes = new 
ResourceReferenceAttributes();
                attributes.locale = reference.getLocale();
                attributes.style = reference.getStyle();
+               attributes.variation = reference.getVariation();
                String encoded = encodeResourceReferenceAttributes(attributes);
                if (!Strings.isEmpty(encoded))
                {

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/ResourceReferenceMapper.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/ResourceReferenceMapper.java?rev=835232&r1=835231&r2=835232&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/ResourceReferenceMapper.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/ResourceReferenceMapper.java
 Thu Nov 12 04:35:56 2009
@@ -68,8 +68,8 @@
        public RequestHandler mapRequest(Request request)
        {
                Url url = request.getUrl();
-               if (url.getSegments().size() >= 4
-                               && urlStartsWith(url, 
getContext().getNamespace(), getContext().getResourceIdentifier()))
+               if (url.getSegments().size() >= 4 &&
+                       urlStartsWith(url, getContext().getNamespace(), 
getContext().getResourceIdentifier()))
                {
                        String className = url.getSegments().get(2);
                        StringBuilder name = new StringBuilder();
@@ -85,21 +85,23 @@
                        ResourceReferenceAttributes attributes = 
getResourceReferenceAttributes(url);
 
                        // extract the PageParameters from URL if there are any
-                       PageParameters pageParameters = 
extractPageParameters(request, url.getSegments().size(),
-                                       pageParametersEncoder);
+                       PageParameters pageParameters = 
extractPageParameters(request,
+                               url.getSegments().size(), 
pageParametersEncoder);
 
                        Class<?> scope = resolveClass(className);
                        if (scope != null)
                        {
-                               ResourceReference res = 
getContext().getResourceReferenceRegistry().getResourceReference(scope,
-                                               name.toString(), 
attributes.locale, attributes.style, false);
+                               ResourceReference res = 
getContext().getResourceReferenceRegistry()
+                                       .getResourceReference(scope, 
name.toString(), attributes.locale,
+                                               attributes.style, 
attributes.variation, false);
                                if (res != null)
                                {
                                        Resource resource = res.getResource();
                                        if (resource != null)
                                        {
-                                               ResourceRequestHandler handler 
= new ResourceRequestHandler(resource, attributes.locale,
-                                                               
attributes.style, pageParameters);
+                                               ResourceRequestHandler handler 
= new ResourceRequestHandler(resource,
+                                                       attributes.locale, 
attributes.style, attributes.variation,
+                                                       pageParameters);
                                                return handler;
                                        }
                                }

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/Resource.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/Resource.java?rev=835232&r1=835231&r2=835232&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/Resource.java 
(original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/Resource.java 
Thu Nov 12 04:35:56 2009
@@ -44,6 +44,7 @@
                private final Response response;
                private final Locale locale;
                private final String style;
+               private final String variation;
                private final PageParameters parameters;
 
                /**
@@ -54,10 +55,11 @@
                 * @param response
                 * @param locale
                 * @param style
+                * @param variation
                 * @param parameters
                 */
                public Attributes(Request request, Response response, Locale 
locale, String style,
-                       PageParameters parameters)
+                       String variation, PageParameters parameters)
                {
                        Checks.argumentNotNull(request, "request");
                        Checks.argumentNotNull(response, "response");
@@ -67,6 +69,7 @@
                        this.response = response;
                        this.locale = locale;
                        this.style = style;
+                       this.variation = variation;
                        this.parameters = parameters;
                }
 
@@ -111,6 +114,16 @@
                }
 
                /**
+                * If specified returns requested variation. The variation is 
optional.
+                * 
+                * @return variation or <code>null</code>
+                */
+               public String getVariant()
+               {
+                       return variation;
+               }
+
+               /**
                 * Returns additional parameters extracted from the request. If 
resource is created mounted
                 * {...@link ResourceReference}, this method returns all 
(indexed and query) parameters after
                 * the mount path. For non mounted {...@link 
ResourceReference}s this method will only return

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReference.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReference.java?rev=835232&r1=835231&r2=835232&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReference.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReference.java
 Thu Nov 12 04:35:56 2009
@@ -36,6 +36,7 @@
        private final String name;
        private final Locale locale;
        private final String style;
+       private final String variation;
 
        /**
         * Creates new {...@link ResourceReference} instance.
@@ -46,8 +47,10 @@
         *            mandatory parameter
         * @param locale
         * @param style
+        * @param variation
         */
-       public ResourceReference(Class<?> scope, String name, Locale locale, 
String style)
+       public ResourceReference(Class<?> scope, String name, Locale locale, 
String style,
+               String variation)
        {
                Checks.argumentNotNull(scope, "scope");
                Checks.argumentNotNull(name, "name");
@@ -56,6 +59,7 @@
                this.name = name;
                this.locale = locale;
                this.style = style;
+               this.variation = variation;
        }
 
        /**
@@ -90,6 +94,14 @@
                return style;
        }
 
+       /**
+        * @return variation
+        */
+       public String getVariation()
+       {
+               return variation;
+       }
+
        @Override
        public boolean equals(Object obj)
        {
@@ -105,13 +117,14 @@
                return Objects.equal(scope, that.scope) && //
                        Objects.equal(name, that.name) && //
                        Objects.equal(locale, that.locale) && //
-                       Objects.equal(style, that.style);
+                       Objects.equal(style, that.style) && //
+                       Objects.equal(variation, that.variation);
        }
 
        @Override
        public int hashCode()
        {
-               return Objects.hashCode(scope, name, locale, style);
+               return Objects.hashCode(scope, name, locale, style, variation);
        }
 
        /**

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReferenceRegistry.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReferenceRegistry.java?rev=835232&r1=835231&r2=835232&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReferenceRegistry.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReferenceRegistry.java
 Thu Nov 12 04:35:56 2009
@@ -36,8 +36,9 @@
                private final String name;
                private final Locale locale;
                private final String style;
+               private final String variation;
 
-               public Key(String scope, String name, Locale locale, String 
style)
+               public Key(String scope, String name, Locale locale, String 
style, String variation)
                {
                        Checks.argumentNotNull(scope, "scope");
                        Checks.argumentNotNull(name, "name");
@@ -46,6 +47,7 @@
                        this.name = name;
                        this.locale = locale;
                        this.style = style;
+                       this.variation = variation;
                }
 
                @Override
@@ -63,17 +65,18 @@
                        return Objects.equal(scope, that.scope) && //
                                Objects.equal(name, that.name) && //
                                Objects.equal(locale, that.locale) && //
-                               Objects.equal(style, that.style);
+                               Objects.equal(style, that.style) && //
+                               Objects.equal(variation, that.variation);
                }
 
                @Override
                public int hashCode()
                {
-                       return Objects.hashCode(scope, name, locale, style);
+                       return Objects.hashCode(scope, name, locale, style, 
variation);
                }
        };
 
-       private Map<Key, ResourceReference> map = new ConcurrentHashMap<Key, 
ResourceReference>();
+       private final Map<Key, ResourceReference> map = new 
ConcurrentHashMap<Key, ResourceReference>();
 
        /**
         * Registers the given {...@link ResourceReference}.
@@ -85,7 +88,7 @@
                Checks.argumentNotNull(reference, "reference");
 
                Key key = new Key(reference.getScope().getName(), 
reference.getName(),
-                       reference.getLocale(), reference.getStyle());
+                       reference.getLocale(), reference.getStyle(), 
reference.getVariation());
                map.put(key, reference);
        }
 
@@ -99,14 +102,14 @@
                Checks.argumentNotNull(reference, "reference");
 
                Key key = new Key(reference.getScope().getName(), 
reference.getName(),
-                       reference.getLocale(), reference.getStyle());
+                       reference.getLocale(), reference.getStyle(), 
reference.getVariation());
                map.remove(key);
        }
 
        protected ResourceReference getResourceReference(Class<?> scope, String 
name, Locale locale,
-                       String style, boolean strict, boolean createIfNotFound)
+               String style, String variation, boolean strict, boolean 
createIfNotFound)
                {
-                       Key key = new Key(scope.getName(), name, locale, style);
+               Key key = new Key(scope.getName(), name, locale, style, 
variation);
                        ResourceReference res = map.get(key);
                        if (strict || res != null)
                        {
@@ -114,14 +117,34 @@
                        }
                        else
                        {
-                               res = getResourceReference(scope, name, locale, 
null, true, false);
+                       res = getResourceReference(scope, name, locale, style, 
null, true, false);
                                if (res == null)
                                {
-                                       res = getResourceReference(scope, name, 
null, null, true, false);
+                               res = getResourceReference(scope, name, locale, 
null, variation, true, false);
                                }
+                       if (res == null)
+                       {
+                               res = getResourceReference(scope, name, locale, 
null, null, true, false);
+                       }
+                       if (res == null)
+                       {
+                               res = getResourceReference(scope, name, null, 
style, variation, true, false);
+                       }
+                       if (res == null)
+                       {
+                               res = getResourceReference(scope, name, null, 
style, null, true, false);
+                       }
+                       if (res == null)
+                       {
+                               res = getResourceReference(scope, name, null, 
null, variation, true, false);
+                       }
+                       if (res == null)
+                       {
+                               res = getResourceReference(scope, name, null, 
null, null, true, false);
+                       }
                                if (res == null && createIfNotFound)
                                {
-                                       res = 
createDefaultResourceReference(scope, name, locale, style);
+                               res = createDefaultResourceReference(scope, 
name, locale, style, variation);
                                }
                                return res;
                        }
@@ -138,28 +161,30 @@
         *            mandatory parameter
         * @param locale
         * @param style
+        * @param variation
         * @param strict
-        *            if <code>strict</code> is <code>true</code> only 
resources that match exactly
-        *            are returned. Otherwise if there is no resource 
registered that is an exact
-        *            match, also resources with <code>null</code> style and 
locale are tried. If
-        *            still no resource is found, result of
+        *            if <code>strict</code> is <code>true</code> only 
resources that match exactly are
+        *            returned. Otherwise if there is no resource registered 
that is an exact match,
+        *            also resources with <code>null</code> style and locale 
are tried. If still no
+        *            resource is found, result of
         *            {...@link #createDefaultResourceReference(Class, String, 
Locale, String)} is
         *            returned.
         * @return {...@link ResourceReference} or <code>null</code>
         */
        public ResourceReference getResourceReference(Class<?> scope, String 
name, Locale locale,
-               String style, boolean strict)
+               String style, String variation, boolean strict)
        {
-               ResourceReference reference = getResourceReference(scope, name, 
locale, style, strict, false);
+               ResourceReference reference = getResourceReference(scope, name, 
locale, style, variation,
+                       strict, false);
                if (reference == null)
                {
                        // TODO: Check the class static member for 
ResourceReferences and register those 
                }
-               return getResourceReference(scope, name, locale, style, strict, 
true);
+               return reference;
        }
 
        protected ResourceReference createDefaultResourceReference(Class<?> 
scope, String name,
-               Locale locale, String style)
+               Locale locale, String style, String variation)
        {
                // override in superclass to e.g. return 
PackageResourceReference if there is one
                return null;

Modified: 
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/AbstractResourceReferenceEncoderTest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/AbstractResourceReferenceEncoderTest.java?rev=835232&r1=835231&r2=835232&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/AbstractResourceReferenceEncoderTest.java
 (original)
+++ 
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/AbstractResourceReferenceEncoderTest.java
 Thu Nov 12 04:35:56 2009
@@ -70,13 +70,32 @@
                }
        };
        
+       protected final Resource resource5 = new Resource()
+       {
+               private static final long serialVersionUID = 1L;
+
+               public void respond(Attributes attributes)
+               {
+               }
+       };
+
+       protected final Resource resource6 = new Resource()
+       {
+               private static final long serialVersionUID = 1L;
+
+               public void respond(Attributes attributes)
+               {
+               }
+       };
+
        protected String CLASS_NAME = 
AbstractResourceReferenceEncoderTest.class.getName();
 
        protected ResourceReference reference1 = new ResourceReference(
-               AbstractResourceReferenceEncoderTest.class, "reference1", null, 
null)
+               AbstractResourceReferenceEncoderTest.class, "reference1", null, 
null, null)
        {
                private static final long serialVersionUID = 1L;
 
+               @Override
                public Resource getResource()
                {
                        return resource1;
@@ -84,10 +103,12 @@
        };
        
        protected ResourceReference reference2 = new ResourceReference(
-               AbstractResourceReferenceEncoderTest.class, "reference2/name2", 
new Locale("en", "en"), null)
+               AbstractResourceReferenceEncoderTest.class, "reference2/name2", 
new Locale("en", "en"),
+               null, null)
        {
                private static final long serialVersionUID = 1L;
 
+               @Override
                public Resource getResource()
                {
                        return resource2;
@@ -95,10 +116,11 @@
        };
        
        protected ResourceReference reference3 = new ResourceReference(
-               AbstractResourceReferenceEncoderTest.class, "reference3", null, 
"style")
+               AbstractResourceReferenceEncoderTest.class, "reference3", null, 
"style", null)
        {
                private static final long serialVersionUID = 1L;
 
+               @Override
                public Resource getResource()
                {
                        return resource3;
@@ -106,16 +128,42 @@
        };
        
        protected ResourceReference reference4 = new ResourceReference(
-               AbstractResourceReferenceEncoderTest.class, "reference4", 
Locale.ENGLISH, "style")
+               AbstractResourceReferenceEncoderTest.class, "reference4", 
Locale.ENGLISH, "style", null)
        {
                private static final long serialVersionUID = 1L;
 
+               @Override
                public Resource getResource()
                {
                        return resource4;
                };
        };
 
+       protected ResourceReference reference5 = new ResourceReference(
+               AbstractResourceReferenceEncoderTest.class, "reference5", 
Locale.ENGLISH, null, "variation")
+       {
+               private static final long serialVersionUID = 1L;
+
+       @Override
+               public Resource getResource()
+               {
+                       return resource5;
+               };
+       };
+
+       protected ResourceReference reference6 = new ResourceReference(
+               AbstractResourceReferenceEncoderTest.class, "reference6", 
Locale.ENGLISH, "style",
+               "variation")
+       {
+               private static final long serialVersionUID = 1L;
+
+               @Override
+               public Resource getResource()
+               {
+                       return resource6;
+               };
+       };
+
        @Override
        protected void setUp() throws Exception
        {
@@ -125,5 +173,7 @@
                
context.getResourceReferenceRegistry().registerResourceReference(reference2);
                
context.getResourceReferenceRegistry().registerResourceReference(reference3);
                
context.getResourceReferenceRegistry().registerResourceReference(reference4);
+               
context.getResourceReferenceRegistry().registerResourceReference(reference5);
+               
context.getResourceReferenceRegistry().registerResourceReference(reference6);
        }
 }

Modified: 
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/ResourceReferenceEncoderTest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/ResourceReferenceEncoderTest.java?rev=835232&r1=835231&r2=835232&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/ResourceReferenceEncoderTest.java
 (original)
+++ 
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/ResourceReferenceEncoderTest.java
 Thu Nov 12 04:35:56 2009
@@ -57,6 +57,7 @@
         assertEquals(resource1, h.getResource());
         assertEquals(null, h.getLocale());
         assertEquals(null, h.getStyle());
+               assertEquals(null, h.getVariation());
         assertEquals(0, h.getPageParameters().getIndexedParamsCount());
         assertEquals(0, h.getPageParameters().getNamedParameterKeys().size());
     }
@@ -73,6 +74,7 @@
         assertEquals(resource1, h.getResource());
         assertEquals(Locale.ENGLISH, h.getLocale());
         assertEquals(null, h.getStyle());
+               assertEquals(null, h.getVariation());
         assertEquals(0, h.getPageParameters().getIndexedParamsCount());
         assertEquals(0, h.getPageParameters().getNamedParameterKeys().size());
     }
@@ -89,6 +91,7 @@
         assertEquals(resource1, h.getResource());
         assertEquals(null, h.getLocale());
         assertEquals(null, h.getStyle());
+               assertEquals(null, h.getVariation());
         assertEquals(0, h.getPageParameters().getIndexedParamsCount());
         assertEquals("v1", 
h.getPageParameters().getNamedParameter("p1").toString());
         assertEquals("v2", 
h.getPageParameters().getNamedParameter("p2").toString());
@@ -106,6 +109,7 @@
         assertEquals(resource1, h.getResource());
         assertEquals(null, h.getLocale());
         assertEquals("style", h.getStyle());
+               assertEquals(null, h.getVariation());
         assertEquals(0, h.getPageParameters().getIndexedParamsCount());
         assertEquals("v1", 
h.getPageParameters().getNamedParameter("p1").toString());
         assertEquals("v2", 
h.getPageParameters().getNamedParameter("p2").toString());
@@ -123,6 +127,7 @@
         assertEquals(resource2, h.getResource());
         assertEquals(new Locale("en", "en"), h.getLocale());
         assertEquals(null, h.getStyle());
+               assertEquals(null, h.getVariation());
         assertEquals(0, h.getPageParameters().getIndexedParamsCount());
         assertEquals(0, h.getPageParameters().getNamedParameterKeys().size());
     }
@@ -139,6 +144,7 @@
         assertEquals(resource2, h.getResource());
         assertEquals(new Locale("en", "en"), h.getLocale());
         assertEquals("style", h.getStyle());
+               assertEquals(null, h.getVariation());
         assertEquals(0, h.getPageParameters().getIndexedParamsCount());
         assertEquals(0, h.getPageParameters().getNamedParameterKeys().size());
     }
@@ -158,14 +164,14 @@
         */
     public void testDecode4()
     {
-        Url url = Url
-                .parse("wicket/resource/" + CLASS_NAME + 
"/reference2/name2?en_EN&p1=v1&p2=v2");
+               Url url = Url.parse("wicket/resource/" + CLASS_NAME + 
"/reference2/name2?en_EN&p1=v1&p2=v2");
         RequestHandler handler = encoder.mapRequest(getRequest(url));
         assertTrue(handler instanceof ResourceRequestHandler);
         ResourceRequestHandler h = (ResourceRequestHandler)handler;
         assertEquals(resource2, h.getResource());
         assertEquals(new Locale("en", "en"), h.getLocale());
         assertEquals(null, h.getStyle());
+               assertEquals(null, h.getVariation());
         assertEquals("v1", 
h.getPageParameters().getNamedParameter("p1").toString());
         assertEquals("v2", 
h.getPageParameters().getNamedParameter("p2").toString());
     }
@@ -182,6 +188,7 @@
         assertEquals(resource3, h.getResource());
         assertEquals(null, h.getLocale());
         assertEquals("style", h.getStyle());
+               assertEquals(null, h.getVariation());
         assertEquals(0, h.getPageParameters().getIndexedParamsCount());
         assertEquals(0, h.getPageParameters().getNamedParameterKeys().size());
     }
@@ -198,6 +205,7 @@
         assertEquals(resource3, h.getResource());
         assertEquals(null, h.getLocale());
         assertEquals("style", h.getStyle());
+               assertEquals(null, h.getVariation());
         assertEquals(0, h.getPageParameters().getIndexedParamsCount());
         assertEquals("v1", 
h.getPageParameters().getNamedParameter("p1").toString());
         assertEquals("v2", 
h.getPageParameters().getNamedParameter("p2").toString());
@@ -216,6 +224,7 @@
         assertEquals(resource4, h.getResource());
         assertEquals(Locale.ENGLISH, h.getLocale());
         assertEquals("style", h.getStyle());
+               assertEquals(null, h.getVariation());
         assertEquals(0, h.getPageParameters().getIndexedParamsCount());
         assertEquals(0, h.getPageParameters().getNamedParameterKeys().size());
     }
@@ -242,6 +251,7 @@
         assertEquals(resource4, h.getResource());
         assertEquals(Locale.ENGLISH, h.getLocale());
         assertEquals("style", h.getStyle());
+               assertEquals(null, h.getVariation());
         assertEquals(0, h.getPageParameters().getIndexedParamsCount());
         assertEquals("v1", 
h.getPageParameters().getNamedParameter("p1").toString());
         assertEquals("v2", 
h.getPageParameters().getNamedParameter("p2").toString());
@@ -250,6 +260,44 @@
     /**
         * 
         */
+       public void testDecode9()
+       {
+               Url url = Url.parse("wicket/resource/" + CLASS_NAME +
+                       "/reference5?en--variation&p1=v1&p2=v2");
+               RequestHandler handler = encoder.mapRequest(getRequest(url));
+               assertTrue(handler instanceof ResourceRequestHandler);
+               ResourceRequestHandler h = (ResourceRequestHandler)handler;
+               assertEquals(resource5, h.getResource());
+               assertEquals(Locale.ENGLISH, h.getLocale());
+               assertEquals("", h.getStyle());
+               assertEquals("variation", h.getVariation());
+               assertEquals(0, h.getPageParameters().getIndexedParamsCount());
+               assertEquals("v1", 
h.getPageParameters().getNamedParameter("p1").toString());
+               assertEquals("v2", 
h.getPageParameters().getNamedParameter("p2").toString());
+       }
+
+       /**
+        * 
+        */
+       public void testDecode10()
+       {
+               Url url = Url.parse("wicket/resource/" + CLASS_NAME +
+                       "/reference6?en-style-variation&p1=v1&p2=v2");
+               RequestHandler handler = encoder.mapRequest(getRequest(url));
+               assertTrue(handler instanceof ResourceRequestHandler);
+               ResourceRequestHandler h = (ResourceRequestHandler)handler;
+               assertEquals(resource6, h.getResource());
+               assertEquals(Locale.ENGLISH, h.getLocale());
+               assertEquals("style", h.getStyle());
+               assertEquals("variation", h.getVariation());
+               assertEquals(0, h.getPageParameters().getIndexedParamsCount());
+               assertEquals("v1", 
h.getPageParameters().getNamedParameter("p1").toString());
+               assertEquals("v2", 
h.getPageParameters().getNamedParameter("p2").toString());
+       }
+
+       /**
+        * 
+        */
     public void testEncode1()
     {
         ResourceReferenceRequestHandler handler = new 
ResourceReferenceRequestHandler(reference1,
@@ -298,8 +346,8 @@
                 parameters);
 
         Url url = encoder.mapHandler(handler);
-        assertEquals("wicket/resource/" + CLASS_NAME + 
"/reference2/name2?en_EN&p1=v1&p2=v2", url
-                .toString());
+               assertEquals("wicket/resource/" + CLASS_NAME + 
"/reference2/name2?en_EN&p1=v1&p2=v2",
+                       url.toString());
     }
 
     /**
@@ -326,8 +374,8 @@
                 parameters);
 
         Url url = encoder.mapHandler(handler);
-        assertEquals("wicket/resource/" + CLASS_NAME + 
"/reference3?-style&p1=v1&p2=v2", url
-                .toString());
+               assertEquals("wicket/resource/" + CLASS_NAME + 
"/reference3?-style&p1=v1&p2=v2",
+                       url.toString());
     }
 
     /**
@@ -354,7 +402,7 @@
                 parameters);
 
         Url url = encoder.mapHandler(handler);
-        assertEquals("wicket/resource/" + CLASS_NAME + 
"/reference4?en-style&p1=v1&p2=v2", url
-                .toString());
+               assertEquals("wicket/resource/" + CLASS_NAME + 
"/reference4?en-style&p1=v1&p2=v2",
+                       url.toString());
     }
 }


Reply via email to