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);
}
}
}