From d072121b1725616dda8328d0997b64c9012c1174 Mon Sep 17 00:00:00 2001 From: Thijs Kinkhorst <thijs@kinkhorst.com> Date: Thu, 27 Oct 2016 13:05:27 +0200 Subject: [PATCH] Add unit test for AttributeConsumingService parsing. (#501) --- .../SimpleSAML/Metadata/SAMLParserTest.php | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/tests/lib/SimpleSAML/Metadata/SAMLParserTest.php b/tests/lib/SimpleSAML/Metadata/SAMLParserTest.php index af14bd13d..85cb0858b 100644 --- a/tests/lib/SimpleSAML/Metadata/SAMLParserTest.php +++ b/tests/lib/SimpleSAML/Metadata/SAMLParserTest.php @@ -85,4 +85,48 @@ XML $metadata = $entities['subEntityIdOverride']->getMetadata20SP(); $this->assertEquals($expected, $metadata['RegistrationInfo']); } + + /** + * Test AttributeConsumingService is parsed + */ + public function testAttributeConsumingServiceParsing() + { + $document = \SAML2\DOMDocumentFactory::fromString( + <<<XML +<EntitiesDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:mdrpi="urn:oasis:names:tc:SAML:metadata:rpi"> + <EntityDescriptor entityID="theEntityID"> + <Extensions> + <mdrpi:RegistrationInfo registrationAuthority="https://incommon.org"/> + </Extensions> + <SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"> + <AttributeConsumingService index="0"> + <ServiceName xml:lang="en">Example service</ServiceName> + <ServiceDescription xml:lang="nl">Dit is een voorbeeld voor de unittest.</ServiceDescription> + + <RequestedAttribute FriendlyName="eduPersonPrincipalName" Name="urn:mace:dir:attribute-def:eduPersonPrincipalName" NameFormat="urn:mace:shibboleth:1.0:attributeNamespace:uri" isRequired="true"/> + <RequestedAttribute FriendlyName="mail" Name="urn:mace:dir:attribute-def:mail" NameFormat="urn:mace:shibboleth:1.0:attributeNamespace:uri"/> + <RequestedAttribute FriendlyName="displayName" Name="urn:mace:dir:attribute-def:displayName" NameFormat="urn:mace:shibboleth:1.0:attributeNamespace:uri"/> + </AttributeConsumingService> + </SPSSODescriptor> + + </EntityDescriptor> +</EntitiesDescriptor> +XML + ); + + $entities = \SimpleSAML_Metadata_SAMLParser::parseDescriptorsElement($document->documentElement); + $this->assertArrayHasKey('theEntityID', $entities); + + $metadata = $entities['theEntityID']->getMetadata20SP(); + + $this->assertEquals("Example service", $metadata['name']['en']); + $this->assertEquals("Dit is een voorbeeld voor de unittest.", $metadata['description']['nl']); + + $expected_a = array("urn:mace:dir:attribute-def:eduPersonPrincipalName", "urn:mace:dir:attribute-def:mail", "urn:mace:dir:attribute-def:displayName"); + $expected_r = array("urn:mace:dir:attribute-def:eduPersonPrincipalName"); + + $this->assertEquals($expected_a, $metadata['attributes']); + $this->assertEquals($expected_r, $metadata['attributes.required']); + } + } -- GitLab