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/09/10 20:36:02 UTC

svn commit: r693923 - in /tapestry/tapestry5/trunk/tapestry-upload/src: main/java/org/apache/tapestry5/upload/components/Upload.java test/java/org/apache/tapestry5/upload/components/UploadTest.java

Author: hlship
Date: Wed Sep 10 11:36:01 2008
New Revision: 693923

URL: http://svn.apache.org/viewvc?rev=693923&view=rev
Log:
TAPESTRY-2453: Form enctype is not updated when an Upload component is injected via FormInjector / AjaxFormLoop

Modified:
    tapestry/tapestry5/trunk/tapestry-upload/src/main/java/org/apache/tapestry5/upload/components/Upload.java
    tapestry/tapestry5/trunk/tapestry-upload/src/test/java/org/apache/tapestry5/upload/components/UploadTest.java

Modified: tapestry/tapestry5/trunk/tapestry-upload/src/main/java/org/apache/tapestry5/upload/components/Upload.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-upload/src/main/java/org/apache/tapestry5/upload/components/Upload.java?rev=693923&r1=693922&r2=693923&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-upload/src/main/java/org/apache/tapestry5/upload/components/Upload.java (original)
+++ tapestry/tapestry5/trunk/tapestry-upload/src/main/java/org/apache/tapestry5/upload/components/Upload.java Wed Sep 10 11:36:01 2008
@@ -171,22 +171,35 @@
         return value;
     }
 
-    void injectDecorator(ValidationDecorator decorator)
+    Upload injectDecorator(ValidationDecorator decorator)
     {
         setDecorator(decorator);
+
+        return this;
     }
 
-    void injectFormSupport(FormSupport formSupport)
+    Upload injectRequest(Request request)
+    {
+        this.request = request;
+
+        return this;
+    }
+
+    Upload injectFormSupport(FormSupport formSupport)
     {
         // We have our copy ...
         this.formSupport = formSupport;
 
         // As does AbstractField
         setFormSupport(formSupport);
+
+        return this;
     }
 
-    void injectFieldValidator(FieldValidator validator)
+    Upload injectFieldValidator(FieldValidator validator)
     {
         this.validate = validator;
+
+        return this;
     }
 }

Modified: tapestry/tapestry5/trunk/tapestry-upload/src/test/java/org/apache/tapestry5/upload/components/UploadTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-upload/src/test/java/org/apache/tapestry5/upload/components/UploadTest.java?rev=693923&r1=693922&r2=693923&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-upload/src/test/java/org/apache/tapestry5/upload/components/UploadTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-upload/src/test/java/org/apache/tapestry5/upload/components/UploadTest.java Wed Sep 10 11:36:01 2008
@@ -17,6 +17,7 @@
 import org.apache.tapestry5.*;
 import org.apache.tapestry5.dom.Element;
 import org.apache.tapestry5.services.FormSupport;
+import org.apache.tapestry5.services.Request;
 import org.apache.tapestry5.test.TapestryTestCase;
 import org.apache.tapestry5.upload.services.MultipartDecoder;
 import org.apache.tapestry5.upload.services.UploadedFile;
@@ -40,6 +41,9 @@
         FormSupport formSupport = mockFormSupport();
         ComponentResources resources = mockComponentResources();
         FieldValidator validator = mockFieldValidator();
+        Request request = mockRequest();
+
+        train_isXHR(request, false);
 
         formSupport.setEncodingType(Upload.MULTIPART_ENCTYPE);
 
@@ -51,9 +55,8 @@
 
         Upload component = new Upload(null, null, null, null, resources, null);
 
-        component.injectDecorator(new BaseValidationDecorator());
-        component.injectFormSupport(formSupport);
-        component.injectFieldValidator(validator);
+        component.injectDecorator(new BaseValidationDecorator()).injectFormSupport(formSupport).injectFieldValidator(
+                validator).injectRequest(request);
 
         component.beginRender(writer);
 
@@ -78,22 +81,24 @@
         MarkupWriter writer = createMarkupWriter();
         writer.element("form");
         FieldValidator validator = mockFieldValidator();
+        Request request = mockRequest();
 
         FormSupport formSupport = mockFormSupport();
         formSupport.setEncodingType(Upload.MULTIPART_ENCTYPE);
 
-        component.injectFormSupport(formSupport);
+        component.injectFormSupport(formSupport).injectRequest(request);
 
         ValidationDecorator decorator = mockValidationDecorator();
 
-        component.injectDecorator(decorator);
-        component.injectFieldValidator(validator);
+        component.injectDecorator(decorator).injectFieldValidator(validator);
 
         validator.render(writer);
 
         resources.renderInformalParameters(writer);
         decorator.insideField(component);
 
+        train_isXHR(request, false);
+
         replay();
 
         component.beginRender(writer);
@@ -112,19 +117,24 @@
         Upload component = new Upload(null, validate, null, null, resources, null);
         MarkupWriter writer = createMarkupWriter();
         writer.element("form");
+        Request request = mockRequest();
 
         FormSupport formSupport = mockFormSupport();
         formSupport.setEncodingType(Upload.MULTIPART_ENCTYPE);
-        component.injectFormSupport(formSupport);
+
 
         ValidationDecorator decorator = mockValidationDecorator();
 
-        component.injectDecorator(decorator);
+        component.injectDecorator(decorator).injectRequest(request).injectFormSupport(formSupport);
 
         validate.render(writer);
+
         resources.renderInformalParameters(writer);
+
         decorator.insideField(component);
 
+        train_isXHR(request, false);
+
         replay();
 
         component.beginRender(writer);