diff --git a/src/SAML11/XML/samlp/StatusMessage.php b/src/SAML11/XML/samlp/StatusMessage.php new file mode 100644 index 0000000..fb722cc --- /dev/null +++ b/src/SAML11/XML/samlp/StatusMessage.php @@ -0,0 +1,60 @@ +setContent($content); + } + + + /** + * Validate the content of the element. + * + * @param string $content The value to go in the XML textContent + * @throws \Exception on failure + * @return void + */ + protected function validateContent(string $content): void + { + Assert::notWhitespaceOnly($content); + } + + + /** + * Convert XML into an StatusMessage + * + * @param \DOMElement $xml The XML element we should load + * @return static + * + * @throws \SimpleSAML\XML\Exception\InvalidDOMElementException + * If the qualified name of the supplied element is wrong + */ + public static function fromXML(DOMElement $xml): static + { + Assert::same($xml->localName, 'StatusMessage', InvalidDOMElementException::class); + Assert::same($xml->namespaceURI, StatusMessage::NS, InvalidDOMElementException::class); + + return new static($xml->textContent); + } +} diff --git a/tests/resources/xml/samlp_StatusMessage.xml b/tests/resources/xml/samlp_StatusMessage.xml new file mode 100644 index 0000000..fb086d5 --- /dev/null +++ b/tests/resources/xml/samlp_StatusMessage.xml @@ -0,0 +1 @@ +Something went wrong diff --git a/tests/src/SAML11/XML/samlp/StatusMessageTest.php b/tests/src/SAML11/XML/samlp/StatusMessageTest.php new file mode 100644 index 0000000..74321a8 --- /dev/null +++ b/tests/src/SAML11/XML/samlp/StatusMessageTest.php @@ -0,0 +1,57 @@ +assertEquals( + self::$xmlRepresentation->saveXML(self::$xmlRepresentation->documentElement), + strval($statusMessage), + ); + } +}