Author: sebb
Date: Sat Nov 24 09:59:23 2007
New Revision: 597899
URL: http://svn.apache.org/viewvc?rev=597899&view=rev
Log:
Fix SampleResult dataType checking to better detect TEXT documents
Allow optional specification of addition TEXT content-types
Modified:
jakarta/jmeter/trunk/bin/jmeter.properties
jakarta/jmeter/trunk/docs/changes.html
jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java
jakarta/jmeter/trunk/xdocs/changes.xml
Modified: jakarta/jmeter/trunk/bin/jmeter.properties
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/bin/jmeter.properties?rev=597899&r1=597898&r2=597899&view=diff
==============================================================================
--- jakarta/jmeter/trunk/bin/jmeter.properties (original)
+++ jakarta/jmeter/trunk/bin/jmeter.properties Sat Nov 24 09:59:23 2007
@@ -600,6 +600,11 @@
#Should JMeter expand the tree when loading a test plan?
#onload.expandtree=false
+# List of additional content types to be treated as text; separate entries
with commas.
+# If the content type begins with the same string, then it is treated as text.
+# The following example types are already allowed for:
+#content-type_text=text/,application/javascript,application/json,application/xhtml+xml
+
# Should JMeter automatically load additional JMeter properties?
# File name to look for (comment to disable)
user.properties=user.properties
Modified: jakarta/jmeter/trunk/docs/changes.html
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/docs/changes.html?rev=597899&r1=597898&r2=597899&view=diff
==============================================================================
--- jakarta/jmeter/trunk/docs/changes.html (original)
+++ jakarta/jmeter/trunk/docs/changes.html Sat Nov 24 09:59:23 2007
@@ -374,6 +374,11 @@
</li>
+
<li >
+ Fix
SampleResult dataType checking to better detect TEXT documents
+ </li>
+
+
</ul>
<h4 >
Improvements
@@ -587,6 +592,11 @@
<li >
Added Collapse
All and Expand All Option menu items
+ </li>
+
+
+
<li >
+ Allow optional
definition of extra content-types that are viewable as text
</li>
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java?rev=597899&r1=597898&r2=597899&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java
Sat Nov 24 09:59:23 2007
@@ -555,10 +555,9 @@
public void setEncodingAndType(String ct){
if (ct != null) {
// Extract charset and store as DataEncoding
- // TODO do we need process http-equiv META tags, e.g.:
- // <META http-equiv="content-type" content="text/html;
- // charset=foobar">
- // or can we leave that to the renderer ?
+ // N.B. The meta tag:
+ // <META http-equiv="content-type" content="text/html;
charset=foobar">
+ // is now processed by
HTTPSampleResult#getDataEncodingWithDefault
final String CS_PFX = "charset="; // $NON-NLS-1$
int cset = ct.toLowerCase().indexOf(CS_PFX);
if (cset >= 0) {
@@ -571,14 +570,45 @@
setDataEncoding(charSet);
}
}
- if (ct.startsWith("image/")) {// $NON-NLS-1$
- setDataType(BINARY);
- } else {
+ if (isTextType(ct)) {
setDataType(TEXT);
+ } else {
+ setDataType(BINARY);
}
}
}
+ // List of types that can be processed as text
+ private static final String[] TEXT_TYPES = {
+ "text/", //$NON-NLS-1$
+ "application/javascript", //$NON-NLS-1$
+ "application/json", //$NON-NLS-1$
+ "application/xhtml+xml", //$NON-NLS-1$
+ };
+
+ // Additional types as needed
+ private static final String[] TEXT_TYPES_OPT =
+ JOrphanUtils.split(JMeterUtils.getPropDefault("content-type_text", ""),
","); //$NON-NLS-1$ $NON-NLS-2$ $NON-NLS-3$
+
+ /*
+ * Determine if content-type can be displayed as text or not.
+ *
+ * @param ct content type
+ * @return true if content-type is of type text.
+ */
+ private static boolean isTextType(String ct){
+ for (int i = 0; i < TEXT_TYPES.length; i++){
+ if (ct.startsWith(TEXT_TYPES[i])){
+ return true;
+ }
+ }
+ for (int i = 0; i < TEXT_TYPES_OPT.length; i++){
+ if (ct.startsWith(TEXT_TYPES_OPT[i])){
+ return true;
+ }
+ }
+ return false;
+ }
/**
* Sets the successful attribute of the SampleResult object.
*
Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=597899&r1=597898&r2=597899&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Sat Nov 24 09:59:23 2007
@@ -158,6 +158,7 @@
<li>Fix default encoding for blank encoding</li>
<li>Fix Https spoofing (port problem) which was broken in 2.3</li>
<li>Fix HTTP (Java) sampler so http.java.sampler.retries means retries, i.e.
does not include initial try</li>
+<li>Fix SampleResult dataType checking to better detect TEXT documents</li>
</ul>
<h4>Improvements</h4>
@@ -204,6 +205,7 @@
<li>Add Successes Only logging and display</li>
<li>The JMeter log file name is formatted as a SimpleDateFormat (applied to
the current date) if it contains paired single-quotes, .e.g.
'jmeter_'yyyyMMddHHmmss'.log'</li>
<li>Added Collapse All and Expand All Option menu items</li>
+<li>Allow optional definition of extra content-types that are viewable as
text</li>
</ul>
<h4>Non-functional Improvements</h4>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]