From cf7cd07b9ed0ec6621d1cafa45822acf6069f825 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Wed, 17 Jul 2024 23:37:28 +0200 Subject: [PATCH] Add samlp:StatusMessage --- src/SAML11/XML/samlp/StatusMessage.php | 60 +++++++++++++++++++ tests/resources/xml/samlp_StatusMessage.xml | 1 + .../SAML11/XML/samlp/StatusMessageTest.php | 57 ++++++++++++++++++ 3 files changed, 118 insertions(+) create mode 100644 src/SAML11/XML/samlp/StatusMessage.php create mode 100644 tests/resources/xml/samlp_StatusMessage.xml create mode 100644 tests/src/SAML11/XML/samlp/StatusMessageTest.php 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), + ); + } +}