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

pmouawad pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git


The following commit(s) were added to refs/heads/master by this push:
     new 2e33d0f  Fix wrong parsing of parameters
2e33d0f is described below

commit 2e33d0fc5fd71bc6ef74d72e55a124cb7ff28d88
Author: pmouawad <[email protected]>
AuthorDate: Mon Oct 28 20:45:01 2019 +0100

    Fix wrong parsing of parameters
---
 .../protocol/http/gui/action/ParseCurlCommandAction.java   |  7 ++++++-
 .../jmeter/gui/action/ParseCurlCommandActionTest.java      | 14 ++++++++++++++
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git 
a/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/gui/action/ParseCurlCommandAction.java
 
b/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/gui/action/ParseCurlCommandAction.java
index 23f3e8b..6f9100a 100644
--- 
a/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/gui/action/ParseCurlCommandAction.java
+++ 
b/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/gui/action/ParseCurlCommandAction.java
@@ -51,6 +51,7 @@ import javax.swing.SwingUtilities;
 import javax.swing.tree.TreePath;
 
 import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.jmeter.config.Arguments;
 import org.apache.jmeter.config.KeystoreConfig;
 import org.apache.jmeter.control.Controller;
@@ -286,7 +287,11 @@ public class ParseCurlCommandAction extends AbstractAction 
implements MenuCreato
         if (url.getPort() != -1) {
             httpSampler.setPort(url.getPort());
         }
-        httpSampler.setPath(url.getPath());
+        String path = url.getPath();
+        if (StringUtils.isNotEmpty(url.getQuery())) {
+            path += "?" + url.getQuery();
+        }
+        httpSampler.setPath(path);
         httpSampler.setDomain(url.getHost());
         httpSampler.setUseKeepAlive(request.isKeepAlive());
         httpSampler.setFollowRedirects(true);
diff --git 
a/src/protocol/http/src/test/java/org/apache/jmeter/gui/action/ParseCurlCommandActionTest.java
 
b/src/protocol/http/src/test/java/org/apache/jmeter/gui/action/ParseCurlCommandActionTest.java
index a2d4652..5c46611 100644
--- 
a/src/protocol/http/src/test/java/org/apache/jmeter/gui/action/ParseCurlCommandActionTest.java
+++ 
b/src/protocol/http/src/test/java/org/apache/jmeter/gui/action/ParseCurlCommandActionTest.java
@@ -27,6 +27,7 @@ import java.io.IOException;
 import java.lang.reflect.Field;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.net.URL;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Path;
@@ -41,6 +42,7 @@ import 
org.apache.jmeter.protocol.http.control.AuthManager.Mechanism;
 import org.apache.jmeter.protocol.http.control.Authorization;
 import org.apache.jmeter.protocol.http.control.CookieManager;
 import org.apache.jmeter.protocol.http.control.DNSCacheManager;
+import org.apache.jmeter.protocol.http.control.Header;
 import org.apache.jmeter.protocol.http.control.HeaderManager;
 import org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui;
 import org.apache.jmeter.protocol.http.curl.BasicCurlParser;
@@ -251,6 +253,18 @@ public class ParseCurlCommandActionTest {
         httpSampler = (HTTPSamplerProxy) method.invoke(p, objs);
         assertEquals("c", httpSampler.getArguments().getArgument(0).getName());
         assertEquals("@test.txt;type=text/foo", 
httpSampler.getArguments().getArgument(0).getValue());
+
+        // test form data in httpsampler
+        request = basicCurlParser.parse("curl -X PUT 
\"https://www.example.com:123/12345?param1=value1&param2=value2\"; -H  \"accept: 
*/*\" -H  \"X-XSRF-TOKEN: 1234\"");
+        objs = new Object[]{request, ""};
+        httpSampler = (HTTPSamplerProxy) method.invoke(p, objs);
+        assertEquals(new 
URL("https://www.example.com:123/12345?param1=value1&param2=value2";), 
httpSampler.getUrl());
+        assertEquals(123, httpSampler.getPort());
+        assertEquals("www.example.com", httpSampler.getDomain());
+        assertEquals("/12345?param1=value1&param2=value2", 
httpSampler.getPath());
+        assertEquals("PUT", httpSampler.getMethod());
+        assertEquals(new Header("accept", "*/*"), 
httpSampler.getHeaderManager().getHeader(0));
+        assertEquals(new Header("X-XSRF-TOKEN", "1234"), 
httpSampler.getHeaderManager().getHeader(1));
     }
 
     @Test

Reply via email to