Author: sebb
Date: Fri Sep  5 06:07:40 2008
New Revision: 692436

URL: http://svn.apache.org/viewvc?rev=692436&view=rev
Log:
Bug 45749 - Response Assertion does not work with a substring that is not a 
valid RE

Modified:
    
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java
    jakarta/jmeter/trunk/test/src/org/apache/jmeter/assertions/PackageTest.java
    jakarta/jmeter/trunk/xdocs/changes.xml

Modified: 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java?rev=692436&r1=692435&r2=692436&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java
 (original)
+++ 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java
 Fri Sep  5 06:07:40 2008
@@ -312,6 +312,7 @@
         boolean contains = isContainsType(); // do it once outside loop
         boolean equals = isEqualsType();
         boolean substring = isSubstringType();
+        boolean matches = isMatchType();
         boolean debugEnabled = log.isDebugEnabled();
         if (debugEnabled){
             log.debug("Type:" + (contains?"Contains":"Match") + (not? "(not)": 
""));
@@ -323,7 +324,10 @@
             PropertyIterator iter = getTestStrings().iterator();
             while (iter.hasNext()) {
                 String stringPattern = iter.next().getStringValue();
-                Pattern pattern = 
JMeterUtils.getPatternCache().getPattern(stringPattern, 
Perl5Compiler.READ_ONLY_MASK);
+                Pattern pattern = null;
+                if (contains || matches) {
+                       pattern = 
JMeterUtils.getPatternCache().getPattern(stringPattern, 
Perl5Compiler.READ_ONLY_MASK);
+                }
                 boolean found;
                 if (contains) {
                     found = localMatcher.contains(toCheck, pattern);
@@ -336,12 +340,12 @@
                 }
                 pass = not ? !found : found;
                 if (!pass) {
-                    if (debugEnabled){log.debug("Failed: "+pattern);}
+                    if (debugEnabled){log.debug("Failed: "+stringPattern);}
                     result.setFailure(true);
                     
result.setFailureMessage(getFailText(stringPattern,toCheck));
                     break;
                 }
-                if (debugEnabled){log.debug("Passed: "+pattern);}
+                if (debugEnabled){log.debug("Passed: "+stringPattern);}
             }
         } catch (MalformedCachePatternException e) {
             result.setError(true);

Modified: 
jakarta/jmeter/trunk/test/src/org/apache/jmeter/assertions/PackageTest.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/test/src/org/apache/jmeter/assertions/PackageTest.java?rev=692436&r1=692435&r2=692436&view=diff
==============================================================================
--- jakarta/jmeter/trunk/test/src/org/apache/jmeter/assertions/PackageTest.java 
(original)
+++ jakarta/jmeter/trunk/test/src/org/apache/jmeter/assertions/PackageTest.java 
Fri Sep  5 06:07:40 2008
@@ -351,23 +351,64 @@
                        assertPassed();
 
         }
+               
+        public void testResponseAssertionSubstring() throws Exception{
+            assertion.unsetNotType();
+            assertion.setToSubstringType();
+            assertion.setTestFieldURL();
+            assertion.addTestString("Sampler");
+            assertion.addTestString("Label");
+            assertion.addTestString("+(");
+            
+            result = assertion.getResult(sample);
+            assertFailed();
+            
+            assertion.setToNotType();
+            
+            result = assertion.getResult(sample);
+            assertFailed();
+
+            assertion.clearTestStrings();
+            assertion.addTestString("r l");
+            result = assertion.getResult(sample);
+            assertPassed();
+
+            assertion.unsetNotType();
+            assertion.setTestFieldResponseData();
+            
+            assertion.clearTestStrings();
+            assertion.addTestString("line 2");
+            result = assertion.getResult(sample);
+            assertPassed();
+
+            assertion.clearTestStrings();
+            assertion.addTestString("line 2\n\nEOF");
+            result = assertion.getResult(sample);
+            assertPassed();
+
+            assertion.setTestFieldResponseCode();
+            
+            assertion.clearTestStrings();
+            assertion.addTestString("401");
+            result = assertion.getResult(sample);
+            assertPassed();
+
+        }
+
 // TODO - need a lot more tests
                
                private void assertPassed() throws Exception{
-                       if (null != result.getFailureMessage()){
-                               
//System.out.println(result.getFailureMessage());// debug
-                       }
                        
assertNull(result.getFailureMessage(),result.getFailureMessage());
-                       assertFalse(result.isError());
-                       assertFalse(result.isFailure());                
+            assertFalse("Not expecting error: 
"+result.getFailureMessage(),result.isError());
+                       assertFalse("Not expecting error",result.isError());
+                       assertFalse("Not expecting 
failure",result.isFailure());                
                }
                
                private void assertFailed() throws Exception{
                        assertNotNull(result.getFailureMessage());
-                       //System.out.println(result.getFailureMessage());
                        assertFalse("Should not be: Response was 
null","Response was null".equals(result.getFailureMessage()));
-                       assertFalse(result.isError());
-                       assertTrue(result.isFailure());         
+                       assertFalse("Not expecting error: 
"+result.getFailureMessage(),result.isError());
+                       assertTrue("Expecting failure",result.isFailure());     
        
                        
                }
 }

Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=692436&r1=692435&r2=692436&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Fri Sep  5 06:07:40 2008
@@ -89,6 +89,7 @@
 <li>Bug 45185 - CSV dataset blank delimiter causes OOM</li>
 <li>Bug 43791 - ensure QueueReceiver is closed</li>
 <li>Fix NPE (in DataSourceElement) when using JDBC in client-server mode</li>
+<li>Bug 45749 - Response Assertion does not work with a substring that is not 
a valid RE</li>
 </ul>
 
 <h3>Improvements</h3>



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

Reply via email to