/** * @dataProvider isPaymentEnabledDataProvider */ public function testIsPaymentEnabled($groupConfig, $expected) { $this->_element->setGroup($groupConfig); $this->_backendConfig->expects($this->any())->method('getConfigDataValue')->will($this->returnValueMap([[self::CONFIG_PATH_ACTIVE, null, null, '1'], [self::CONFIG_PATH_NOT_ACTIVE, null, null, '0']])); $html = $this->_model->render($this->_element); $this->assertContains($expected, $html); }
/** * Get selected merchant country code in system configuration * * @return string */ public function getConfigurationCountryCode() { $countryCode = $this->_request->getParam(\Magento\Paypal\Model\Config\StructurePlugin::REQUEST_PARAM_COUNTRY); if (is_null($countryCode) || preg_match('/^[a-zA-Z]{2}$/', $countryCode) == 0) { $countryCode = $this->_backendConfig->getConfigDataValue(\Magento\Paypal\Block\Adminhtml\System\Config\Field\Country::FIELD_CONFIG_PATH); } if (empty($countryCode)) { $countryCode = $this->_coreHelper->getDefaultCountry(); } return $countryCode; }
/** * Sets scope for backend config * * @param string $sectionId * @return bool */ protected function isSectionAllowed($sectionId) { $website = $this->getRequest()->getParam('website'); $store = $this->getRequest()->getParam('store'); if ($store) { $this->_backendConfig->setStore($store); } elseif ($website) { $this->_backendConfig->setWebsite($website); } return parent::isSectionAllowed($sectionId); }
/** * Check whether current payment method is enabled * * @param \Magento\Framework\Data\Form\Element\AbstractElement $element * @return bool */ protected function _isPaymentEnabled($element) { $groupConfig = $element->getGroup(); $activityPaths = isset($groupConfig['activity_path']) ? $groupConfig['activity_path'] : []; if (!is_array($activityPaths)) { $activityPaths = [$activityPaths]; } $isPaymentEnabled = false; foreach ($activityPaths as $activityPath) { $isPaymentEnabled = $isPaymentEnabled || (bool) (string) $this->_backendConfig->getConfigDataValue($activityPath); } return $isPaymentEnabled; }
/** * Initialize config group fields * * @param \Magento\Framework\Data\Form\Element\Fieldset $fieldset * @param \Magento\Backend\Model\Config\Structure\Element\Group $group * @param \Magento\Backend\Model\Config\Structure\Element\Section $section * @param string $fieldPrefix * @param string $labelPrefix * @return $this */ public function initFields(\Magento\Framework\Data\Form\Element\Fieldset $fieldset, \Magento\Backend\Model\Config\Structure\Element\Group $group, \Magento\Backend\Model\Config\Structure\Element\Section $section, $fieldPrefix = '', $labelPrefix = '') { if (!$this->_configDataObject) { $this->_initObjects(); } // Extends for config data $extraConfigGroups = []; /** @var $element \Magento\Backend\Model\Config\Structure\Element\Field */ foreach ($group->getChildren() as $element) { if ($element instanceof \Magento\Backend\Model\Config\Structure\Element\Group) { $this->_initGroup($element, $section, $fieldset); } else { $path = $element->getConfigPath() ?: $element->getPath($fieldPrefix); if ($element->getSectionId() != $section->getId()) { $groupPath = $element->getGroupPath(); if (!isset($extraConfigGroups[$groupPath])) { $this->_configData = $this->_configDataObject->extendConfig($groupPath, false, $this->_configData); $extraConfigGroups[$groupPath] = true; } } $this->_initElement($element, $fieldset, $path, $fieldPrefix, $labelPrefix); } } return $this; }
/** * @param string $path * @param string $expectedException * * @dataProvider setDataByPathWrongDepthDataProvider */ public function testSetDataByPathWrongDepth($path, $expectedException) { $expectedException = 'Allowed depth of configuration is 3 (<section>/<group>/<field>). ' . $expectedException; $this->setExpectedException('\\UnexpectedValueException', $expectedException); $value = 'value'; $this->_model->setDataByPath($path, $value); }
public function testSaveToCheckScopeDataSet() { $transactionMock = $this->getMock('Magento\\Framework\\DB\\Transaction', array(), array(), '', false); $this->_transFactoryMock->expects($this->any())->method('create')->will($this->returnValue($transactionMock)); $this->_configLoaderMock->expects($this->any())->method('getConfigByPath')->will($this->returnValue(array())); $this->_eventManagerMock->expects($this->at(0))->method('dispatch')->with($this->equalTo('admin_system_config_changed_section_'), $this->arrayHasKey('website')); $this->_eventManagerMock->expects($this->at(0))->method('dispatch')->with($this->equalTo('admin_system_config_changed_section_'), $this->arrayHasKey('store')); $group = $this->getMock('Magento\\Backend\\Model\\Config\\Structure\\Element\\Group', array(), array(), '', false); $field = $this->getMock('Magento\\Backend\\Model\\Config\\Structure\\Element\\Field', array(), array(), '', false); $this->_configStructure->expects($this->at(0))->method('getElement')->with('/1')->will($this->returnValue($group)); $this->_configStructure->expects($this->at(1))->method('getElement')->with('/1/key')->will($this->returnValue($field)); $website = $this->getMock('Magento\\Store\\Model\\Website', array(), array(), '', false); $this->_storeManager->expects($this->any())->method('getWebsite')->will($this->returnValue($website)); $this->_storeManager->expects($this->any())->method('getWebsites')->will($this->returnValue(array($website))); $this->_storeManager->expects($this->any())->method('isSingleStoreMode')->will($this->returnValue(true)); $this->_model->setWebsite('website'); $this->_model->setGroups(array('1' => array('fields' => array('key' => array('data'))))); $backendModel = $this->getMock('Magento\\Framework\\App\\Config\\Value', array('setPath', 'addData', '__sleep', '__wakeup'), array(), '', false); $backendModel->expects($this->once())->method('addData')->with(array('field' => 'key', 'groups' => array(1 => array('fields' => array('key' => array('data')))), 'group_id' => null, 'scope' => 'websites', 'scope_id' => 0, 'scope_code' => 'website', 'field_config' => null, 'fieldset_data' => array('key' => null))); $backendModel->expects($this->once())->method('setPath')->with('/key')->will($this->returnValue($backendModel)); $this->_dataFactoryMock->expects($this->any())->method('create')->will($this->returnValue($backendModel)); $this->_model->save(); }
/** * Prepare backend config for test * * @param string|null|false $config */ private function _configurationCountryCodePrepareConfig($config) { $this->_backendConfig->expects($this->once())->method('getConfigDataValue')->with(\Magento\Paypal\Block\Adminhtml\System\Config\Field\Country::FIELD_CONFIG_PATH)->will($this->returnValue($config)); }