@@ -40,7 +40,6 @@ public function testRegistrationInfo(): void
4040XML
4141 );
4242
43-
4443 $ entities = SAMLParser::parseDescriptorsElement ($ document ->documentElement );
4544 $ this ->assertArrayHasKey ('theEntityID ' , $ entities );
4645 // RegistrationInfo is accessible in the SP or IDP metadata accessors
@@ -102,6 +101,72 @@ public function testRegistrationInfoInheritance(): void
102101 }
103102
104103
104+ /**
105+ * Test Registration Info is parsed
106+ */
107+ public function testRegistrationPolicy (): void
108+ {
109+ $ expected = [
110+ 'authority ' => 'https://safire.ac.za ' ,
111+ 'policies ' => [ 'en ' => 'https://safire.ac.za/safire/policy/mrps/v20190207.html ' ],
112+ ];
113+
114+ $ document = DOMDocumentFactory::fromString (
115+ <<<XML
116+ <EntitiesDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:mdrpi="urn:oasis:names:tc:SAML:metadata:rpi">
117+ <EntityDescriptor entityID="theEntityID">
118+ <Extensions>
119+ <mdrpi:RegistrationInfo registrationAuthority="https://safire.ac.za">
120+ <mdrpi:RegistrationPolicy xml:lang="en">https://safire.ac.za/safire/policy/mrps/v20190207.html</mdrpi:RegistrationPolicy>
121+ </mdrpi:RegistrationInfo>
122+ </Extensions>
123+ <SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"/>
124+ </EntityDescriptor>
125+ </EntitiesDescriptor>
126+ XML
127+ );
128+
129+ $ entities = SAMLParser::parseDescriptorsElement ($ document ->documentElement );
130+ $ this ->assertArrayHasKey ('theEntityID ' , $ entities );
131+ // RegistrationInfo is accessible in the SP or IDP metadata accessors
132+ /** @var array $metadata */
133+ $ metadata = $ entities ['theEntityID ' ]->getMetadata20SP ();
134+ $ this ->assertEquals ($ expected , $ metadata ['RegistrationInfo ' ]);
135+ }
136+
137+
138+ /**
139+ * Test Registration Info is parsed
140+ */
141+ public function testRegistrationInstant (): void
142+ {
143+ $ expected = [
144+ 'authority ' => 'https://safire.ac.za ' ,
145+ 'instant ' => 1675861615 ,
146+ ];
147+
148+ $ document = DOMDocumentFactory::fromString (
149+ <<<XML
150+ <EntitiesDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:mdrpi="urn:oasis:names:tc:SAML:metadata:rpi">
151+ <EntityDescriptor entityID="theEntityID">
152+ <Extensions>
153+ <mdrpi:RegistrationInfo registrationAuthority="https://safire.ac.za" registrationInstant="2023-02-08T13:06:55Z" />
154+ </Extensions>
155+ <SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"/>
156+ </EntityDescriptor>
157+ </EntitiesDescriptor>
158+ XML
159+ );
160+
161+ $ entities = SAMLParser::parseDescriptorsElement ($ document ->documentElement );
162+ $ this ->assertArrayHasKey ('theEntityID ' , $ entities );
163+ // RegistrationInfo is accessible in the SP or IDP metadata accessors
164+ /** @var array $metadata */
165+ $ metadata = $ entities ['theEntityID ' ]->getMetadata20SP ();
166+ $ this ->assertEquals ($ expected , $ metadata ['RegistrationInfo ' ]);
167+ }
168+
169+
105170 /**
106171 * Test AttributeConsumingService is parsed
107172 */
0 commit comments