diff options
author | Benjamin Dauvergne <bdauvergne@entrouvert.com> | 2010-02-17 10:15:19 +0000 |
---|---|---|
committer | Benjamin Dauvergne <bdauvergne@entrouvert.com> | 2010-02-17 10:15:19 +0000 |
commit | bdac600b56a72a9f62ccccdf598afa1981fedbec (patch) | |
tree | f8c20e512b268424d6f8d9248231c668e5c79bee | |
parent | 50063c1e9b1f018e3985d5f7711ac659f68dbd06 (diff) | |
download | lasso-bdac600b56a72a9f62ccccdf598afa1981fedbec.tar.gz lasso-bdac600b56a72a9f62ccccdf598afa1981fedbec.tar.xz lasso-bdac600b56a72a9f62ccccdf598afa1981fedbec.zip |
Current state of idwsf2 tests
-rwxr-xr-x | bindings/python/tests/idwsf2_tests.py | 103 |
1 files changed, 59 insertions, 44 deletions
diff --git a/bindings/python/tests/idwsf2_tests.py b/bindings/python/tests/idwsf2_tests.py index 10647d5f..27c4daa4 100755 --- a/bindings/python/tests/idwsf2_tests.py +++ b/bindings/python/tests/idwsf2_tests.py @@ -44,6 +44,7 @@ except NameError: idpSoapEndpoint = 'http://idp1/soapEndpoint' spSoapEndpoint = 'http://sp1/soapEndpoint' +spInteractionUrl = 'http://sp1/askMeAQuestion' class IdWsf2TestCase(unittest.TestCase): def getWspServer(self): @@ -233,8 +234,8 @@ class MetadataTestCase(IdWsf2TestCase): self.failUnless(len(wsp_disco.metadatas) == 1, 'missing svcMDID') self.failUnless(wsp_disco.metadatas[0].svcMDID, 'missing svcMDID') - def test01(self): - """Test metadata register with redirection""" + def test02(self): + "Test failure by IdP for register request" idp = self.getIdpServer() wsp = self.getWspServer() wsp_identity_dump, wsp_session_dump, idp_identity_dump, idp_session_dump, dst_epr = self.login(wsp, idp) @@ -248,12 +249,11 @@ class MetadataTestCase(IdWsf2TestCase): wsp_disco.addSimpleServiceMetadata(service_types = (lasso.PP11_HREF,), abstract = abstract, provider_id = wsp.providerId, address = spSoapEndpoint, - security_mech_ids = (lasso.SECURITY_MECH_BEARER,)) + security_mech_ids= (lasso.SECURITY_MECH_BEARER,)) self.failUnlessEqual(len(wsp_disco.metadatas), 1) metadata = wsp_disco.metadatas[0] self.failUnlessEqual(metadata.abstract, abstract) self.failUnlessEqual(metadata.providerId, wsp.providerId) - self.failUnlessEqual(len(metadata.serviceContext), 1) self.failUnlessEqual(len(metadata.serviceContext[0].serviceType), 1) self.failUnlessEqual(metadata.serviceContext[0].serviceType[0], lasso.PP11_HREF) @@ -278,42 +278,25 @@ class MetadataTestCase(IdWsf2TestCase): self.failUnless(idp_disco is not None) idp_disco.processRequestMsg(wsp_disco.msgBody) self.failUnless(idp_disco.request is not None) - self.failUnlessEqual(len(idp_disco.request.svcMD), 1) - self.failUnless(idp_disco.request.svcMD[0].svcMDID is None) - idp_disco.validateRequest() + idp_disco.failRequest(lasso.IDWSF2_DISCOVERY_STATUS_CODE_FAILED, lasso.IDWSF2_DISCOVERY_STATUS_CODE_FORBIDDEN) self.failUnless(idp_disco.response is not None) - self.failUnlessEqual(len(idp_disco.metadatas), 1) - metadata = idp_disco.metadatas[0] - self.failUnlessEqual(metadata.abstract, abstract) - self.failUnlessEqual(metadata.providerId, wsp.providerId) - self.failUnlessEqual(len(metadata.serviceContext), 1) - self.failUnlessEqual(len(metadata.serviceContext[0].serviceType), 1) - self.failUnlessEqual(metadata.serviceContext[0].serviceType[0], - lasso.PP11_HREF) - self.failUnlessEqual(len(metadata.serviceContext[0].endpointContext), 1) - self.failUnlessEqual( - len(metadata.serviceContext[0].endpointContext[0].address), - 1) - self.failUnlessEqual(metadata.serviceContext[0].endpointContext[0].address[0], - spSoapEndpoint) - self.failUnlessEqual( - len(metadata.serviceContext[0].endpointContext[0].securityMechId), - 1) - self.failUnlessEqual( - metadata.serviceContext[0].endpointContext[0].securityMechId[0], - lasso.SECURITY_MECH_BEARER) + self.failUnless(idp_disco.response.status is not None) + self.failUnless(idp_disco.response.status.code is not lasso.IDWSF2_DISCOVERY_STATUS_CODE_FAILED) + self.failUnlessEqual(len(idp_disco.response.status.status), 1) + self.failUnless(idp_disco.response.status.status[0].code is not lasso.IDWSF2_DISCOVERY_STATUS_CODE_FORBIDDEN) idp_disco.buildResponseMsg() - self.failUnless(metadata.svcMDID is not None) self.failUnless(idp_disco.msgUrl is None) self.failUnless(idp_disco.msgBody is not None) - wsp_disco.processResponseMsg(idp_disco.msgBody) - - self.failUnless(len(wsp_disco.metadatas) == 1, 'missing svcMDID') - self.failUnless(wsp_disco.metadatas[0].svcMDID, 'missing svcMDID') + try: + wsp_disco.processResponseMsg(idp_disco.msgBody) + except lasso.Idwsf2DiscoveryForbiddenError: + pass + except lasso.Error, e: + self.fail(e) - def test02(self): - "Test failure by IdP for register request" + def test03(self): + """Test metadata register with redirection""" idp = self.getIdpServer() wsp = self.getWspServer() wsp_identity_dump, wsp_session_dump, idp_identity_dump, idp_session_dump, dst_epr = self.login(wsp, idp) @@ -323,15 +306,21 @@ class MetadataTestCase(IdWsf2TestCase): abstract = 'Personal Profile service' wsp_disco.initMetadataRegister() + soap_envelope = wsp_disco.getSoapEnvelopeRequest() + soap_envelope.setSb2UserInteractionHint(lasso.IDWSF2_SB2_USER_INTERACTION_HINT_INTERACT_IF_NEEDED) + self.failUnless(isinstance(soap_envelope.header, lasso.SoapHeader)) + self.failUnless(len(soap_envelope.header.other) > 0) + self.failUnlessEqual(soap_envelope.getSb2UserInteractionHint(), lasso.IDWSF2_SB2_USER_INTERACTION_HINT_INTERACT_IF_NEEDED) self.failUnless(wsp_disco.request is not None) wsp_disco.addSimpleServiceMetadata(service_types = (lasso.PP11_HREF,), abstract = abstract, provider_id = wsp.providerId, address = spSoapEndpoint, - security_mech_ids= (lasso.SECURITY_MECH_BEARER,)) + security_mech_ids = (lasso.SECURITY_MECH_BEARER,)) self.failUnlessEqual(len(wsp_disco.metadatas), 1) metadata = wsp_disco.metadatas[0] self.failUnlessEqual(metadata.abstract, abstract) self.failUnlessEqual(metadata.providerId, wsp.providerId) + self.failUnlessEqual(len(metadata.serviceContext), 1) self.failUnlessEqual(len(metadata.serviceContext[0].serviceType), 1) self.failUnlessEqual(metadata.serviceContext[0].serviceType[0], lasso.PP11_HREF) @@ -351,28 +340,54 @@ class MetadataTestCase(IdWsf2TestCase): wsp_disco.buildRequestMsg() self.failUnlessEqual(wsp_disco.msgUrl, idpSoapEndpoint) self.failUnless(wsp_disco.msgBody is not None) - print wsp_disco.dump() idp_disco = lasso.IdWsf2Discovery(idp) self.failUnless(idp_disco is not None) idp_disco.processRequestMsg(wsp_disco.msgBody) self.failUnless(idp_disco.request is not None) - idp_disco.failRequest(lasso.IDWSF2_DISCOVERY_STATUS_CODE_FAILED, lasso.IDWSF2_DISCOVERY_STATUS_CODE_FORBIDDEN) - self.failUnless(idp_disco.response is not None) - self.failUnless(idp_disco.response.status is not None) - self.failUnless(idp_disco.response.status.code is not lasso.IDWSF2_DISCOVERY_STATUS_CODE_FAILED) - self.failUnlessEqual(len(idp_disco.response.status.status), 1) - self.failUnless(idp_disco.response.status.status[0].code is not lasso.IDWSF2_DISCOVERY_STATUS_CODE_FORBIDDEN) - idp_disco.buildResponseMsg() + self.failUnlessEqual(len(idp_disco.request.svcMD), 1) + self.failUnless(idp_disco.request.svcMD[0].svcMDID is None) + soap_envelope = idp_disco.getSoapEnvelopeRequest() + self.failUnless(soap_envelope is not None) + self.failUnless(soap_envelope.getMessageId() is not None) + # redirect + interactionUrl = spInteractionUrl + idp_disco.redirectUserForInteraction(interactionUrl, False) + response = idp_disco.response + self.failUnless(isinstance(response, lasso.SoapFault)) + self.failUnless(response.detail is not None) + self.failUnlessEqual(len(response.detail.any), 1) + self.failUnless(isinstance(response.detail.any[0], lasso.IdWsf2Sb2RedirectRequest)) + self.failUnless(response.detail.any[0].redirectURL.startswith(interactionUrl + '?transactionID=')) + try: + idp_disco.buildResponseMsg() + except lasso.Error, e: + self.fail(e) + self.failUnless(idp_disco.msgBody is not None) + + self.failUnless(idp_disco.msgUrl is None) self.failUnless(idp_disco.msgBody is not None) try: wsp_disco.processResponseMsg(idp_disco.msgBody) - except lasso.Idwsf2DiscoveryForbiddenError: + except lasso.WsfprofileRedirectRequestError: pass except lasso.Error, e: self.fail(e) + response_envelope = wsp_disco.getSoapEnvelopeResponse() + self.failUnless(response_envelope.sb2GetRedirectRequestUrl().startswith(interactionUrl + '?transactionID=')) + # Here keep information about the request associated to ID: response_envelope.getMessageId().content + wsp_disco_dump = wsp_disco.dump() + print wsp_disco_dump + wsp_disco = lasso.Node.newFromDump(wsp_disco_dump) + request_envelope = wsp_disco.getSoapEnvelopeRequest() + self.failUnless(request_envelope is not None) + relates_to = request_envelope.getRelatesTo(True) + self.failUnless(relates_to is not None) + relates_to.content = response_envelope.getMessageId().content + wsp_disco.buildRequestMsg() + print wsp_disco.msgBody, wsp_disco.msgUrl class MetadataAssociationAddTestCase(IdWsf2TestCase): def test01(self): |