From 7f4651637a96a93b8b0479834b5058480380d0fa Mon Sep 17 00:00:00 2001 From: jld3103 Date: Wed, 24 May 2023 09:01:56 +0200 Subject: Allow stdClass in XML responses Signed-off-by: jld3103 --- lib/private/AppFramework/OCS/BaseResponse.php | 4 ++++ tests/lib/AppFramework/OCS/BaseResponseTest.php | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/private/AppFramework/OCS/BaseResponse.php b/lib/private/AppFramework/OCS/BaseResponse.php index 1191b861278..533cff74a30 100644 --- a/lib/private/AppFramework/OCS/BaseResponse.php +++ b/lib/private/AppFramework/OCS/BaseResponse.php @@ -143,6 +143,10 @@ abstract class BaseResponse extends Response { $k = 'element'; } + if ($v instanceof \stdClass) { + $v = []; + } + if (\is_array($v)) { $writer->startElement($k); $this->toXML($v, $writer); diff --git a/tests/lib/AppFramework/OCS/BaseResponseTest.php b/tests/lib/AppFramework/OCS/BaseResponseTest.php index 9038aee6baf..a1e0c620574 100644 --- a/tests/lib/AppFramework/OCS/BaseResponseTest.php +++ b/tests/lib/AppFramework/OCS/BaseResponseTest.php @@ -45,13 +45,14 @@ class BaseResponseTest extends \Test\TestCase { 'someElement' => 'withAttribute', ], 'value without key', + 'object' => new \stdClass(), ]; $this->invokePrivate($response, 'toXml', [$data, $writer]); $writer->endDocument(); $this->assertEquals( - "\nhellowithAttributevalue without key\n", + "\nhellowithAttributevalue without key\n", $writer->outputMemory(true) ); } -- cgit v1.2.3