You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by dk...@apache.org on 2019/10/25 12:56:50 UTC

[sling-org-apache-sling-app-cms] branch master updated (4725823 -> 873521c)

This is an automated email from the ASF dual-hosted git repository.

dklco pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git.


    from 4725823  Abstracting the "taxonomy" field out to a more generic label field which can be used for different use cases
     new a792050  Fixing the broken tests from the jUnit updates
     new 873521c  Fixes SLING-8801 - Adding an option to forward the form rather than redirecting

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../cms/reference/forms/impl/FormHandler.java      | 17 ++++++++++--
 .../apps/reference/components/forms/form/edit.json | 24 ++++++++++++++---
 .../cms/reference/form/impl/FormHandlerTest.java   | 15 +++++------
 .../reference/form/impl/FormRequestImplTest.java   | 15 +++++------
 .../form/impl/fields/SelectionHandlerTest.java     | 10 ++++---
 .../form/impl/fields/TextareaHandlerTest.java      | 12 +++++----
 .../form/impl/fields/TextfieldHandlerTest.java     | 31 +++++++++++++---------
 7 files changed, 82 insertions(+), 42 deletions(-)


[sling-org-apache-sling-app-cms] 01/02: Fixing the broken tests from the jUnit updates

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git

commit a7920504764f3b2e02bd848143f7531fdbe7643f
Author: Dan Klco <dk...@apache.org>
AuthorDate: Fri Oct 25 00:32:02 2019 -0400

    Fixing the broken tests from the jUnit updates
---
 .../cms/reference/form/impl/FormHandlerTest.java   | 15 +++++------
 .../reference/form/impl/FormRequestImplTest.java   | 15 +++++------
 .../form/impl/fields/SelectionHandlerTest.java     | 10 ++++---
 .../form/impl/fields/TextareaHandlerTest.java      | 12 +++++----
 .../form/impl/fields/TextfieldHandlerTest.java     | 31 +++++++++++++---------
 5 files changed, 46 insertions(+), 37 deletions(-)

diff --git a/reference/src/test/java/org/apache/sling/cms/reference/form/impl/FormHandlerTest.java b/reference/src/test/java/org/apache/sling/cms/reference/form/impl/FormHandlerTest.java
index 679c674..a22ac43 100644
--- a/reference/src/test/java/org/apache/sling/cms/reference/form/impl/FormHandlerTest.java
+++ b/reference/src/test/java/org/apache/sling/cms/reference/form/impl/FormHandlerTest.java
@@ -40,6 +40,8 @@ import org.junit.Test;
 import org.mockito.Mockito;
 import org.mockito.internal.util.reflection.FieldSetter;
 
+import com.google.common.collect.ImmutableMap;
+
 public class FormHandlerTest {
     @Rule
     public final SlingContext context = new SlingContext();
@@ -51,14 +53,11 @@ public class FormHandlerTest {
         context.request().setMethod("POST");
         context.request().setResource(context.resourceResolver().getResource("/form/jcr:content/container/form"));
 
-        context.request().getParameterMap().put("requiredtextarea", new String[] { "Hello World!" });
-        context.request().getParameterMap().put("singleselect", new String[] { "Hello World!" });
-        context.request().getParameterMap().put("anotherkey", new String[] { "Hello World!" });
-        context.request().getParameterMap().put("money", new String[] { "123" });
-        context.request().getParameterMap().put("patternfield", new String[] { "123" });
-        context.request().getParameterMap().put("double", new String[] { "2.7" });
-        context.request().getParameterMap().put("integer", new String[] { "2" });
-        context.request().getParameterMap().put("datefield", new String[] { "2019-02-02" });
+        context.request()
+                .setParameterMap(ImmutableMap.<String, Object>builder().put("requiredtextarea", "Hello World!")
+                        .put("singleselect", "Hello World!").put("anotherkey", "Hello World!").put("money", "123")
+                        .put("patternfield", "123").put("double", "2.7").put("integer", "2")
+                        .put("datefield", "2019-02-02").build());
 
         FormRequestImpl formRequest = new FormRequestImpl(context.request());
 
diff --git a/reference/src/test/java/org/apache/sling/cms/reference/form/impl/FormRequestImplTest.java b/reference/src/test/java/org/apache/sling/cms/reference/form/impl/FormRequestImplTest.java
index e473beb..90f9ba7 100644
--- a/reference/src/test/java/org/apache/sling/cms/reference/form/impl/FormRequestImplTest.java
+++ b/reference/src/test/java/org/apache/sling/cms/reference/form/impl/FormRequestImplTest.java
@@ -35,6 +35,8 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.mockito.internal.util.reflection.FieldSetter;
 
+import com.google.common.collect.ImmutableMap;
+
 public class FormRequestImplTest {
     @Rule
     public final SlingContext context = new SlingContext();
@@ -45,14 +47,11 @@ public class FormRequestImplTest {
         SlingContextHelper.initContext(context);
         context.request().setResource(context.resourceResolver().getResource("/form/jcr:content/container/form"));
 
-        context.request().getParameterMap().put("requiredtextarea", new String[] { "Hello World!" });
-        context.request().getParameterMap().put("singleselect", new String[] { "Hello World!" });
-        context.request().getParameterMap().put("anotherkey", new String[] { "Hello World!" });
-        context.request().getParameterMap().put("money", new String[] { "123" });
-        context.request().getParameterMap().put("patternfield", new String[] { "123" });
-        context.request().getParameterMap().put("double", new String[] { "2.7" });
-        context.request().getParameterMap().put("integer", new String[] { "2" });
-        context.request().getParameterMap().put("datefield", new String[] { "2019-02-02" });
+        context.request()
+                .setParameterMap(ImmutableMap.<String, Object>builder().put("requiredtextarea", "Hello World!")
+                        .put("singleselect", "Hello World!").put("anotherkey", "Hello World!").put("money", "123")
+                        .put("patternfield", "123").put("double", "2.7").put("integer", "2")
+                        .put("datefield", "2019-02-02").build());
 
         formRequest = new FormRequestImpl(context.request());
 
diff --git a/reference/src/test/java/org/apache/sling/cms/reference/form/impl/fields/SelectionHandlerTest.java b/reference/src/test/java/org/apache/sling/cms/reference/form/impl/fields/SelectionHandlerTest.java
index 47ccf4a..6a32227 100644
--- a/reference/src/test/java/org/apache/sling/cms/reference/form/impl/fields/SelectionHandlerTest.java
+++ b/reference/src/test/java/org/apache/sling/cms/reference/form/impl/fields/SelectionHandlerTest.java
@@ -34,6 +34,8 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 
+import com.google.common.collect.ImmutableMap;
+
 public class SelectionHandlerTest {
 
     @Rule
@@ -66,7 +68,8 @@ public class SelectionHandlerTest {
     public void testSingleSelect() throws FormException {
         ResourceResolver resolver = context.resourceResolver();
 
-        context.request().getParameterMap().put("singleselect", new String[] { "Hello World" });
+        context.request()
+                .setParameterMap(ImmutableMap.<String, Object>builder().put("singleselect", "Hello World").build());
 
         Map<String, Object> formData = new HashMap<>();
         Resource fieldResource = resolver
@@ -98,7 +101,7 @@ public class SelectionHandlerTest {
     public void testMultipleSelect() throws FormException {
         ResourceResolver resolver = context.resourceResolver();
 
-        context.request().getParameterMap().put("multiselect", new String[] {});
+        context.request().setParameterMap(ImmutableMap.<String, Object>builder().put("multiselect", "").build());
 
         Map<String, Object> formData = new HashMap<>();
         Resource fieldResource = resolver
@@ -106,7 +109,8 @@ public class SelectionHandlerTest {
         handler.handleField(context.request(), fieldResource, formData);
         assertFalse(formData.containsKey("multiselect"));
 
-        context.request().getParameterMap().put("multiselect", new String[] { "Thing 1", "Thing 2" });
+        context.request().setParameterMap(ImmutableMap.<String, Object>builder()
+                .put("multiselect", new String[] { "Thing 1", "Thing 2" }).build());
         handler.handleField(context.request(), fieldResource, formData);
         assertTrue(formData.containsKey("multiselect"));
     }
diff --git a/reference/src/test/java/org/apache/sling/cms/reference/form/impl/fields/TextareaHandlerTest.java b/reference/src/test/java/org/apache/sling/cms/reference/form/impl/fields/TextareaHandlerTest.java
index d7e1905..1429784 100644
--- a/reference/src/test/java/org/apache/sling/cms/reference/form/impl/fields/TextareaHandlerTest.java
+++ b/reference/src/test/java/org/apache/sling/cms/reference/form/impl/fields/TextareaHandlerTest.java
@@ -34,6 +34,8 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 
+import com.google.common.collect.ImmutableMap;
+
 public class TextareaHandlerTest {
 
     @Rule
@@ -66,7 +68,7 @@ public class TextareaHandlerTest {
     public void testNotRequiredNoValue() throws FormException {
         ResourceResolver resolver = context.resourceResolver();
 
-        context.request().getParameterMap().put("textarea", new String[] { });
+        context.request().getParameterMap().put("textarea", new String[] {});
 
         Map<String, Object> formData = new HashMap<>();
         Resource fieldResource = resolver
@@ -79,7 +81,8 @@ public class TextareaHandlerTest {
     public void testNotRequiredWithValue() throws FormException {
         ResourceResolver resolver = context.resourceResolver();
 
-        context.request().getParameterMap().put("textarea", new String[] { "Hello World" });
+        context.request()
+                .setParameterMap(ImmutableMap.<String, Object>builder().put("textarea", "Hello World").build());
 
         Map<String, Object> formData = new HashMap<>();
         Resource fieldResource = resolver
@@ -87,8 +90,6 @@ public class TextareaHandlerTest {
         handler.handleField(context.request(), fieldResource, formData);
         assertEquals("Hello World", formData.get("textarea"));
     }
-    
-
 
     @Test
     public void testRequiresNoValue() {
@@ -111,7 +112,8 @@ public class TextareaHandlerTest {
     public void testRequiresWithValue() throws FormException {
         ResourceResolver resolver = context.resourceResolver();
 
-        context.request().getParameterMap().put("requiredtextarea", new String[] { "Hello World" });
+        context.request()
+                .setParameterMap(ImmutableMap.<String, Object>builder().put("requiredtextarea", "Hello World").build());
 
         Map<String, Object> formData = new HashMap<>();
         Resource fieldResource = resolver
diff --git a/reference/src/test/java/org/apache/sling/cms/reference/form/impl/fields/TextfieldHandlerTest.java b/reference/src/test/java/org/apache/sling/cms/reference/form/impl/fields/TextfieldHandlerTest.java
index 03d3b5c..257dc65 100644
--- a/reference/src/test/java/org/apache/sling/cms/reference/form/impl/fields/TextfieldHandlerTest.java
+++ b/reference/src/test/java/org/apache/sling/cms/reference/form/impl/fields/TextfieldHandlerTest.java
@@ -35,6 +35,8 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 
+import com.google.common.collect.ImmutableMap;
+
 public class TextfieldHandlerTest {
 
     @Rule
@@ -55,7 +57,8 @@ public class TextfieldHandlerTest {
     public void testDatefield() throws FormException {
         ResourceResolver resolver = context.resourceResolver();
 
-        context.request().getParameterMap().put("datefield", new String[] { "2019-02-12" });
+        context.request()
+                .setParameterMap(ImmutableMap.<String, Object>builder().put("datefield", "2019-02-12").build());
 
         Map<String, Object> formData = new HashMap<>();
         Resource fieldResource = resolver
@@ -63,7 +66,8 @@ public class TextfieldHandlerTest {
         handler.handleField(context.request(), fieldResource, formData);
         assertTrue(formData.get("datefield") instanceof Calendar);
 
-        context.request().getParameterMap().put("datefield", new String[] { "df-02-12" });
+        context.request().setParameterMap(ImmutableMap.<String, Object>builder().put("datefield", "df-02-12").build());
+
         try {
             handler.handleField(context.request(), fieldResource, formData);
             fail();
@@ -71,9 +75,9 @@ public class TextfieldHandlerTest {
 
         }
 
-        Resource invalidDate = resolver
-                .getResource("/form/jcr:content/container/invaliddate");
-        context.request().getParameterMap().put("invalidate", new String[] { "2019-02-12" });
+        Resource invalidDate = resolver.getResource("/form/jcr:content/container/invaliddate");
+        context.request()
+                .setParameterMap(ImmutableMap.<String, Object>builder().put("invalidate", "2019-02-12").build());
         try {
             handler.handleField(context.request(), invalidDate, formData);
             fail();
@@ -87,14 +91,15 @@ public class TextfieldHandlerTest {
     public void testDouble() throws FormException {
         ResourceResolver resolver = context.resourceResolver();
 
-        context.request().getParameterMap().put("double", new String[] { "123.23" });
+        context.request().setParameterMap(ImmutableMap.<String, Object>builder().put("double", "123.23").build());
 
         Map<String, Object> formData = new HashMap<>();
         Resource fieldResource = resolver.getResource("/form/jcr:content/container/form/fields/fieldset/fields/double");
         handler.handleField(context.request(), fieldResource, formData);
         assertEquals(123.23, formData.get("double"));
 
-        context.request().getParameterMap().put("double", new String[] { "b" });
+        context.request().setParameterMap(ImmutableMap.<String, Object>builder().put("double", "b").build());
+
         try {
             handler.handleField(context.request(), fieldResource, formData);
             fail();
@@ -120,7 +125,7 @@ public class TextfieldHandlerTest {
     public void testInteger() throws FormException {
         ResourceResolver resolver = context.resourceResolver();
 
-        context.request().getParameterMap().put("integer", new String[] { "123" });
+        context.request().setParameterMap(ImmutableMap.<String, Object>builder().put("integer", "123").build());
 
         Map<String, Object> formData = new HashMap<>();
         Resource fieldResource = resolver
@@ -128,7 +133,7 @@ public class TextfieldHandlerTest {
         handler.handleField(context.request(), fieldResource, formData);
         assertEquals(123, formData.get("integer"));
 
-        context.request().getParameterMap().put("integer", new String[] { "b" });
+        context.request().setParameterMap(ImmutableMap.<String, Object>builder().put("integer", "b").build());
         try {
             handler.handleField(context.request(), fieldResource, formData);
             fail();
@@ -155,8 +160,8 @@ public class TextfieldHandlerTest {
     public void testNotRequiredWithValue() throws FormException {
         ResourceResolver resolver = context.resourceResolver();
 
-        context.request().getParameterMap().put("textfield", new String[] { "Hello World" });
-        context.request().getParameterMap().put("textfield2", new String[] { "Hello World" });
+        context.request().setParameterMap(ImmutableMap.<String, Object>builder().put("textfield", "Hello World")
+                .put("textfield2", "Hello World").build());
 
         Map<String, Object> formData = new HashMap<>();
         Resource fieldResource = resolver
@@ -182,7 +187,7 @@ public class TextfieldHandlerTest {
 
         }
 
-        context.request().getParameterMap().put("patternfield", new String[] { "123" });
+        context.request().setParameterMap(ImmutableMap.<String, Object>builder().put("patternfield", "123").build());
 
         handler.handleField(context.request(), fieldResource, formData);
         assertEquals("123", formData.get("patternfield"));
@@ -209,7 +214,7 @@ public class TextfieldHandlerTest {
     public void testRequiresWithValue() throws FormException {
         ResourceResolver resolver = context.resourceResolver();
 
-        context.request().getParameterMap().put("money", new String[] { "123" });
+        context.request().setParameterMap(ImmutableMap.<String, Object>builder().put("money", "123").build());
 
         Map<String, Object> formData = new HashMap<>();
         Resource fieldResource = resolver


[sling-org-apache-sling-app-cms] 02/02: Fixes SLING-8801 - Adding an option to forward the form rather than redirecting

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git

commit 873521c624142faad2c825e262e2ed52c5a2e565
Author: Dan Klco <dk...@apache.org>
AuthorDate: Fri Oct 25 00:41:13 2019 -0400

    Fixes SLING-8801 - Adding an option to forward the form rather than redirecting
---
 .../cms/reference/forms/impl/FormHandler.java      | 17 +++++++++++++--
 .../apps/reference/components/forms/form/edit.json | 24 +++++++++++++++++++---
 2 files changed, 36 insertions(+), 5 deletions(-)

diff --git a/reference/src/main/java/org/apache/sling/cms/reference/forms/impl/FormHandler.java b/reference/src/main/java/org/apache/sling/cms/reference/forms/impl/FormHandler.java
index 2bce68f..053098e 100644
--- a/reference/src/main/java/org/apache/sling/cms/reference/forms/impl/FormHandler.java
+++ b/reference/src/main/java/org/apache/sling/cms/reference/forms/impl/FormHandler.java
@@ -30,6 +30,7 @@ import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.SlingHttpServletResponse;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.servlets.SlingAllMethodsServlet;
+import org.apache.sling.api.wrappers.SlingHttpServletRequestWrapper;
 import org.apache.sling.cms.Page;
 import org.apache.sling.cms.PageManager;
 import org.apache.sling.cms.ResourceTree;
@@ -89,9 +90,21 @@ public class FormHandler extends SlingAllMethodsServlet {
             return;
         }
 
-        String thankYouPage = request.getResource().getValueMap().get("thankYouPage", String.class);
+        String thankYouPage = request.getResource().getValueMap().get("successPage", String.class);
         if (StringUtils.isNotBlank(thankYouPage)) {
-            response.sendRedirect(request.getResourceResolver().map(request, thankYouPage) + ".html?message=success");
+            if ("forward".equals(request.getResource().getValueMap().get("successAction", String.class))) {
+                SlingHttpServletRequestWrapper requestWrapper = new SlingHttpServletRequestWrapper(request) {
+                    @Override
+                    public String getMethod() {
+                        return "GET";
+                    }
+                };
+
+                request.getRequestDispatcher(thankYouPage).forward(requestWrapper, response);
+            } else {
+                response.sendRedirect(
+                        request.getResourceResolver().map(request, thankYouPage) + ".html?message=success");
+            }
         } else {
             response.sendRedirect(request.getResourceResolver().map(request, pagePath) + ".html?message=success");
         }
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/forms/form/edit.json b/reference/src/main/resources/jcr_root/apps/reference/components/forms/form/edit.json
index 835835a..aa98ccd 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/forms/form/edit.json
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/forms/form/edit.json
@@ -19,11 +19,29 @@
             "name": "submitText",
             "required": true
         },
-        "thankYouPage": {
+        "successPage": {
             "jcr:primaryType": "nt:unstructured",
             "sling:resourceType": "sling-cms/components/editor/fields/path",
-            "label": "Thank You Page",
-            "name": "thankYouPage"
+            "label": "Success Page",
+            "name": "successPage"
+        },
+        "successAction": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/select",
+            "label": "Success Action",
+            "name": "successAction",
+            "options": {
+                "redirect": {
+                    "jcr:primaryType": "nt:unstructured",
+                    "label": "Redirect",
+                    "value": "redirect"
+                },
+                "forward": {
+                    "jcr:primaryType": "nt:unstructured",
+                    "label": "Forward",
+                    "value": "forward"
+                }
+            }
         },
         "successMessage": {
             "jcr:primaryType": "nt:unstructured",