Author: pete
Date: Wed Sep  7 09:55:08 2011
New Revision: 1166089

URL: http://svn.apache.org/viewvc?rev=1166089&view=rev
Log:
WICKET-4032 ComponentStringResourceLoader must not include the index of 
repeater items in resource lookup but still resolve properties to them: 

- add tests

Added:
    
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest$MyContainer.properties
    
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest$MyLabel.properties
    
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest$MyPage.html
    
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest$MyPage.properties
    
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest$MyRepeatingView.properties
    
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest.java
      - copied, changed from r1165852, 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/ComponentStringResourceLoaderTest.java

Added: 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest$MyContainer.properties
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest%24MyContainer.properties?rev=1166089&view=auto
==============================================================================
--- 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest$MyContainer.properties
 (added)
+++ 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest$MyContainer.properties
 Wed Sep  7 09:55:08 2011
@@ -0,0 +1,2 @@
+label.keyContainer=container-1
+keyContainer=container-2

Added: 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest$MyLabel.properties
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest%24MyLabel.properties?rev=1166089&view=auto
==============================================================================
--- 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest$MyLabel.properties
 (added)
+++ 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest$MyLabel.properties
 Wed Sep  7 09:55:08 2011
@@ -0,0 +1 @@
+keyLabel=label-1

Added: 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest$MyPage.html
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest%24MyPage.html?rev=1166089&view=auto
==============================================================================
--- 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest$MyPage.html
 (added)
+++ 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest$MyPage.html
 Wed Sep  7 09:55:08 2011
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html>
+<html xmlns:wicket="http://wicket.apache.org";>
+<head>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
+    <title>Home Page</title>
+</head>
+<body>
+    <h1>Properties Resolver Test</h1>
+
+    <ul wicket:id="repeater">
+        <li wicket:id="label">[label]</li>
+    </ul>
+
+</body>
+</html>
\ No newline at end of file

Added: 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest$MyPage.properties
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest%24MyPage.properties?rev=1166089&view=auto
==============================================================================
--- 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest$MyPage.properties
 (added)
+++ 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest$MyPage.properties
 Wed Sep  7 09:55:08 2011
@@ -0,0 +1,3 @@
+repeater.label.keyPage=page-1
+label.keyPage=page-2
+keyPage=page-3

Added: 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest$MyRepeatingView.properties
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest%24MyRepeatingView.properties?rev=1166089&view=auto
==============================================================================
--- 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest$MyRepeatingView.properties
 (added)
+++ 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest$MyRepeatingView.properties
 Wed Sep  7 09:55:08 2011
@@ -0,0 +1,2 @@
+label.keyRepeater=repeater-1
+keyRepeater=repeater-2

Copied: 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest.java
 (from r1165852, 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/ComponentStringResourceLoaderTest.java)
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest.java?p2=wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest.java&p1=wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/ComponentStringResourceLoaderTest.java&r1=1165852&r2=1166089&rev=1166089&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/ComponentStringResourceLoaderTest.java
 (original)
+++ 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/loader/PropertiesResolverTest.java
 Wed Sep  7 09:55:08 2011
@@ -16,114 +16,125 @@
  */
 package org.apache.wicket.resource.loader;
 
-import java.util.Map;
-
-import org.apache.wicket.WicketRuntimeException;
-import org.apache.wicket.WicketTestCase;
-import org.apache.wicket.resource.IPropertiesFactory;
-import org.apache.wicket.resource.IPropertiesFactoryContext;
-import org.apache.wicket.resource.IsoPropertiesFilePropertiesLoader;
-import org.apache.wicket.resource.Properties;
-import org.apache.wicket.resource.PropertiesFactory;
+import org.apache.wicket.Component;
+import org.apache.wicket.Page;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.repeater.RepeatingView;
+import org.apache.wicket.model.StringResourceModel;
+import org.apache.wicket.protocol.http.WebApplication;
+import org.apache.wicket.util.tester.WicketTester;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
- * 
+ * test hierarchic lookup of properties from component property files
+ *
+ * @author Peter Ertl
+ *
  */
-public class ComponentStringResourceLoaderTest extends WicketTestCase
+public class PropertiesResolverTest extends Assert
 {
-       /**
-        * Construct.
-        * 
-        * @param name
-        */
-       public ComponentStringResourceLoaderTest(String name)
+       @Test
+       public void resolveProperties()
        {
-               super(name);
+               WicketTester tester = new WicketTester(new App());
+
+               // all the tests are performed in HomePage
+               MyPage page = tester.startPage(MyPage.class);
+
+               Assert.assertNotNull(page);
        }
 
-       /**
-        * @throws Exception
-        */
-       public void testRenderHomePage_1() throws Exception
+       public static class App extends WebApplication
        {
-               try
-               {
-                       // The xml markup file and the search for an xml 
properties
-                       // file get in the way
-                       executeTest(TestPage_1.class, 
"TestPageExpectedResult_1.xml");
-               }
-               catch (WicketRuntimeException ex)
+               @Override
+               public Class<? extends Page> getHomePage()
                {
+                       return MyPage.class;
                }
        }
 
-       /**
-        * @throws Exception
-        */
-       public void testRenderHomePage_2() throws Exception
+       public static class MyPage extends WebPage
        {
-               // Avoid the conflict by limiting the search for properties 
files
-               // to *.properties
-               IPropertiesFactory myFac = new 
MyPropertiesFactory(tester.getApplication().getResourceSettings());
-               
tester.getApplication().getResourceSettings().setPropertiesFactory(myFac);
+               public MyPage()
+               {
+                       MyRepeatingView repeater = new 
MyRepeatingView("repeater");
+                       add(repeater);
 
-               executeTest(TestPage_1.class, "TestPageExpectedResult_1.xml");
-       }
+                       MyContainer container1 = new 
MyContainer(repeater.newChildId());
+                       repeater.add(container1);
 
-       /**
-        * @throws Exception
-        */
-       public void testDisabledCache() throws Exception
-       {
-               IPropertiesFactory myFac = new 
DisabledCachePropertiesFactory(tester.getApplication().getResourceSettings());
-               
tester.getApplication().getResourceSettings().setPropertiesFactory(myFac);
+                       MyLabel label1 = new MyLabel("label");
+                       container1.add(label1);
 
-               executeTest(TestPage_1.class, "TestPageExpectedResult_1.xml");
+                       MyContainer container2 = new 
MyContainer(repeater.newChildId());
+                       repeater.add(container2);
+
+                       MyLabel label2 = new MyLabel("label");
+                       container2.add(label2);
+
+                       // test lookup on label properties
+                       assertEquals("label-1", lookup("keyLabel", label1));
+                       assertEquals("label-1", lookup("keyLabel", label2));
+
+                       // test lookup on container properties
+                       assertEquals("container-1", 
lookup("label.keyContainer", container1));
+                       assertEquals("container-2", lookup("keyContainer", 
container1));
+                       assertEquals("container-1", lookup("keyContainer", 
label1));
+                       assertEquals("container-1", 
lookup("label.keyContainer", container2));
+                       assertEquals("container-2", lookup("keyContainer", 
container2));
+                       assertEquals("container-1", lookup("keyContainer", 
label2));
+
+                       // test lookup on repeater properties
+                       assertEquals("repeater-1", lookup("label.keyRepeater", 
repeater));
+                       assertEquals("repeater-2", lookup("keyRepeater", 
repeater));
+                       assertEquals("repeater-1", lookup("label.keyRepeater", 
container1));
+                       assertEquals("repeater-2", lookup("keyRepeater", 
container1));
+                       assertEquals("repeater-1", lookup("keyRepeater", 
label1));
+                       assertEquals("repeater-1", lookup("label.keyRepeater", 
container2));
+                       assertEquals("repeater-2", lookup("keyRepeater", 
container2));
+                       assertEquals("repeater-1", lookup("keyRepeater", 
label2));
+
+                       // test lookup on page properties
+                       assertEquals("page-1", lookup("repeater.label.keyPage", 
MyPage.this));
+                       assertEquals("page-2", lookup("label.keyPage", 
MyPage.this));
+                       assertEquals("page-3", lookup("keyPage", MyPage.this));
+                       assertEquals("page-1", lookup("label.keyPage", 
repeater));
+                       assertEquals("page-1", lookup("label.keyPage", 
container1));
+                       assertEquals("page-1", lookup("keyPage", label1));
+                       assertEquals("page-1", lookup("label.keyPage", 
container2));
+                       assertEquals("page-1", lookup("keyPage", label2));
+               }
 
-               myFac.clearCache();
+               private String lookup(String key, Component anchor)
+               {
+                       return new StringResourceModel(key, anchor, null, 
(String)null).getString();
+               }
        }
 
-       /**
-        * 
-        */
-       private class MyPropertiesFactory extends PropertiesFactory
+       public static class MyRepeatingView extends RepeatingView
        {
-               /**
-                * Construct.
-                *
-                * @param context
-                */
-               public MyPropertiesFactory(IPropertiesFactoryContext context)
+               public MyRepeatingView(String id)
                {
-                       super(context);
-
-                       getPropertiesLoaders().clear();
-                       getPropertiesLoaders().add(new 
IsoPropertiesFilePropertiesLoader("properties"));
+                       super(id);
                }
        }
 
-       /**
-        * 
-        */
-       private class DisabledCachePropertiesFactory extends PropertiesFactory
+       public static class MyContainer extends WebMarkupContainer
        {
-               /**
-                * Construct.
-                * 
-                * @param context
-                */
-               public DisabledCachePropertiesFactory(IPropertiesFactoryContext 
context)
+               public MyContainer(String id)
                {
-                       super(context);
+                       super(id);
                }
+       }
 
-               /**
-                * @see 
org.apache.wicket.resource.PropertiesFactory#newPropertiesCache()
-                */
-               @Override
-               protected Map<String, Properties> newPropertiesCache()
+       public static class MyLabel extends Label
+       {
+               public MyLabel(String id)
                {
-                       return null;
+                       super(id);
                }
        }
 }


Reply via email to