ConfigTest.php 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Config\Model;
  7. use Magento\TestFramework\Helper\Bootstrap;
  8. /**
  9. * @magentoAppArea adminhtml
  10. */
  11. class ConfigTest extends \PHPUnit\Framework\TestCase
  12. {
  13. /**
  14. * @covers \Magento\Config\Model\Config::save
  15. * @param array $groups
  16. * @magentoDbIsolation enabled
  17. * @dataProvider saveWithSingleStoreModeEnabledDataProvider
  18. * @magentoConfigFixture current_store general/single_store_mode/enabled 1
  19. */
  20. public function testSaveWithSingleStoreModeEnabled($groups)
  21. {
  22. Bootstrap::getObjectManager()->get(
  23. \Magento\Framework\Config\ScopeInterface::class
  24. )->setCurrentScope(
  25. \Magento\Backend\App\Area\FrontNameResolver::AREA_CODE
  26. );
  27. /** @var $_configDataObject \Magento\Config\Model\Config */
  28. $_configDataObject = Bootstrap::getObjectManager()->create(\Magento\Config\Model\Config::class);
  29. $_configData = $_configDataObject->setSection('dev')->setWebsite('base')->load();
  30. $this->assertEmpty($_configData);
  31. $_configDataObject = Bootstrap::getObjectManager()->create(\Magento\Config\Model\Config::class);
  32. $_configDataObject->setSection('dev')->setGroups($groups)->save();
  33. /** @var $_configDataObject \Magento\Config\Model\Config */
  34. $_configDataObject = Bootstrap::getObjectManager()->create(\Magento\Config\Model\Config::class);
  35. $_configData = $_configDataObject->setSection('dev')->load();
  36. $this->assertArrayHasKey('dev/debug/template_hints_admin', $_configData);
  37. $this->assertArrayHasKey('dev/debug/template_hints_blocks', $_configData);
  38. $_configDataObject = Bootstrap::getObjectManager()->create(\Magento\Config\Model\Config::class);
  39. $_configData = $_configDataObject->setSection('dev')->setWebsite('base')->load();
  40. $this->assertArrayNotHasKey('dev/debug/template_hints_admin', $_configData);
  41. $this->assertArrayNotHasKey('dev/debug/template_hints_blocks', $_configData);
  42. }
  43. public function saveWithSingleStoreModeEnabledDataProvider()
  44. {
  45. return require __DIR__ . '/_files/config_groups.php';
  46. }
  47. /**
  48. * @covers \Magento\Config\Model\Config::save
  49. * @param string $section
  50. * @param array $groups
  51. * @param array $expected
  52. * @magentoDbIsolation enabled
  53. * @dataProvider saveDataProvider
  54. */
  55. public function testSave($section, $groups, $expected)
  56. {
  57. $objectManager = Bootstrap::getObjectManager();
  58. /** @var $_configDataObject \Magento\Config\Model\Config */
  59. $_configDataObject = $objectManager->create(\Magento\Config\Model\Config::class);
  60. $_configDataObject->setSection($section)->setWebsite('base')->setGroups($groups)->save();
  61. foreach ($expected as $group => $expectedData) {
  62. $_configDataObject = $objectManager->create(\Magento\Config\Model\Config::class);
  63. $_configData = $_configDataObject->setSection($group)->setWebsite('base')->load();
  64. if (array_key_exists('payment/payflow_link/pwd', $_configData)) {
  65. $_configData['payment/payflow_link/pwd'] = $objectManager->get(
  66. \Magento\Framework\Encryption\EncryptorInterface::class
  67. )->decrypt(
  68. $_configData['payment/payflow_link/pwd']
  69. );
  70. }
  71. $this->assertEquals($expectedData, $_configData);
  72. }
  73. }
  74. public function saveDataProvider()
  75. {
  76. return require __DIR__ . '/_files/config_section.php';
  77. }
  78. }