/** * Get original configPath (not changed by PayPal configuration inheritance) * * @param \Magento\Backend\Model\Config\Structure\Element\Field $subject * @param \Closure $proceed * @return string|null */ public function aroundGetConfigPath(\Magento\Backend\Model\Config\Structure\Element\Field $subject, \Closure $proceed) { $configPath = $proceed(); if (!isset($configPath) && $this->_request->getParam('section') == 'payment') { $configPath = preg_replace('@^(' . implode('|', \Magento\Paypal\Model\Config\StructurePlugin::getPaypalConfigCountries(true)) . ')/@', 'payment/', $subject->getPath()); } return $configPath; }
/** * @param string $subjectPath * @param string $expectedConfigPath * @dataProvider aroundGetConfigPathDataProvider */ public function testAroundGetConfigPath($subjectPath, $expectedConfigPath) { $callback = function () { return null; }; $this->request->expects($this->once())->method('getParam')->with('section')->will($this->returnValue('payment')); $this->subject->expects($this->once())->method('getPath')->will($this->returnValue($subjectPath)); $this->assertEquals($expectedConfigPath, $this->model->aroundGetConfigPath($this->subject, $callback)); }
public function testGetValidation() { $this->_model->setData(array(), 'scope'); $this->assertNull($this->_model->getValidation()); $this->_model->setData(array('validate' => 'validate'), 'scope'); $this->assertEquals('validate', $this->_model->getValidation()); }
/** * @param bool $useConfigField uses the test_field_use_config field if true * @param bool $isConfigDataEmpty if the config data array should be empty or not * @param $configDataValue the value that the field path should be set to in the config data */ protected function _setupFieldsInheritCheckbox($useConfigField, $isConfigDataEmpty, $configDataValue) { \Magento\TestFramework\Helper\Bootstrap::getInstance()->reinitialize([State::PARAM_BAN_CACHE => true]); \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\\Framework\\Config\\ScopeInterface')->setCurrentScope(\Magento\Backend\App\Area\FrontNameResolver::AREA_CODE); \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\\Framework\\App\\AreaList')->getArea(\Magento\Backend\App\Area\FrontNameResolver::AREA_CODE)->load(\Magento\Framework\App\Area::PART_CONFIG); $fileResolverMock = $this->getMockBuilder('Magento\\Framework\\App\\Config\\FileResolver')->disableOriginalConstructor()->getMock(); $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\\Framework\\Filesystem'); /** @var $directory \Magento\Framework\Filesystem\Directory\Read */ $directory = $filesystem->getDirectoryRead(DirectoryList::ROOT); $fileIteratorFactory = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\\Framework\\Config\\FileIteratorFactory'); $fileIterator = $fileIteratorFactory->create($directory, [$directory->getRelativePath(__DIR__ . '/_files/test_section_config.xml')]); $fileResolverMock->expects($this->any())->method('get')->will($this->returnValue($fileIterator)); $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); $structureReader = $objectManager->create('Magento\\Backend\\Model\\Config\\Structure\\Reader', ['fileResolver' => $fileResolverMock]); $structureData = $objectManager->create('Magento\\Backend\\Model\\Config\\Structure\\Data', ['reader' => $structureReader]); /** @var \Magento\Backend\Model\Config\Structure $structure */ $structure = $objectManager->create('Magento\\Backend\\Model\\Config\\Structure', ['structureData' => $structureData]); $this->_section = $structure->getElement('test_section'); $this->_group = $structure->getElement('test_section/test_group'); if ($useConfigField) { $this->_field = $structure->getElement('test_section/test_group/test_field_use_config'); } else { $this->_field = $structure->getElement('test_section/test_group/test_field'); } $fieldPath = $this->_field->getConfigPath(); if ($isConfigDataEmpty) { $this->_configData = []; } else { $this->_configData = [$fieldPath => $configDataValue]; } }
/** * Get css class for "requires" functionality * * @param \Magento\Backend\Model\Config\Structure\Element\Field $field * @param string $fieldPrefix * @return string */ protected function _getRequiresCssClass(\Magento\Backend\Model\Config\Structure\Element\Field $field, $fieldPrefix) { $requiresClass = ''; $requiredPaths = array_merge($field->getRequiredFields($fieldPrefix), $field->getRequiredGroups($fieldPrefix)); if (!empty($requiredPaths)) { $requiresClass = ' requires'; foreach ($requiredPaths as $requiredPath) { $requiresClass .= ' requires-' . $this->_generateElementId($requiredPath); } return $requiresClass; } return $requiresClass; }
/** * Set correct scope if isSingleStoreMode = true * * @param \Magento\Backend\Model\Config\Structure\Element\Field $fieldConfig * @param \Magento\Framework\App\Config\ValueInterface $dataObject * @return void */ protected function _checkSingleStoreMode(\Magento\Backend\Model\Config\Structure\Element\Field $fieldConfig, $dataObject) { $isSingleStoreMode = $this->_storeManager->isSingleStoreMode(); if (!$isSingleStoreMode) { return; } if (!$fieldConfig->showInDefault()) { $websites = $this->_storeManager->getWebsites(); $singleStoreWebsite = array_shift($websites); $dataObject->setScope('websites'); $dataObject->setWebsiteCode($singleStoreWebsite->getCode()); $dataObject->setScopeCode($singleStoreWebsite->getCode()); $dataObject->setScopeId($singleStoreWebsite->getId()); } }