diff --git a/core/Widget/WidgetContainerConfig.php b/core/Widget/WidgetContainerConfig.php index 258d182ab4c386fb9fc1fce0bd6271248958024b..ffbb028cd77201a93a3aff07568249c68dc158ce 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 7a2d3fedaec1c4903e698f9f8912fd31ac9a9ce6..8e834934d612bcb99372a9f897e5ead36822c951 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();