You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2008/08/05 23:29:50 UTC

svn commit: r682958 - in /tapestry/tapestry5/trunk/tapestry-core/src: main/java/org/apache/tapestry5/corelib/components/ main/java/org/apache/tapestry5/internal/services/ test/java/org/apache/tapestry5/integration/app1/pages/ test/java/org/apache/tapes...

Author: hlship
Date: Tue Aug  5 14:29:48 2008
New Revision: 682958

URL: http://svn.apache.org/viewvc?rev=682958&view=rev
Log:
TAPESTRY-2429: Script text added by RenderSupport.addScript() should be added raw (with XML elements not encoded as entities)

Added:
    tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry5/internal/services/script_written_raw.txt
Modified:
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/FormInjector.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/FormInjectorDemo.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/DocumentLinkerImplTest.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/MarkupWriterImplTest.java

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/FormInjector.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/FormInjector.java?rev=682958&r1=682957&r2=682958&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/FormInjector.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/FormInjector.java Tue Aug  5 14:29:48 2008
@@ -28,6 +28,7 @@
 import org.apache.tapestry5.internal.services.PageRenderQueue;
 import org.apache.tapestry5.ioc.annotations.Inject;
 import org.apache.tapestry5.ioc.internal.util.IdAllocator;
+import org.apache.tapestry5.ioc.internal.util.InternalUtils;
 import org.apache.tapestry5.json.JSONObject;
 import org.apache.tapestry5.runtime.RenderCommand;
 import org.apache.tapestry5.services.*;
@@ -184,6 +185,11 @@
 
         final String formId = request.getParameter(FORMID_PARAMETER);
 
+        if (InternalUtils.isBlank(formId))
+            throw new RuntimeException(String.format(
+                    "Query parameter '%s' was blank, but should have been specified in the request.",
+                    FORMID_PARAMETER));
+
         final ComponentActionSink actionSink = new ComponentActionSink(logger);
 
         PartialMarkupRendererFilter filter = new PartialMarkupRendererFilter()

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java?rev=682958&r1=682957&r2=682958&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java Tue Aug  5 14:29:48 2008
@@ -140,13 +140,13 @@
             e.raw("\n<!--\n");
 
             if (developmentMode)
-                e.text("Tapestry.DEBUG_ENABLED = true;\n");
+                e.raw("Tapestry.DEBUG_ENABLED = true;\n");
 
-            e.text("Tapestry.onDOMLoaded(function() {\n");
+            e.raw("Tapestry.onDOMLoaded(function() {\n");
 
-            e.text(scriptBlock.toString());
+            e.raw(scriptBlock.toString());
 
-            e.text("});\n");
+            e.raw("});\n");
 
             e.raw("// -->\n");
         }

Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/FormInjectorDemo.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/FormInjectorDemo.java?rev=682958&r1=682957&r2=682958&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/FormInjectorDemo.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/FormInjectorDemo.java Tue Aug  5 14:29:48 2008
@@ -119,4 +119,15 @@
     {
         DB.clear();
     }
+
+    Object onPassivate()
+    {
+        return "FakePageActivationContextValue";
+    }
+
+    void onActivate(String context)
+    {
+        Assert.assertEquals(context, "FakePageActivationContextValue",
+                            "Page activation context was not passed through correctly.");
+    }
 }

Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/DocumentLinkerImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/DocumentLinkerImplTest.java?rev=682958&r1=682957&r2=682958&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/DocumentLinkerImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/DocumentLinkerImplTest.java Tue Aug  5 14:29:48 2008
@@ -186,4 +186,21 @@
 
         check(document, "no_body_element.txt");
     }
+
+    @Test
+    public void script_written_raw() throws Exception
+    {
+        Document document = new Document();
+
+        document.newRootElement("html").element("body").element("p").text("Ready to be updated with scripts.");
+
+        DocumentLinkerImpl linker = new DocumentLinkerImpl(true);
+
+        linker.addScript("for (var i = 0; i < 5; i++)  { doIt(i); }");
+
+        linker.updateDocument(document);
+
+        assertEquals(document.toString(), readFile("script_written_raw.txt").trim());
+
+    }
 }

Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/MarkupWriterImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/MarkupWriterImplTest.java?rev=682958&r1=682957&r2=682958&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/MarkupWriterImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/MarkupWriterImplTest.java Tue Aug  5 14:29:48 2008
@@ -170,6 +170,19 @@
     }
 
     @Test
+    public void entities_inside_comment_not_converted()
+    {
+        MarkupWriter w = new MarkupWriterImpl();
+
+        w.element("root");
+        w.comment("<&>");
+        w.end();
+
+        assertEquals(w.toString(), "<root><!-- <&> --></root>");
+
+    }
+
+    @Test
     public void new_text_node_after_comment_node()
     {
         MarkupWriter w = new MarkupWriterImpl();

Added: tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry5/internal/services/script_written_raw.txt
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry5/internal/services/script_written_raw.txt?rev=682958&view=auto
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry5/internal/services/script_written_raw.txt (added)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry5/internal/services/script_written_raw.txt Tue Aug  5 14:29:48 2008
@@ -0,0 +1,7 @@
+<html><body><p>Ready to be updated with scripts.</p><script type="text/javascript">
+<!--
+Tapestry.onDOMLoaded(function() {
+for (var i = 0; i < 5; i++)  { doIt(i); }
+});
+// -->
+</script></body></html>
\ No newline at end of file