ConfigFactoryOverrideBaseTest.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. namespace Drupal\Tests\Core\Config;
  3. use Drupal\Core\Config\ConfigCollectionInfo;
  4. use Drupal\Core\Config\ConfigCrudEvent;
  5. use Drupal\Core\Config\ConfigFactoryOverrideBase;
  6. use Drupal\Core\Config\ConfigRenameEvent;
  7. use Drupal\Tests\UnitTestCase;
  8. /**
  9. * @coversDefaultClass \Drupal\Core\Config\ConfigFactoryOverrideBase
  10. * @group config
  11. */
  12. class ConfigFactoryOverrideBaseTest extends UnitTestCase {
  13. /**
  14. * @dataProvider providerTestFilterNestedArray
  15. */
  16. public function testFilterNestedArray(array $original_data, array $override_data_before, array $override_data_after, $changed) {
  17. $config_factory = new TestConfigFactoryOverrideBase();
  18. $result = $config_factory->doFilterNestedArray($original_data, $override_data_before);
  19. $this->assertEquals($changed, $result);
  20. $this->assertEquals($override_data_after, $override_data_before);
  21. }
  22. public function providerTestFilterNestedArray() {
  23. $data = [];
  24. $data['empty'] = [
  25. [],
  26. [],
  27. [],
  28. FALSE,
  29. ];
  30. $data['one-level-no-change'] = [
  31. ['key' => 'value'],
  32. [],
  33. [],
  34. FALSE,
  35. ];
  36. $data['one-level-override-no-change'] = [
  37. ['key' => 'value'],
  38. ['key' => 'value2'],
  39. ['key' => 'value2'],
  40. FALSE,
  41. ];
  42. $data['one-level-override-change'] = [
  43. ['key' => 'value'],
  44. ['key2' => 'value2'],
  45. [],
  46. TRUE,
  47. ];
  48. $data['one-level-multiple-override-change'] = [
  49. ['key' => 'value', 'key2' => 'value2'],
  50. ['key2' => 'value2', 'key3' => 'value3'],
  51. ['key2' => 'value2'],
  52. TRUE,
  53. ];
  54. $data['multiple-level-multiple-override-change'] = [
  55. ['key' => ['key' => 'value'], 'key2' => ['key' => 'value']],
  56. ['key' => ['key2' => 'value2'], 'key2' => ['key' => 'value']],
  57. ['key2' => ['key' => 'value']],
  58. TRUE,
  59. ];
  60. $data['original-scalar-array-override'] = [
  61. ['key' => 'value'],
  62. ['key' => ['value1', 'value2']],
  63. [],
  64. TRUE,
  65. ];
  66. return $data;
  67. }
  68. }
  69. class TestConfigFactoryOverrideBase extends ConfigFactoryOverrideBase {
  70. public function doFilterNestedArray(array $original_data, array &$override_data) {
  71. return $this->filterNestedArray($original_data, $override_data);
  72. }
  73. public function addCollections(ConfigCollectionInfo $collection_info) {
  74. }
  75. public function onConfigSave(ConfigCrudEvent $event) {
  76. }
  77. public function onConfigDelete(ConfigCrudEvent $event) {
  78. }
  79. public function onConfigRename(ConfigRenameEvent $event) {
  80. }
  81. }