Author: fschumacher
Date: Sat Mar 28 17:42:39 2015
New Revision: 1669810

URL: http://svn.apache.org/r1669810
Log:
Don't fail on long strings in JSON responses when formatting them.

Bugzilla Id: 54826

Added:
    jmeter/trunk/test/src/org/apache/jmeter/visualizers/TestRenderAsJson.java
Modified:
    jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsJSON.java
    jmeter/trunk/xdocs/changes.xml

Modified: 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsJSON.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsJSON.java?rev=1669810&r1=1669809&r2=1669810&view=diff
==============================================================================
--- jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsJSON.java 
(original)
+++ jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsJSON.java 
Sat Mar 28 17:42:39 2015
@@ -31,7 +31,7 @@ public class RenderAsJSON extends Sample
 
     private static final String NORMAL_CHARACTER_REGEX = "[^\"\\\\]";  // 
$NON-NLS-1$
 
-    private static final String STRING_REGEX = "\"(" + ESC_CHAR_REGEX + "|" + 
NORMAL_CHARACTER_REGEX + ")*\""; // $NON-NLS-1$
+    private static final String STRING_REGEX = "\"(" + ESC_CHAR_REGEX + "|" + 
NORMAL_CHARACTER_REGEX + ")*+\""; // $NON-NLS-1$
 
     // This 'other value' regex is deliberately weak, even accepting an empty 
string, to be useful when reporting malformed data.
     private static final String OTHER_VALUE_REGEX = "[^\\{\\[\\]\\}\\,]*"; // 
$NON-NLS-1$

Added: jmeter/trunk/test/src/org/apache/jmeter/visualizers/TestRenderAsJson.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/visualizers/TestRenderAsJson.java?rev=1669810&view=auto
==============================================================================
--- jmeter/trunk/test/src/org/apache/jmeter/visualizers/TestRenderAsJson.java 
(added)
+++ jmeter/trunk/test/src/org/apache/jmeter/visualizers/TestRenderAsJson.java 
Sat Mar 28 17:42:39 2015
@@ -0,0 +1,68 @@
+package org.apache.jmeter.visualizers;
+
+import java.lang.reflect.Method;
+
+import junit.framework.TestCase;
+
+import org.junit.Test;
+
+public class TestRenderAsJson extends TestCase {
+
+    private Method prettyJSON;
+    private final String TAB = ":   ";
+
+    private String prettyJSON(String prettify) throws Exception {
+        return (String) prettyJSON.invoke(null, prettify);
+    }
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        prettyJSON = RenderAsJSON.class.getDeclaredMethod("prettyJSON",
+                String.class);
+        prettyJSON.setAccessible(true);
+    }
+
+    @Test
+    public void testRenderResultWithLongStringBug54826() throws Exception {
+        StringBuilder json = new StringBuilder();
+        json.append("\"customData\":\"");
+        for (int i = 0; i < 100; i++) {
+            json.append("somenotsorandomtext");
+        }
+        json.append("\"");
+
+        assertEquals("{\n" + TAB + json.toString() + "\n}",
+                prettyJSON("{" + json.toString() + "}"));
+    }
+
+    @Test
+    public void testRenderResultSimpleObject() throws Exception {
+        assertEquals("{\n}", prettyJSON("{}"));
+    }
+
+    @Test
+    public void testRenderResultSimpleArray() throws Exception {
+        assertEquals("[\n]", prettyJSON("[]"));
+    }
+
+    @Test
+    public void testRenderResultSimpleNumber() throws Exception {
+        assertEquals("42", prettyJSON("42"));
+    }
+
+    @Test
+    public void testRenderResultSimpleString() throws Exception {
+        assertEquals("Hello World", prettyJSON("Hello World"));
+    }
+
+    @Test
+    public void testRenderResultSimpleStructur() throws Exception {
+        assertEquals(
+                "{\n" + TAB + "\"Hello\": \"World\", \n" + TAB + "\"more\": \n"
+                        + TAB + "[\n" + TAB + TAB + "\"Something\", \n" + TAB
+                        + TAB + "\"else\", \n" + TAB + "]\n}",
+                prettyJSON("{\"Hello\": \"World\", \"more\": [\"Something\", 
\"else\", ]}"));
+    }
+
+}

Modified: jmeter/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1669810&r1=1669809&r2=1669810&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml (original)
+++ jmeter/trunk/xdocs/changes.xml Sat Mar 28 17:42:39 2015
@@ -106,6 +106,7 @@ Summary
 
 <h3>General</h3>
 <ul>
+    <li><bug>54826</bug>Don't fail on long strings in JSON responses when 
displaying them as JSON in View Results Tree.</li>
 </ul>
 <ch_section>Non-functional changes</ch_section>
 <ul>


Reply via email to