Esempio n. 1
0
 /**
  * @return array
  */
 public function toOptionArray()
 {
     $widgets = [];
     $widgetsOptionsArr = $this->_model->getWidgetsOptionArray('type');
     foreach ($widgetsOptionsArr as $widget) {
         $widgets[$widget['value']] = $widget['label'];
     }
     return $widgets;
 }
Esempio n. 2
0
 public function testGetWidgetSupportedTemplatesByContainersUnknownContainer()
 {
     $expectedConfigFile = __DIR__ . '/../_files/mappedConfigArray1.php';
     $widget = (include $expectedConfigFile);
     $this->_widgetModelMock->expects($this->once())->method('getWidgetByClassType')->will($this->returnValue($widget));
     $this->_viewFileSystemMock->expects($this->once())->method('getFilename')->will($this->returnValue(''));
     $expectedTemplates = [];
     $this->assertEquals($expectedTemplates, $this->_model->getWidgetSupportedTemplatesByContainer('unknown'));
 }
Esempio n. 3
0
 /**
  * @param \Magento\Widget\Model\Widget\Instance $model
  * @depends testGetWidgetConfigAsArray
  */
 public function testGenerateLayoutUpdateXml(\Magento\Widget\Model\Widget\Instance $model)
 {
     $params = ['display_mode' => 'fixed', 'types' => ['type_1', 'type_2'], 'conditions' => ['1' => ['type' => 'Magento\\CatalogWidget\\Model\\Rule\\Condition\\Combine', 'aggregator' => 'all', 'value' => '1', 'new_child' => ''], '1--1' => ['type' => 'Magento\\CatalogWidget\\Model\\Rule\\Condition\\Product', 'attribute' => 'attribute_set_id', 'value' => '4', 'operator' => '==']]];
     $model->setData('widget_parameters', $params);
     $this->assertEquals('', $model->generateLayoutUpdateXml('content'));
     $model->setId('test_id')->setPackageTheme('Magento/luma');
     $result = $model->generateLayoutUpdateXml('content');
     $this->assertContains('<body><referenceContainer name="content">', $result);
     $this->assertContains('<block class="' . $model->getType() . '"', $result);
     $this->assertEquals(count($params), substr_count($result, '<action method="setData">'));
     $this->assertContains('<argument name="name" xsi:type="string">display_mode</argument>', $result);
     $this->assertContains('<argument name="value" xsi:type="string">fixed</argument>', $result);
     $this->assertContains('<argument name="name" xsi:type="string">types</argument>', $result);
     $this->assertContains('<argument name="value" xsi:type="string">type_1,type_2</argument>', $result);
     $this->assertContains('<argument name="name" xsi:type="string">conditions_encoded</argument>', $result);
     $this->assertContains('s:50:`Magento|CatalogWidget|Model|Rule|Condition|Combine`', $result);
     $this->assertContains('s:50:`Magento|CatalogWidget|Model|Rule|Condition|Product`', $result);
 }
Esempio n. 4
0
 /**
  * Prepare and save layout updates data
  *
  * @param \Magento\Widget\Model\Widget\Instance $widgetInstance
  * @param array $pageGroupData
  * @return string[] of inserted layout updates ids
  */
 protected function _saveLayoutUpdates($widgetInstance, $pageGroupData)
 {
     $connection = $this->getConnection();
     $pageLayoutUpdateIds = [];
     $storeIds = $this->_prepareStoreIds($widgetInstance->getStoreIds());
     $layoutUpdateTable = $this->getTable('layout_update');
     $layoutUpdateLinkTable = $this->getTable('layout_link');
     foreach ($pageGroupData['layout_handle_updates'] as $handle) {
         $xml = $widgetInstance->generateLayoutUpdateXml($pageGroupData['block_reference'], $pageGroupData['template']);
         $insert = ['handle' => $handle, 'xml' => $xml];
         if (strlen($widgetInstance->getSortOrder())) {
             $insert['sort_order'] = $widgetInstance->getSortOrder();
         }
         $connection->insert($layoutUpdateTable, $insert);
         $layoutUpdateId = $connection->lastInsertId($layoutUpdateTable);
         $pageLayoutUpdateIds[] = $layoutUpdateId;
         $data = [];
         foreach ($storeIds as $storeId) {
             $data[] = ['store_id' => $storeId, 'theme_id' => $widgetInstance->getThemeId(), 'layout_update_id' => $layoutUpdateId];
         }
         $connection->insertMultiple($layoutUpdateLinkTable, $data);
     }
     return $pageLayoutUpdateIds;
 }
Esempio n. 5
0
 /**
  * @param \Magento\Widget\Model\Widget\Instance $model
  * @depends testGetWidgetConfigAsArray
  */
 public function testGenerateLayoutUpdateXml(\Magento\Widget\Model\Widget\Instance $model)
 {
     $params = array('display_mode' => 'fixed', 'types' => array('type_1', 'type_2'));
     $model->setData('widget_parameters', $params);
     $this->assertEquals('', $model->generateLayoutUpdateXml('content'));
     $model->setId('test_id')->setPackageTheme('Magento/plushe');
     $result = $model->generateLayoutUpdateXml('content');
     $this->assertContains('<referenceContainer name="content">', $result);
     $this->assertContains('<block class="' . $model->getType() . '"', $result);
     $this->assertEquals(count($params), substr_count($result, '<action method="setData">'));
     $this->assertContains('<argument name="name" xsi:type="string">display_mode</argument>', $result);
     $this->assertContains('<argument name="value" xsi:type="string">fixed</argument>', $result);
     $this->assertContains('<argument name="name" xsi:type="string">types</argument>', $result);
     $this->assertContains('<argument name="value" xsi:type="string">type_1,type_2</argument>', $result);
 }
Esempio n. 6
0
 /**
  * @return array
  */
 public function toOptionArray()
 {
     return $this->_resourceModel->toOptionHash();
 }