From 4de92123fa453f5e5eedd001a8918ad2976436af Mon Sep 17 00:00:00 2001 From: mark_story Date: Sun, 3 Jan 2016 22:08:09 -0500 Subject: [PATCH] Back port fixes from #7899 to 2.x Fix XmlView failing when return => domdocument is used. --- lib/Cake/Test/Case/View/XmlViewTest.php | 4 ++-- lib/Cake/View/XmlView.php | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/Cake/Test/Case/View/XmlViewTest.php b/lib/Cake/Test/Case/View/XmlViewTest.php index 549813730..65a9bdcd4 100644 --- a/lib/Cake/Test/Case/View/XmlViewTest.php +++ b/lib/Cake/Test/Case/View/XmlViewTest.php @@ -107,7 +107,7 @@ class XmlViewTest extends CakeTestCase { $Controller = new Controller($Request, $Response); $data = array( '_serialize' => array('tags'), - '_xmlOptions' => array('format' => 'attributes'), + '_xmlOptions' => array('format' => 'attributes', 'return' => 'domdocument'), 'tags' => array( 'tag' => array( array( @@ -126,7 +126,7 @@ class XmlViewTest extends CakeTestCase { $View = new XmlView($Controller); $result = $View->render(); - $expected = Xml::build(array('response' => array('tags' => $data['tags'])), $data['_xmlOptions'])->asXML(); + $expected = Xml::build(array('response' => array('tags' => $data['tags'])), $data['_xmlOptions'])->saveXML(); $this->assertSame($expected, $result); } diff --git a/lib/Cake/View/XmlView.php b/lib/Cake/View/XmlView.php index 021854fc4..7d7610836 100644 --- a/lib/Cake/View/XmlView.php +++ b/lib/Cake/View/XmlView.php @@ -142,6 +142,9 @@ class XmlView extends View { $options['pretty'] = true; } + if (isset($options['return']) && strtolower($options['return']) === 'domdocument') { + return Xml::fromArray($data, $options)->saveXML(); + } return Xml::fromArray($data, $options)->asXML(); }