public function test__deserialize_request01() { $context = new DeserializationContext(); $context->getDocument()->load(__DIR__ . '/../../../../../../resources/sample/Request/request01.xml'); $request = new AuthnRequest(); $request->deserialize($context->getDocument()->firstChild, $context); $this->assertEquals('_8dcc6985f6d9f385f0bbd4562ef848ef3ae78d87d7', $request->getID()); $this->assertEquals('2.0', $request->getVersion()); $this->assertEquals('2013-10-10T15:26:20Z', $request->getIssueInstantString()); $this->assertEquals('https://login.windows.net/554fadfe-f04f-4975-90cb-ddc8b147aaa2/saml2', $request->getDestination()); $this->assertEquals('https://mt.evo.team/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp', $request->getAssertionConsumerServiceURL()); $this->assertEquals(SamlConstants::BINDING_SAML2_HTTP_POST, $request->getProtocolBinding()); $this->assertNotNull($request->getIssuer()); $this->assertEquals('https://mt.evo.team/simplesaml/module.php/saml/sp/metadata.php/default-sp', $request->getIssuer()->getValue()); $this->assertNotNull($request->getNameIDPolicy()); $this->assertEquals(SamlConstants::NAME_ID_FORMAT_PERSISTENT, $request->getNameIDPolicy()->getFormat()); $this->assertTrue($request->getNameIDPolicy()->getAllowCreate()); }
public function test_finds_acs_endpoint_and_sets_outbounding_authn_request_acs_url() { $action = new ACSUrlAction($loggerMock = TestHelper::getLoggerMock($this), $endpointResolverMock = $this->getEndpointResolverMock()); $context = new ProfileContext(Profiles::SSO_SP_SEND_AUTHN_REQUEST, ProfileContext::ROLE_SP); $context->getOwnEntityContext()->setEntityDescriptor($entityDescriptorMock = $this->getEntityDescriptorMock()); $entityDescriptorMock->expects($this->once())->method('getAllEndpoints')->willReturn([TestHelper::getEndpointReferenceMock($this, $endpoint = new AssertionConsumerService('http://localhost/acs'))]); $endpointResolverMock->expects($this->once())->method('resolve')->with($this->isInstanceOf(CriteriaSet::class), $this->isType('array'))->willReturnCallback(function (CriteriaSet $criteriaSet, array $candidates) { $this->assertTrue($criteriaSet->has(DescriptorTypeCriteria::class)); $this->assertEquals(SpSsoDescriptor::class, $criteriaSet->getSingle(DescriptorTypeCriteria::class)->getDescriptorType()); $this->assertTrue($criteriaSet->has(ServiceTypeCriteria::class)); $this->assertEquals(AssertionConsumerService::class, $criteriaSet->getSingle(ServiceTypeCriteria::class)->getServiceType()); $this->assertTrue($criteriaSet->has(BindingCriteria::class)); $this->assertEquals([SamlConstants::BINDING_SAML2_HTTP_POST], $criteriaSet->getSingle(BindingCriteria::class)->getAllBindings()); return $candidates; }); $context->getOutboundContext()->setMessage($authnRequest = new AuthnRequest()); $action->execute($context); $this->assertEquals($endpoint->getLocation(), $authnRequest->getAssertionConsumerServiceURL()); }