Author: sebb
Date: Tue Aug 14 03:20:31 2007
New Revision: 565694

URL: http://svn.apache.org/viewvc?view=rev&rev=565694
Log:
Allow for quoted charset in Content-Type parsing

Modified:
    
jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/samplers/SampleResult.java
    
jakarta/jmeter/branches/rel-2-2/test/src/org/apache/jmeter/samplers/TestSampleResult.java
    jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml

Modified: 
jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/samplers/SampleResult.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/samplers/SampleResult.java?view=diff&rev=565694&r1=565693&r2=565694
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/samplers/SampleResult.java
 (original)
+++ 
jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/samplers/SampleResult.java
 Tue Aug 14 03:20:31 2007
@@ -34,6 +34,8 @@
 import org.apache.jorphan.util.JOrphanUtils;
 import org.apache.log.Logger;
 
+// For unit tests, @see TestSampleResult
+
 /**
  * This is a nice packaging for the various information returned from taking a
  * sample of an entry.
@@ -48,7 +50,8 @@
        // However the suggested System.getProperty("file.encoding") is Cp1252 
on
        // Windows
        // So use a new property with the original value as default
-       private static final String DEFAULT_ENCODING 
+    // needs to be accessible from test code
+       static final String DEFAULT_ENCODING 
             = JMeterUtils.getPropDefault("sampleresult.default.encoding", // 
$NON-NLS-1$
                        "ISO-8859-1"); // $NON-NLS-1$
 
@@ -548,11 +551,17 @@
             // <META http-equiv="content-type" content="text/html;
             // charset=foobar">
             // or can we leave that to the renderer ?
-            String de = ct.toLowerCase();
-            final String cs = "charset="; // $NON-NLS-1$
-            int cset = de.indexOf(cs);
+            final String CS_PFX = "charset="; // $NON-NLS-1$
+            int cset = ct.toLowerCase().indexOf(CS_PFX);
             if (cset >= 0) {
-                setDataEncoding(de.substring(cset + cs.length()));
+               // TODO - assumes charset is not followed by anything else
+                String charSet = ct.substring(cset + CS_PFX.length());
+                // Check for quoted string
+                if (charSet.startsWith("\"")){ // $NON-NLS-1$
+                       setDataEncoding(charSet.substring(1, 
charSet.length()-1)); // remove quotes
+                } else {
+                                   setDataEncoding(charSet);
+                }
             }
             if (ct.startsWith("image/")) {// $NON-NLS-1$
                 setDataType(BINARY);

Modified: 
jakarta/jmeter/branches/rel-2-2/test/src/org/apache/jmeter/samplers/TestSampleResult.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/test/src/org/apache/jmeter/samplers/TestSampleResult.java?view=diff&rev=565694&r1=565693&r2=565694
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-2/test/src/org/apache/jmeter/samplers/TestSampleResult.java
 (original)
+++ 
jakarta/jmeter/branches/rel-2-2/test/src/org/apache/jmeter/samplers/TestSampleResult.java
 Tue Aug 14 03:20:31 2007
@@ -180,5 +180,28 @@
         }
 
         // TODO some more invalid sequence tests needed
+        
+        public void testEncodingAndType() throws Exception {
+               // check default
+               SampleResult res = new SampleResult();
+               
assertEquals(SampleResult.DEFAULT_ENCODING,res.getDataEncoding());
+               assertEquals("DataType should be blank","",res.getDataType());
+               
+               // check null changes nothing
+               res.setEncodingAndType(null);
+               
assertEquals(SampleResult.DEFAULT_ENCODING,res.getDataEncoding());
+               assertEquals("DataType should be blank","",res.getDataType());
+
+               // Check unquoted charset
+               res.setEncodingAndType("text/html; charset=aBcd");
+               assertEquals("aBcd",res.getDataEncoding());
+               assertEquals("text",res.getDataType());
+
+               // Check quoted charset
+               res.setEncodingAndType("text/html; charset=\"aBcd\"");
+               assertEquals("aBcd",res.getDataEncoding());
+               assertEquals("text",res.getDataType());
+               
+        }
 }
 

Modified: jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml?view=diff&rev=565694&r1=565693&r2=565694
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml (original)
+++ jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml Tue Aug 14 03:20:31 2007
@@ -42,6 +42,7 @@
 <li>Fix possible NPE in HTTPSampler2 if 302 does not have Location header.</li>
 <li>Bug 42919 - Failure Message blank in CSV output [now records first 
non-blank message]</li>
 <li>Add link to Extending JMeter PDF</li>
+<li>Allow for quoted charset in Content-Type parsing</li>
 </ul>
 
 <h3>Version 2.3RC3</h3>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to