Author: sebb
Date: Tue Jun 29 23:24:05 2010
New Revision: 959141

URL: http://svn.apache.org/viewvc?rev=959141&view=rev
Log:
Bug 38387  - Add SMIME Assertion
Add message position option

Modified:
    
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/SMIMEAssertion.java
    
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/SMIMEAssertionTestElement.java
    
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/SMIMEAssertionGui.java

Modified: 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/SMIMEAssertion.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/SMIMEAssertion.java?rev=959141&r1=959140&r2=959141&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/SMIMEAssertion.java
 (original)
+++ 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/SMIMEAssertion.java
 Tue Jun 29 23:24:05 2010
@@ -65,9 +65,16 @@ public class SMIMEAssertion {
     public static AssertionResult getResult(SMIMEAssertionTestElement 
testElement, SampleResult response, String name) {
         checkForBouncycastle();
         AssertionResult res = new AssertionResult(name);
-
         try {
-            MimeMessage msg = getMessageFromResponse(response, 0);
+            MimeMessage msg = null;
+            final int msgPos = testElement.getSpecificMessagePositionAsInt();
+            if (msgPos < 0){ // means counting from end
+                SampleResult subResults[] = response.getSubResults();
+                msg = getMessageFromResponse(response,subResults.length + 
msgPos);
+            } else {
+                msg = getMessageFromResponse(response, msgPos);
+            }
+            
             SMIMESignedParser s = null;
             if (msg.isMimeType("multipart/signed")) {
                 MimeMultipart multipart = (MimeMultipart) msg.getContent();

Modified: 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/SMIMEAssertionTestElement.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/SMIMEAssertionTestElement.java?rev=959141&r1=959140&r2=959141&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/SMIMEAssertionTestElement.java
 (original)
+++ 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/SMIMEAssertionTestElement.java
 Tue Jun 29 23:24:05 2010
@@ -22,8 +22,6 @@ import java.io.Serializable;
 
 import org.apache.jmeter.samplers.SampleResult;
 import org.apache.jmeter.testelement.AbstractTestElement;
-import org.apache.jmeter.testelement.property.BooleanProperty;
-import org.apache.jmeter.testelement.property.StringProperty;
 import org.apache.jmeter.util.JMeterUtils;
 
 public class SMIMEAssertionTestElement extends AbstractTestElement implements
@@ -31,25 +29,19 @@ public class SMIMEAssertionTestElement e
 
     private static final long serialVersionUID = 1L;
 
-    private static final String VERIFY_SIGNATURE_KEY = 
"SMIMEAssertionTestElement.verifySignature";
-
-    private static final String NOT_SIGNED_KEY = 
"SMIMEAssertionTestElement.notSigned";
-
-    private static final String SIGNER_NO_CHECK_KEY = 
"SMIMEAssertionTestElement.signerNoCheck";
-
-    private static final String SIGNER_CHECK_BY_FILE_KEY = 
"SMIMEAssertionTestElement.signerCheckByFile";
-
-    private static final String SIGNER_CERT_FILE_KEY = 
"SMIMEAssertionTestElement.signerCertFile";
-
-    private static final String SINGER_CHECK_CONSTRAINTS_KEY = 
"SMIMEAssertionTestElement.signerCheckConstraints";
-
-    private static final String SIGNER_SERIAL_KEY = 
"SMIMEAssertionTestElement.signerSerial";
-
-    private static final String SIGNER_EMAIL_KEY = 
"SMIMEAssertionTestElement.signerEmail";
-
-    private static final String SIGNER_DN_KEY = 
"SMIMEAssertionTestElement.signerDn";
-
-    private static final String ISSUER_DN_KEY = 
"SMIMEAssertionTestElement.issuerDn";
+    //+JMX file attributes - do not change values!
+    private static final String VERIFY_SIGNATURE_KEY         = 
"verifySignature"; // $NON-NLS-1$
+    private static final String NOT_SIGNED_KEY               = "notSigned"; // 
$NON-NLS-1$
+    private static final String SIGNER_NO_CHECK_KEY          = 
"signerNoCheck"; // $NON-NLS-1$
+    private static final String SIGNER_CHECK_BY_FILE_KEY     = 
"signerCheckByFile"; // $NON-NLS-1$
+    private static final String SIGNER_CERT_FILE_KEY         = 
"signerCertFile"; // $NON-NLS-1$
+    private static final String SINGER_CHECK_CONSTRAINTS_KEY = 
"signerCheckConstraints"; // $NON-NLS-1$
+    private static final String SIGNER_SERIAL_KEY            = "signerSerial"; 
// $NON-NLS-1$
+    private static final String SIGNER_EMAIL_KEY             = "signerEmail"; 
// $NON-NLS-1$
+    private static final String SIGNER_DN_KEY                = "signerDn"; // 
$NON-NLS-1$
+    private static final String ISSUER_DN_KEY                = "issuerDn"; // 
$NON-NLS-1$
+    private static final String MESSAGE_POSITION             = 
"messagePosition"; // $NON-NLS-1$
+    //-JMX file attributes
 
     public SMIMEAssertionTestElement() {
         super();
@@ -72,7 +64,7 @@ public class SMIMEAssertionTestElement e
     }
 
     public void setVerifySignature(boolean verifySignature) {
-        setProperty(new BooleanProperty(VERIFY_SIGNATURE_KEY, 
verifySignature));
+        setProperty(VERIFY_SIGNATURE_KEY, verifySignature);
     }
 
     public String getIssuerDn() {
@@ -80,7 +72,7 @@ public class SMIMEAssertionTestElement e
     }
 
     public void setIssuerDn(String issuertDn) {
-        setProperty(new StringProperty(ISSUER_DN_KEY, issuertDn));
+        setProperty(ISSUER_DN_KEY, issuertDn);
     }
 
     public boolean isSignerCheckByFile() {
@@ -88,8 +80,7 @@ public class SMIMEAssertionTestElement e
     }
 
     public void setSignerCheckByFile(boolean signerCheckByFile) {
-        setProperty(new BooleanProperty(SIGNER_CHECK_BY_FILE_KEY,
-                signerCheckByFile));
+        setProperty(SIGNER_CHECK_BY_FILE_KEY, signerCheckByFile);
     }
 
     public boolean isSignerCheckConstraints() {
@@ -97,8 +88,7 @@ public class SMIMEAssertionTestElement e
     }
 
     public void setSignerCheckConstraints(boolean signerCheckConstraints) {
-        setProperty(new BooleanProperty(SINGER_CHECK_CONSTRAINTS_KEY,
-                signerCheckConstraints));
+        setProperty(SINGER_CHECK_CONSTRAINTS_KEY, signerCheckConstraints);
     }
 
     public boolean isSignerNoCheck() {
@@ -106,7 +96,7 @@ public class SMIMEAssertionTestElement e
     }
 
     public void setSignerNoCheck(boolean signerNoCheck) {
-        setProperty(new BooleanProperty(SIGNER_NO_CHECK_KEY, signerNoCheck));
+        setProperty(SIGNER_NO_CHECK_KEY, signerNoCheck);
     }
 
     public String getSignerCertFile() {
@@ -114,7 +104,7 @@ public class SMIMEAssertionTestElement e
     }
 
     public void setSignerCertFile(String signerCertFile) {
-        setProperty(new StringProperty(SIGNER_CERT_FILE_KEY, signerCertFile));
+        setProperty(SIGNER_CERT_FILE_KEY, signerCertFile);
     }
 
     public String getSignerDn() {
@@ -122,7 +112,7 @@ public class SMIMEAssertionTestElement e
     }
 
     public void setSignerDn(String signerDn) {
-        setProperty(new StringProperty(SIGNER_DN_KEY, signerDn));
+        setProperty(SIGNER_DN_KEY, signerDn);
     }
 
     public String getSignerSerial() {
@@ -130,7 +120,7 @@ public class SMIMEAssertionTestElement e
     }
 
     public void setSignerSerial(String signerSerial) {
-        setProperty(new StringProperty(SIGNER_SERIAL_KEY, signerSerial));
+        setProperty(SIGNER_SERIAL_KEY, signerSerial);
     }
 
     public String getSignerEmail() {
@@ -138,7 +128,7 @@ public class SMIMEAssertionTestElement e
     }
 
     public void setSignerEmail(String signerEmail) {
-        setProperty(new StringProperty(SIGNER_EMAIL_KEY, signerEmail));
+        setProperty(SIGNER_EMAIL_KEY, signerEmail);
     }
 
     public boolean isNotSigned() {
@@ -146,7 +136,18 @@ public class SMIMEAssertionTestElement e
     }
 
     public void setNotSigned(boolean notSigned) {
-        setProperty(new BooleanProperty(NOT_SIGNED_KEY, notSigned));
+        setProperty(NOT_SIGNED_KEY, notSigned);
     }
 
+    public String getSpecificMessagePosition() {
+        return getPropertyAsString(MESSAGE_POSITION);
+    }
+    
+    public int getSpecificMessagePositionAsInt() {
+        return getPropertyAsInt(MESSAGE_POSITION, 0);
+    }
+    
+    public void setSpecificMessagePosition(String position) {
+        setProperty(MESSAGE_POSITION, position);
+    }
 }

Modified: 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/SMIMEAssertionGui.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/SMIMEAssertionGui.java?rev=959141&r1=959140&r2=959141&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/SMIMEAssertionGui.java
 (original)
+++ 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/SMIMEAssertionGui.java
 Tue Jun 29 23:24:05 2010
@@ -40,25 +40,32 @@ import org.apache.jorphan.gui.layout.Ver
  
     private static final long serialVersionUID = 1L;
 
-    private JCheckBox verifySignature = new JCheckBox();
+    private final JCheckBox verifySignature = 
+        new 
JCheckBox(JMeterUtils.getResString("smime_assertion_verify_signature")); // 
$NON-NLS-1$
  
-    private JCheckBox notSigned = new JCheckBox();
+    private final JCheckBox notSigned = 
+        new JCheckBox(JMeterUtils.getResString("smime_assertion_not_signed")); 
// $NON-NLS-1$
  
-    private JRadioButton signerNoCheck = new JRadioButton();
+    private final JRadioButton signerNoCheck = 
+        new 
JRadioButton(JMeterUtils.getResString("smime_assertion_signer_no_check")); // 
$NON-NLS-1$
  
-    private JRadioButton signerCheckConstraints = new JRadioButton();
+    private final JRadioButton signerCheckConstraints = 
+        new 
JRadioButton(JMeterUtils.getResString("smime_assertion_signer_constraints")); 
// $NON-NLS-1$
  
-    private JRadioButton signerCheckByFile = new JRadioButton();
+    private final JRadioButton signerCheckByFile = 
+        new 
JRadioButton(JMeterUtils.getResString("smime_assertion_signer_by_file")); // 
$NON-NLS-1$
  
-    private JTextField signerDnField = new JTextField();
+    private final JTextField signerDnField = new JTextField(25);
  
-    private JTextField signerSerialNumberField = new JTextField();
+    private final JTextField signerSerialNumberField = new JTextField(25);
  
-    private JTextField signerEmailField = new JTextField();
+    private final JTextField signerEmailField = new JTextField(25);
  
-    private JTextField issuerDnField = new JTextField();
+    private final JTextField issuerDnField = new JTextField(25);
  
-    private JTextField signerCertFile = new JTextField();
+    private final JTextField signerCertFile = new JTextField(25);
+    
+    private final JTextField messagePositionTf = new JTextField(25);
  
     public SMIMEAssertionGui() {
         init();
@@ -76,19 +83,14 @@ import org.apache.jorphan.gui.layout.Ver
         box.add(makeTitlePanel());
         box.add(createSignaturePanel());
         box.add(createSignerPanel());
+        box.add(createMessagePositionPanel());
         add(box, BorderLayout.NORTH);
     }
  
     private JPanel createSignaturePanel() {
         JPanel panel = new JPanel();
         panel.setBorder(BorderFactory.createTitledBorder(JMeterUtils
-            .getResString("smime_assertion_signature")));
-  
-        verifySignature = new JCheckBox(JMeterUtils
-            .getResString("smime_assertion_verify_signature"));
- 
-        notSigned = new JCheckBox(JMeterUtils
-            .getResString("smime_assertion_not_signed"));
+            .getResString("smime_assertion_signature"))); // $NON-NLS-1$
         notSigned.addChangeListener(new ChangeListener() {
             public void stateChanged(ChangeEvent e) {
                 verifySignature.setEnabled(!notSigned.isSelected());
@@ -104,19 +106,10 @@ import org.apache.jorphan.gui.layout.Ver
     private JPanel createSignerPanel() {
         JPanel panel = new JPanel();
         panel.setBorder(BorderFactory.createTitledBorder(JMeterUtils
-            .getResString("smime_assertion_signer")));
+            .getResString("smime_assertion_signer"))); // $NON-NLS-1$
  
         panel.setLayout(new VerticalLayout(5, VerticalLayout.LEFT));
  
-        signerNoCheck = new JRadioButton(JMeterUtils
-            .getResString("smime_assertion_signer_no_check"));
-        signerCheckConstraints = new JRadioButton(JMeterUtils
-            .getResString("smime_assertion_signer_constraints"));
-        signerCheckByFile = new JRadioButton(JMeterUtils
-            .getResString("smime_assertion_signer_by_file"));
- 
-        signerCertFile = new JTextField(25);
- 
         ButtonGroup buttonGroup = new ButtonGroup();
         buttonGroup.add(signerNoCheck);
         buttonGroup.add(signerCheckConstraints);
@@ -128,42 +121,32 @@ import org.apache.jorphan.gui.layout.Ver
         signerCheckConstraints.addChangeListener(new ChangeListener() {
             public void stateChanged(ChangeEvent e) {
                 signerDnField.setEnabled(signerCheckConstraints.isSelected());
-                signerSerialNumberField.setEnabled(signerCheckConstraints
-                    .isSelected());
-                signerEmailField
-                    .setEnabled(signerCheckConstraints.isSelected());
+                
signerSerialNumberField.setEnabled(signerCheckConstraints.isSelected());
+                
signerEmailField.setEnabled(signerCheckConstraints.isSelected());
                 issuerDnField.setEnabled(signerCheckConstraints.isSelected());
             }
         });
         Box box = Box.createHorizontalBox();
-        box.add(new JLabel(JMeterUtils
-            .getResString("smime_assertion_signer_dn")));
+        box.add(new 
JLabel(JMeterUtils.getResString("smime_assertion_signer_dn"))); // $NON-NLS-1$
         box.add(Box.createHorizontalStrut(5));
-        signerDnField = new JTextField(25);
         box.add(signerDnField);
         panel.add(box);
  
         box = Box.createHorizontalBox();
-        box.add(new JLabel(JMeterUtils
-            .getResString("smime_assertion_signer_email")));
+        box.add(new 
JLabel(JMeterUtils.getResString("smime_assertion_signer_email"))); // 
$NON-NLS-1$
         box.add(Box.createHorizontalStrut(5));
-        signerEmailField = new JTextField(25);
         box.add(signerEmailField);
         panel.add(box);
  
         box = Box.createHorizontalBox();
-        box.add(new JLabel(JMeterUtils
-            .getResString("smime_assertion_issuer_dn")));
+        box.add(new 
JLabel(JMeterUtils.getResString("smime_assertion_issuer_dn"))); // $NON-NLS-1$
         box.add(Box.createHorizontalStrut(5));
-        issuerDnField = new JTextField(25);
         box.add(issuerDnField);
         panel.add(box);
  
         box = Box.createHorizontalBox();
-        box.add(new JLabel(JMeterUtils
-            .getResString("smime_assertion_signer_serial")));
+        box.add(new 
JLabel(JMeterUtils.getResString("smime_assertion_signer_serial"))); // 
$NON-NLS-1$
         box.add(Box.createHorizontalStrut(5));
-        signerSerialNumberField = new JTextField(25);
         box.add(signerSerialNumberField);
         panel.add(box);
  
@@ -182,6 +165,13 @@ import org.apache.jorphan.gui.layout.Ver
         return panel;
     }
  
+    private JPanel createMessagePositionPanel(){
+        JPanel panel = new JPanel();
+        panel.setBorder(BorderFactory.createTitledBorder(JMeterUtils
+            .getResString("smime_assertion_message_position"))); // $NON-NLS-1$
+        panel.add(messagePositionTf);
+        return panel;
+    }
     @Override
     public void configure(TestElement el) {
         super.configure(el);
@@ -189,12 +179,15 @@ import org.apache.jorphan.gui.layout.Ver
         verifySignature.setSelected(smimeAssertion.isVerifySignature());
         notSigned.setSelected(smimeAssertion.isNotSigned());
  
-        if (smimeAssertion.isSignerNoCheck())
+        if (smimeAssertion.isSignerNoCheck()) {
             signerNoCheck.setSelected(true);
-        if (smimeAssertion.isSignerCheckConstraints())
+        }
+        if (smimeAssertion.isSignerCheckConstraints()) {
             signerCheckConstraints.setSelected(true);
-        if (smimeAssertion.isSignerCheckByFile())
+        }
+        if (smimeAssertion.isSignerCheckByFile()) {
             signerCheckByFile.setSelected(true);
+        }
  
         issuerDnField.setText(smimeAssertion.getIssuerDn());
         signerDnField.setText(smimeAssertion.getSignerDn());
@@ -202,6 +195,7 @@ import org.apache.jorphan.gui.layout.Ver
         signerEmailField.setText(smimeAssertion.getSignerEmail());
  
         signerCertFile.setText(smimeAssertion.getSignerCertFile());
+        messagePositionTf.setText(smimeAssertion.getSpecificMessagePosition());
     }
  
     public void modifyTestElement(TestElement el) {
@@ -218,9 +212,9 @@ import org.apache.jorphan.gui.layout.Ver
         smimeAssertion.setSignerCertFile(signerCertFile.getText());
  
         smimeAssertion.setSignerNoCheck(signerNoCheck.isSelected());
-        smimeAssertion.setSignerCheckConstraints(signerCheckConstraints
-                .isSelected());
+        
smimeAssertion.setSignerCheckConstraints(signerCheckConstraints.isSelected());
         smimeAssertion.setSignerCheckByFile(signerCheckByFile.isSelected());
+        smimeAssertion.setSpecificMessagePosition(messagePositionTf.getText());
     }
  
     public TestElement createTestElement() {
@@ -229,4 +223,4 @@ import org.apache.jorphan.gui.layout.Ver
         return smimeAssertion;
     }
  
- }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to