1*2e618646SGerrit Uitslag<?php 2*2e618646SGerrit Uitslag 3*2e618646SGerrit Uitslagnamespace dokuwiki\plugin\config\test; 4*2e618646SGerrit Uitslag 5*2e618646SGerrit Uitslaguse dokuwiki\plugin\config\core\ConfigParser; 6*2e618646SGerrit Uitslaguse dokuwiki\plugin\config\core\Loader; 7*2e618646SGerrit Uitslag 8*2e618646SGerrit Uitslag/** 9*2e618646SGerrit Uitslag * @group plugin_config 10*2e618646SGerrit Uitslag * @group admin_plugins 11*2e618646SGerrit Uitslag * @group plugins 12*2e618646SGerrit Uitslag * @group bundled_plugins 13*2e618646SGerrit Uitslag */ 14*2e618646SGerrit Uitslagclass LoaderExtraDefaultsTest extends \DokuWikiTest { 15*2e618646SGerrit Uitslag 16*2e618646SGerrit Uitslag protected $pluginsEnabled = ['testing']; 17*2e618646SGerrit Uitslag 18*2e618646SGerrit Uitslag protected $oldSetting = []; 19*2e618646SGerrit Uitslag 20*2e618646SGerrit Uitslag public function setUp() : void 21*2e618646SGerrit Uitslag { 22*2e618646SGerrit Uitslag global $config_cascade; 23*2e618646SGerrit Uitslag 24*2e618646SGerrit Uitslag $out = "<?php\n/*\n * protected settings, cannot modified in the Config manager\n" . 25*2e618646SGerrit Uitslag " * Some test data */\n"; 26*2e618646SGerrit Uitslag $out .= "\$conf['title'] = 'New default Title';\n"; 27*2e618646SGerrit Uitslag $out .= "\$conf['tagline'] = 'New default Tagline';\n"; 28*2e618646SGerrit Uitslag $out .= "\$conf['plugin']['testing']['schnibble'] = 1;\n"; 29*2e618646SGerrit Uitslag $out .= "\$conf['plugin']['testing']['second'] = 'New default setting';\n"; 30*2e618646SGerrit Uitslag 31*2e618646SGerrit Uitslag $file = DOKU_CONF . 'otherdefaults.php'; 32*2e618646SGerrit Uitslag file_put_contents($file, $out); 33*2e618646SGerrit Uitslag 34*2e618646SGerrit Uitslag //store original settings 35*2e618646SGerrit Uitslag $this->oldSetting = $config_cascade['main']['default']; 36*2e618646SGerrit Uitslag //add second file with defaults, which override the defaults of DokuWiki 37*2e618646SGerrit Uitslag $config_cascade['main']['default'][] = $file; 38*2e618646SGerrit Uitslag 39*2e618646SGerrit Uitslag parent::setUp(); 40*2e618646SGerrit Uitslag } 41*2e618646SGerrit Uitslag /** 42*2e618646SGerrit Uitslag * Ensure loading the defaults work, and that the extra default for plugins provided via an extra main default file 43*2e618646SGerrit Uitslag * override the plugin defaults as well 44*2e618646SGerrit Uitslag */ 45*2e618646SGerrit Uitslag public function testDefaultsOverwriting() { 46*2e618646SGerrit Uitslag $loader = new Loader(new ConfigParser()); 47*2e618646SGerrit Uitslag 48*2e618646SGerrit Uitslag $conf = $loader->loadDefaults(); 49*2e618646SGerrit Uitslag $this->assertTrue(is_array($conf)); 50*2e618646SGerrit Uitslag 51*2e618646SGerrit Uitslag // basic defaults 52*2e618646SGerrit Uitslag $this->assertArrayHasKey('title', $conf); 53*2e618646SGerrit Uitslag $this->assertEquals('New default Title', $conf['title']); 54*2e618646SGerrit Uitslag $this->assertEquals('New default Tagline', $conf['tagline']); 55*2e618646SGerrit Uitslag 56*2e618646SGerrit Uitslag // plugin defaults 57*2e618646SGerrit Uitslag $this->assertArrayHasKey('plugin____testing____schnibble', $conf); 58*2e618646SGerrit Uitslag $this->assertEquals(1, $conf['plugin____testing____schnibble']); 59*2e618646SGerrit Uitslag $this->assertEquals('New default setting', $conf['plugin____testing____second']); 60*2e618646SGerrit Uitslag 61*2e618646SGerrit Uitslag } 62*2e618646SGerrit Uitslag 63*2e618646SGerrit Uitslag public function tearDown() : void 64*2e618646SGerrit Uitslag { 65*2e618646SGerrit Uitslag global $config_cascade; 66*2e618646SGerrit Uitslag 67*2e618646SGerrit Uitslag $config_cascade['main']['default'] = $this->oldSetting; 68*2e618646SGerrit Uitslag unlink(DOKU_CONF . 'otherdefaults.php'); 69*2e618646SGerrit Uitslag 70*2e618646SGerrit Uitslag parent::tearDown(); 71*2e618646SGerrit Uitslag } 72*2e618646SGerrit Uitslag 73*2e618646SGerrit Uitslag} 74