You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by en...@apache.org on 2020/09/22 18:22:10 UTC

[sling-org-apache-sling-testing-serversetup] branch master updated: SLING-9760 Query parameters are not handled in the server.ready.path parsing

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

enorman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-serversetup.git


The following commit(s) were added to refs/heads/master by this push:
     new 93deb93  SLING-9760 Query parameters are not handled in the server.ready.path parsing
93deb93 is described below

commit 93deb937c1607b310d70079944ef5135f918183f
Author: Eric Norman <en...@apache.org>
AuthorDate: Tue Sep 22 11:21:59 2020 -0700

    SLING-9760 Query parameters are not handled in the server.ready.path
    parsing
---
 .../serversetup/instance/SlingTestBase.java        | 28 +++++++++++++++++++++-
 .../testing/serversetup/instance/package-info.java |  2 +-
 2 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/apache/sling/testing/serversetup/instance/SlingTestBase.java b/src/main/java/org/apache/sling/testing/serversetup/instance/SlingTestBase.java
index e70c9bc..b5bac36 100644
--- a/src/main/java/org/apache/sling/testing/serversetup/instance/SlingTestBase.java
+++ b/src/main/java/org/apache/sling/testing/serversetup/instance/SlingTestBase.java
@@ -19,7 +19,9 @@ package org.apache.sling.testing.serversetup.instance;
 import static org.junit.Assert.fail;
 
 import java.io.File;
+import java.io.UnsupportedEncodingException;
 import java.net.URI;
+import java.net.URLDecoder;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.LinkedList;
@@ -27,6 +29,8 @@ import java.util.List;
 import java.util.Properties;
 import java.util.TreeSet;
 
+import org.apache.http.NameValuePair;
+import org.apache.http.message.BasicNameValuePair;
 import org.apache.sling.testing.clients.ClientException;
 import org.apache.sling.testing.clients.SlingClient;
 import org.apache.sling.testing.clients.osgi.BundlesInstaller;
@@ -300,7 +304,9 @@ public class SlingTestBase implements SlingInstance {
                 final String path = s[0];
                 final String pattern = (s.length > 0 ? s[1] : "");
                 try {
-                    osgiConsoleClient.doGet(path, null, 200).checkContentContains(pattern);
+                    URI uri = new URI(path);
+                    List<NameValuePair> reqParams = extractParams(uri);
+                    osgiConsoleClient.doGet(uri.getPath(), reqParams, 200).checkContentContains(pattern);
                 } catch(ClientException e) {
                     errors = true;
                     log.debug("Request to {}@{} failed, will retry ({})",
@@ -329,6 +335,26 @@ public class SlingTestBase implements SlingInstance {
     }
 
     /**
+     * Convert the query part of the URI to a list of name value pairs that are suitable
+     * for the client calls
+     */
+    protected List<NameValuePair> extractParams(URI url) throws UnsupportedEncodingException {
+        final List<NameValuePair> paramsList = new ArrayList<>();
+        String query = url.getQuery();
+        if (query == null || query.isEmpty()) {
+            return null;
+        }
+        final String[] pairs = query.split("&");
+        for (String pair : pairs) {
+            final int idx = pair.indexOf("=");
+            final String key = idx > 0 ? URLDecoder.decode(pair.substring(0, idx), "UTF-8") : pair;
+            final String value = idx > 0 && pair.length() > idx + 1 ? URLDecoder.decode(pair.substring(idx + 1), "UTF-8") : null;
+            paramsList.add(new BasicNameValuePair(key, value));
+        }
+        return paramsList;
+    }
+
+    /**
      * Get the list of additional bundles to install, as specified by the system property {@link #ADDITONAL_BUNDLES_PATH} 
      * @return the list of {@link File}s pointing to the Bundle JARs or the empty list in case no additional bundles should be installed (never {@code null}).
      */
diff --git a/src/main/java/org/apache/sling/testing/serversetup/instance/package-info.java b/src/main/java/org/apache/sling/testing/serversetup/instance/package-info.java
index 27f1c7a..0b34ad5 100644
--- a/src/main/java/org/apache/sling/testing/serversetup/instance/package-info.java
+++ b/src/main/java/org/apache/sling/testing/serversetup/instance/package-info.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-@Version("1.0.0")
+@Version("1.1.0")
 package org.apache.sling.testing.serversetup.instance;
 
 import org.osgi.annotation.versioning.Version;