/** * @covers \Magento\Email\Block\Adminhtml\Template\Edit\Form::getVariables */ public function testGetVariables() { $this->variablesMock->expects($this->once())->method('toOptionArray')->willReturn(['var1', 'var2', 'var3']); $this->variableFactoryMock->expects($this->once())->method('create')->willReturn($this->variableMock); $this->variableMock->expects($this->once())->method('getVariablesOptionArray')->willReturn(['custom var 1', 'custom var 2']); $this->registryMock->expects($this->once())->method('registry')->willReturn($this->templateMock); $this->templateMock->expects($this->once())->method('getId')->willReturn(1); $this->templateMock->expects($this->once())->method('getVariablesOptionArray')->willReturn(['template var 1', 'template var 2']); $this->assertEquals([['var1', 'var2', 'var3'], ['custom var 1', 'custom var 2'], ['template var 1', 'template var 2']], $this->form->getVariables()); }
public function testToOptionArrayWithGroup() { $optionArray = $this->model->toOptionArray(true); $this->assertEquals('Store Contact Information', $optionArray['label']->getText()); $optionArrayValues = $optionArray['value']; $this->assertEquals(count($this->configVariables), count($optionArrayValues)); $index = 0; foreach ($optionArrayValues as $variable) { $expectedValue = '{{config path="' . $this->configVariables[$index]['value'] . '"}}'; $expectedLabel = $this->configVariables[$index]['label']; $this->assertEquals($expectedValue, $variable['value']); $this->assertEquals($expectedLabel, $variable['label']->getText()); $index++; } }
public function testConfigDirectiveUnavailable() { $path = "web/unsecure/base_url"; $availableConfigs = []; $construction = ["{{config path={$path}}}", 'config', " path={$path}"]; $scopeConfigValue = ''; $storeMock = $this->getMock('Magento\\Store\\Api\\Data\\StoreInterface', [], [], '', false); $this->storeManager->expects($this->once())->method('getStore')->willReturn($storeMock); $storeMock->expects($this->once())->method('getId')->willReturn(1); $this->configVariables->expects($this->once())->method('getData')->willReturn($availableConfigs); $this->scopeConfig->expects($this->never())->method('getValue')->willReturn($scopeConfigValue); $this->assertEquals($scopeConfigValue, $this->getModel()->configDirective($construction)); }
/** * Retrieve variables to insert into email * * @return array */ public function getVariables() { $variables = array(); $variables[] = $this->_variables->toOptionArray(true); $customVariables = $this->_variableFactory->create()->getVariablesOptionArray(true); if ($customVariables) { $variables[] = $customVariables; } /* @var $template \Magento\Email\Model\Template */ $template = $this->_coreRegistry->registry('current_email_template'); if ($template->getId() && ($templateVariables = $template->getVariablesOptionArray(true))) { $variables[] = $templateVariables; } return $variables; }
/** * Check if given variable is available for directive "Config" * * @param string $variable * @return bool */ private function isAvailableConfigVariable($variable) { return in_array($variable, array_column($this->configVariables->getData(), 'value')); }