[java-idp-testbed COMMIT] in /trunk/src/test/java/idp: saml1/AbstractSAML1FlowTest.java saml1/SAML1AttributeQueryFlow...

noreply at shibboleth.net noreply at shibboleth.net
Mon Jun 2 18:48:59 EDT 2014


Author: tzeller
Date: Mon Jun  2 18:48:58 2014
New Revision: 253

URL: http://svn.shibboleth.net/view/java-idp-testbed?rev=253&view=rev
Log:
Tests for attribute queries without an SP credential.

Modified:
    trunk/src/test/java/idp/saml1/AbstractSAML1FlowTest.java
    trunk/src/test/java/idp/saml1/SAML1AttributeQueryFlowTest.java
    trunk/src/test/java/idp/saml2/AbstractSAML2FlowTest.java
    trunk/src/test/java/idp/saml2/SAML2AttributeQueryFlowTest.java

Modified: trunk/src/test/java/idp/saml1/AbstractSAML1FlowTest.java
URL: http://svn.shibboleth.net/view/java-idp-testbed/trunk/src/test/java/idp/saml1/AbstractSAML1FlowTest.java?rev=253&r1=252&r2=253&view=diff
==============================================================================
--- trunk/src/test/java/idp/saml1/AbstractSAML1FlowTest.java (original)
+++ trunk/src/test/java/idp/saml1/AbstractSAML1FlowTest.java Mon Jun  2 18:48:58 2014
@@ -23,6 +23,7 @@
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
+import javax.xml.namespace.QName;
 
 import net.shibboleth.idp.saml.xml.SAMLConstants;
 
@@ -56,6 +57,12 @@
 @ContextConfiguration({"/system/conf/testbed-beans.xml", })
 public abstract class AbstractSAML1FlowTest extends AbstractFlowTest {
 
+    /** The expected status code.*/
+    protected QName statusCode = StatusCode.SUCCESS;
+    
+    /** The expected status message when an error occurs. */
+    protected String statusMessage = "An error occurred.";
+    
     /**
      * Top level validation of the {@link FlowExecutionResult}.
      * <p>
@@ -96,6 +103,11 @@
         assertResponse(response);
         
         assertStatus(response.getStatus());
+        
+        // short circuit validation upon error
+        if (statusCode != StatusCode.SUCCESS) {
+            return;
+        }
 
         final List<Assertion> assertions = response.getAssertions();
         assertAssertions(assertions);
@@ -242,7 +254,10 @@
     public void assertStatus(@Nullable final Status status) {
         Assert.assertNotNull(status);
         Assert.assertNotNull(status.getStatusCode());
-        Assert.assertEquals(status.getStatusCode().getValue(), StatusCode.SUCCESS);
+        Assert.assertEquals(status.getStatusCode().getValue(), statusCode);
+        if (statusCode != StatusCode.SUCCESS) {
+            Assert.assertEquals(status.getStatusMessage().getMessage(), statusMessage);
+        }
     }
 
     /**

Modified: trunk/src/test/java/idp/saml1/SAML1AttributeQueryFlowTest.java
URL: http://svn.shibboleth.net/view/java-idp-testbed/trunk/src/test/java/idp/saml1/SAML1AttributeQueryFlowTest.java?rev=253&r1=252&r2=253&view=diff
==============================================================================
--- trunk/src/test/java/idp/saml1/SAML1AttributeQueryFlowTest.java (original)
+++ trunk/src/test/java/idp/saml1/SAML1AttributeQueryFlowTest.java Mon Jun  2 18:48:58 2014
@@ -31,6 +31,7 @@
 import org.opensaml.saml.saml1.core.NameIdentifier;
 import org.opensaml.saml.saml1.core.Request;
 import org.opensaml.saml.saml1.core.Response;
+import org.opensaml.saml.saml1.core.StatusCode;
 import org.opensaml.saml.saml1.core.Subject;
 import org.opensaml.saml.saml1.profile.SAML1ActionTestingSupport;
 import org.opensaml.security.messaging.ServletRequestX509CredentialAdapter;
@@ -61,12 +62,38 @@
     @Test public void testSAML1AttributeQueryFlow() throws Exception {
 
         buildRequest();
-        
+
+        request.setAttribute(ServletRequestX509CredentialAdapter.X509_CERT_REQUEST_ATTRIBUTE,
+                new X509Certificate[] {certFactoryBean.getObject()});
+
         overrideEndStateOutput(FLOW_ID);
 
         final FlowExecutionResult result = flowExecutor.launchExecution(FLOW_ID, null, externalContext);
 
         validateResult(result, FLOW_ID);
+    }
+
+    /**
+     * Test the SAML1 Attribute Query flow without an SP credential.
+     * 
+     * @throws Exception if an error occurs
+     */
+    @Test public void testSAML1AttributeQueryFlowNoCredential() throws Exception {
+        try {
+            // expect an error
+            statusCode = StatusCode.REQUESTER;
+
+            buildRequest();
+
+            overrideEndStateOutput(FLOW_ID);
+
+            final FlowExecutionResult result = flowExecutor.launchExecution(FLOW_ID, null, externalContext);
+
+            validateResult(result, FLOW_ID);
+        } finally {
+            // reset expectation of success
+            statusCode = StatusCode.SUCCESS;
+        }
     }
 
     /**
@@ -89,8 +116,6 @@
                         parserPool.newDocument()));
 
         request.setMethod("POST");
-        request.setAttribute(ServletRequestX509CredentialAdapter.X509_CERT_REQUEST_ATTRIBUTE,
-                new X509Certificate[] {certFactoryBean.getObject()});
         request.setContent(requestContent.getBytes("UTF-8"));
     }
 

Modified: trunk/src/test/java/idp/saml2/AbstractSAML2FlowTest.java
URL: http://svn.shibboleth.net/view/java-idp-testbed/trunk/src/test/java/idp/saml2/AbstractSAML2FlowTest.java?rev=253&r1=252&r2=253&view=diff

[... 136 lines stripped ...]


More information about the commits mailing list