Author: mgrigorov
Date: Wed Aug 17 13:21:33 2011
New Revision: 1158692

URL: http://svn.apache.org/viewvc?rev=1158692&view=rev
Log:
WICKET-3971 TextTemplateResourceReference should be registered into the 
ResourceReferenceRegistry because otherwise the next request is served by 
PackageResourceReference


Added:
    
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/TextTemplateResourceReferenceTest.java
    
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/textTemplateResRef.tmpl
Modified:
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/TextTemplateResourceReference.java

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/TextTemplateResourceReference.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/TextTemplateResourceReference.java?rev=1158692&r1=1158691&r2=1158692&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/TextTemplateResourceReference.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/TextTemplateResourceReference.java
 Wed Aug 17 13:21:33 2011
@@ -19,6 +19,7 @@ package org.apache.wicket.resource;
 import java.util.Locale;
 import java.util.Map;
 
+import org.apache.wicket.Application;
 import org.apache.wicket.IClusterable;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.request.resource.IResource;
@@ -140,6 +141,11 @@ public class TextTemplateResourceReferen
 
                textTemplate = new PackageTextTemplate(scope, fileName, 
contentType, encoding);
                this.variablesModel = variablesModel;
+
+               if (Application.exists())
+               {
+                       
Application.get().getResourceReferenceRegistry().registerResourceReference(this);
+               }
        }
 
 // 
**********************************************************************************************************************

Added: 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/TextTemplateResourceReferenceTest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/TextTemplateResourceReferenceTest.java?rev=1158692&view=auto
==============================================================================
--- 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/TextTemplateResourceReferenceTest.java
 (added)
+++ 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/TextTemplateResourceReferenceTest.java
 Wed Aug 17 13:21:33 2011
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.resource;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.Page;
+import org.apache.wicket.WicketTestCase;
+import org.apache.wicket.markup.IMarkupResourceStreamProvider;
+import org.apache.wicket.markup.html.IHeaderResponse;
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.request.resource.PackageResourceReference;
+import org.apache.wicket.util.resource.IResourceStream;
+import org.apache.wicket.util.resource.StringResourceStream;
+import org.junit.Test;
+
+/**
+ * https://issues.apache.org/jira/browse/WICKET-3971
+ */
+public class TextTemplateResourceReferenceTest extends WicketTestCase
+{
+
+       private static final String TEMPLATE_NAME = "textTemplateResRef.tmpl";
+
+       private static final String EXPECTED_VALUE = "value";
+
+       /**
+        * https://issues.apache.org/jira/browse/WICKET-3971
+        */
+       @Test
+       public void renderInterpolatedTemplate()
+       {
+               // the page will render just <script> element with url to the 
template
+               // this will register it in the application's 
ResourceReferenceRegistry
+               Page page = tester.startPage(new 
TemplateResourceReferencePage());
+
+               // make a separate request to the template resource
+               CharSequence urlForTemplate = page.urlFor(new 
PackageResourceReference(
+                       TextTemplateResourceReferenceTest.class, 
TEMPLATE_NAME), null);
+               tester.executeUrl(urlForTemplate.toString());
+               tester.assertContains("TMPL_START\\|" + EXPECTED_VALUE + 
"\\|TMPL_END");
+       }
+
+       private static class TemplateResourceReferencePage extends WebPage
+               implements
+                       IMarkupResourceStreamProvider
+       {
+
+               @Override
+               public void renderHead(IHeaderResponse response)
+               {
+                       super.renderHead(response);
+
+                       Map<String, Object> variables = new HashMap<String, 
Object>();
+                       variables.put("variable", EXPECTED_VALUE);
+
+                       final TextTemplateResourceReference reference = new 
TextTemplateResourceReference(
+                               TextTemplateResourceReferenceTest.class, 
TEMPLATE_NAME, Model.ofMap(variables));
+                       response.renderJavaScriptReference(reference);
+               }
+
+               public IResourceStream getMarkupResourceStream(MarkupContainer 
container,
+                       Class<?> containerClass)
+               {
+                       return new 
StringResourceStream("<html><body></body></html>");
+               }
+
+       }
+}

Added: 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/textTemplateResRef.tmpl
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/textTemplateResRef.tmpl?rev=1158692&view=auto
==============================================================================
--- 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/textTemplateResRef.tmpl
 (added)
+++ 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/resource/textTemplateResRef.tmpl
 Wed Aug 17 13:21:33 2011
@@ -0,0 +1 @@
+TMPL_START|${variable}|TMPL_END
\ No newline at end of file


Reply via email to