From e72541e585a1c4ee51a0819261b3c6becc77b7d0 Mon Sep 17 00:00:00 2001 From: Thomas Steur <tsteur@users.noreply.github.com> Date: Wed, 14 Dec 2016 15:33:35 +1300 Subject: [PATCH] Add possibility to set (overwrite) the widgets in a container (#11005) * add possible to set container widgets * update php doc --- core/Widget/WidgetContainerConfig.php | 10 ++++++++++ .../Unit/Widget/WidgetContainerConfigTest.php | 18 ++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/core/Widget/WidgetContainerConfig.php b/core/Widget/WidgetContainerConfig.php index 258d182ab4..ffbb028cd7 100644 --- a/core/Widget/WidgetContainerConfig.php +++ b/core/Widget/WidgetContainerConfig.php @@ -95,6 +95,16 @@ class WidgetContainerConfig extends WidgetConfig return $this; } + /** + * Set (overwrite) widget configs. + * + * @param WidgetConfig[] $configs + */ + public function setWidgetConfigs($configs) + { + $this->widgets = $configs; + } + /** * Get all added widget configs. * diff --git a/tests/PHPUnit/Unit/Widget/WidgetContainerConfigTest.php b/tests/PHPUnit/Unit/Widget/WidgetContainerConfigTest.php index 7a2d3fedae..8e834934d6 100644 --- a/tests/PHPUnit/Unit/Widget/WidgetContainerConfigTest.php +++ b/tests/PHPUnit/Unit/Widget/WidgetContainerConfigTest.php @@ -270,6 +270,24 @@ class WidgetContainerConfigTest extends \PHPUnit_Framework_TestCase ), $this->config->getWidgetConfigs()); } + public function test_setWidgetConfigs_canOverwriteWidgets() + { + $this->assertSame(array(), $this->config->getWidgetConfigs()); + + $this->config->addWidgetConfig($widget1 = $this->createWidgetConfig('widget1')); + $this->config->addWidgetConfig($widget2 = $this->createWidgetConfig('widget2')); + $this->assertSame(array($widget1,$widget2), $this->config->getWidgetConfigs()); + + $widget3 = $this->createWidgetConfig('widget3'); + $widget4 = new WidgetContainerConfig(); + $this->config->setWidgetConfigs(array($widget2, $widget3, $widget4)); + $this->assertSame(array( + $widget2, + $widget3, + $widget4 + ), $this->config->getWidgetConfigs()); + } + private function createWidgetConfig($widgetName) { $config = new WidgetConfig(); -- GitLab