12e618646SGerrit Uitslag<?php 22e618646SGerrit Uitslag 32e618646SGerrit Uitslagnamespace dokuwiki\plugin\config\test; 42e618646SGerrit Uitslag 52e618646SGerrit Uitslaguse dokuwiki\plugin\config\core\ConfigParser; 62e618646SGerrit Uitslaguse dokuwiki\plugin\config\core\Loader; 72e618646SGerrit Uitslag 82e618646SGerrit Uitslag/** 92e618646SGerrit Uitslag * @group plugin_config 102e618646SGerrit Uitslag * @group admin_plugins 112e618646SGerrit Uitslag * @group plugins 122e618646SGerrit Uitslag * @group bundled_plugins 132e618646SGerrit Uitslag */ 14*5d2c5d7eSGerrit Uitslagclass LoaderExtraDefaultsTest extends \DokuWikiTest 15*5d2c5d7eSGerrit Uitslag{ 162e618646SGerrit Uitslag 172e618646SGerrit Uitslag protected $pluginsEnabled = ['testing']; 182e618646SGerrit Uitslag 192e618646SGerrit Uitslag protected $oldSetting = []; 202e618646SGerrit Uitslag 212e618646SGerrit Uitslag public function setUp(): void 222e618646SGerrit Uitslag { 232e618646SGerrit Uitslag global $config_cascade; 242e618646SGerrit Uitslag 252e618646SGerrit Uitslag $out = "<?php\n/*\n * protected settings, cannot modified in the Config manager\n" . 262e618646SGerrit Uitslag " * Some test data */\n"; 272e618646SGerrit Uitslag $out .= "\$conf['title'] = 'New default Title';\n"; 282e618646SGerrit Uitslag $out .= "\$conf['tagline'] = 'New default Tagline';\n"; 292e618646SGerrit Uitslag $out .= "\$conf['plugin']['testing']['schnibble'] = 1;\n"; 302e618646SGerrit Uitslag $out .= "\$conf['plugin']['testing']['second'] = 'New default setting';\n"; 312e618646SGerrit Uitslag 322e618646SGerrit Uitslag $file = DOKU_CONF . 'otherdefaults.php'; 332e618646SGerrit Uitslag file_put_contents($file, $out); 342e618646SGerrit Uitslag 352e618646SGerrit Uitslag //store original settings 362e618646SGerrit Uitslag $this->oldSetting = $config_cascade['main']['default']; 372e618646SGerrit Uitslag //add second file with defaults, which override the defaults of DokuWiki 382e618646SGerrit Uitslag $config_cascade['main']['default'][] = $file; 392e618646SGerrit Uitslag 402e618646SGerrit Uitslag parent::setUp(); 412e618646SGerrit Uitslag } 42*5d2c5d7eSGerrit Uitslag 432e618646SGerrit Uitslag /** 442e618646SGerrit Uitslag * Ensure loading the defaults work, and that the extra default for plugins provided via an extra main default file 452e618646SGerrit Uitslag * override the plugin defaults as well 462e618646SGerrit Uitslag */ 47*5d2c5d7eSGerrit Uitslag public function testDefaultsOverwriting() 48*5d2c5d7eSGerrit Uitslag { 492e618646SGerrit Uitslag $loader = new Loader(new ConfigParser()); 502e618646SGerrit Uitslag 512e618646SGerrit Uitslag $conf = $loader->loadDefaults(); 522e618646SGerrit Uitslag $this->assertTrue(is_array($conf)); 532e618646SGerrit Uitslag 542e618646SGerrit Uitslag // basic defaults 552e618646SGerrit Uitslag $this->assertArrayHasKey('title', $conf); 562e618646SGerrit Uitslag $this->assertEquals('New default Title', $conf['title']); 572e618646SGerrit Uitslag $this->assertEquals('New default Tagline', $conf['tagline']); 582e618646SGerrit Uitslag 592e618646SGerrit Uitslag // plugin defaults 602e618646SGerrit Uitslag $this->assertArrayHasKey('plugin____testing____schnibble', $conf); 612e618646SGerrit Uitslag $this->assertEquals(1, $conf['plugin____testing____schnibble']); 622e618646SGerrit Uitslag $this->assertEquals('New default setting', $conf['plugin____testing____second']); 632e618646SGerrit Uitslag 642e618646SGerrit Uitslag } 652e618646SGerrit Uitslag 662e618646SGerrit Uitslag public function tearDown(): void 672e618646SGerrit Uitslag { 682e618646SGerrit Uitslag global $config_cascade; 692e618646SGerrit Uitslag 702e618646SGerrit Uitslag $config_cascade['main']['default'] = $this->oldSetting; 712e618646SGerrit Uitslag unlink(DOKU_CONF . 'otherdefaults.php'); 722e618646SGerrit Uitslag 732e618646SGerrit Uitslag parent::tearDown(); 742e618646SGerrit Uitslag } 752e618646SGerrit Uitslag 762e618646SGerrit Uitslag} 77