Author: thrantal
Date: Sat Jul 12 12:40:48 2008
New Revision: 676222

URL: http://svn.apache.org/viewvc?rev=676222&view=rev
Log:
WICKET-1737: Perhaps MockWebApplication needs to init ResourceFinder with a 
default implementation if it is not already being initialised by 
Application.init(), but if custom resource location settings have been 
provided, resourceFinder is already initialised and it does not make sense to 
overwrite it.

Modified:
    
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java
    
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/MockWebApplicationTest.java

Modified: 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java?rev=676222&r1=676221&r2=676222&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java
 (original)
+++ 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java
 Sat Jul 12 12:40:48 2008
@@ -208,7 +208,9 @@
                        IRequestCycleSettings.ONE_PASS_RENDER);
                // Don't buffer the response, as this can break ajax tests: see 
WICKET-1264
                
this.application.getRequestCycleSettings().setBufferResponse(false);
-               this.application.getResourceSettings().setResourceFinder(new 
WebApplicationPath(context));
+               if (this.application.getResourceFinder() == null) {
+                       
this.application.getResourceSettings().setResourceFinder(new 
WebApplicationPath(context));
+               }
                
this.application.getPageSettings().setAutomaticMultiWindowSupport(false);
 
                // Since the purpose of MockWebApplication is singlethreaded

Modified: 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/MockWebApplicationTest.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/MockWebApplicationTest.java?rev=676222&r1=676221&r2=676222&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/MockWebApplicationTest.java
 (original)
+++ 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/MockWebApplicationTest.java
 Sat Jul 12 12:40:48 2008
@@ -20,14 +20,18 @@
 
 import junit.framework.Assert;
 import junit.framework.TestCase;
-
+import org.apache.wicket.Application;
 import org.apache.wicket.Session;
 import org.apache.wicket.feedback.FeedbackMessage;
 import org.apache.wicket.feedback.FeedbackMessages;
 import org.apache.wicket.feedback.IFeedbackMessageFilter;
 import org.apache.wicket.markup.html.link.Link;
+import org.apache.wicket.settings.IResourceSettings;
 import org.apache.wicket.util.diff.DiffUtil;
+import org.apache.wicket.util.file.IResourceFinder;
+import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.tester.WicketTester;
+import org.apache.wicket.util.tester.WicketTester.DummyWebApplication;
 
 /**
  * Simple application that demonstrates the mock http application code (and 
checks that it is
@@ -141,4 +145,35 @@
                p = (MockPage)application.getLastRenderedPage();
                Assert.assertEquals("Link should have been clicked 1 time", 1, 
p.getLinkClickCount());
        }
+
+       public void testProvidesDefaultResourceFinderIfNotSetByApplication()
+       {
+                
Assert.assertNotNull(Application.get().getResourceSettings().getResourceFinder());
+       }
+
+       public void testHonorsResourceFinderSettingsSetByApplication()
+       {
+               final IResourceFinder customResourceFinder = new 
IResourceFinder()
+               {
+                       public IResourceStream find(Class clazz, String 
pathname)
+                       {
+                               throw new UnsupportedOperationException("Not 
implemented");
+                       }
+
+                       public String toString()
+                       {
+                               return "customResourceFinder";
+                       }
+               };
+               WebApplication wicketApplication = new DummyWebApplication() {
+                       protected void init()
+                       {
+                               IResourceSettings resourceSettings = 
getResourceSettings();
+                               
resourceSettings.setResourceFinder(customResourceFinder);
+                       }
+               };
+               new MockWebApplication(wicketApplication, "foo");
+               IResourceFinder resourceFinderInApplication = 
Application.get().getResourceSettings().getResourceFinder();
+               Assert.assertSame(customResourceFinder, 
resourceFinderInApplication);
+       }
 }


Reply via email to