1591ebe45SGerrit Uitslag<?php 2591ebe45SGerrit Uitslag 3*b54ce96cSAndreas Gohrnamespace dokuwiki\test\conf; 4*b54ce96cSAndreas Gohr 5*b54ce96cSAndreas Gohrclass CascadeExtraDefaultsTest extends \DokuWikiTest 65d2c5d7eSGerrit Uitslag{ 7591ebe45SGerrit Uitslag 8591ebe45SGerrit Uitslag protected $oldSetting = []; 9591ebe45SGerrit Uitslag 10591ebe45SGerrit Uitslag public function setUp(): void 11591ebe45SGerrit Uitslag { 12591ebe45SGerrit Uitslag global $config_cascade; 13591ebe45SGerrit Uitslag 14591ebe45SGerrit Uitslag $this->pluginsEnabled = [ 15591ebe45SGerrit Uitslag 'testing' 16591ebe45SGerrit Uitslag ]; 17591ebe45SGerrit Uitslag 18591ebe45SGerrit Uitslag $out = "<?php\n/*\n * protected settings, cannot modified in the Config manager\n" . 19591ebe45SGerrit Uitslag " * Some test data */\n"; 20591ebe45SGerrit Uitslag $out .= "\$conf['title'] = 'New default Title';\n"; 21591ebe45SGerrit Uitslag $out .= "\$conf['tagline'] = 'New default Tagline';\n"; 22591ebe45SGerrit Uitslag $out .= "\$conf['plugin']['testing']['schnibble'] = 1;\n"; 23591ebe45SGerrit Uitslag $out .= "\$conf['plugin']['testing']['second'] = 'New default setting';\n"; 24591ebe45SGerrit Uitslag 25591ebe45SGerrit Uitslag $file = DOKU_CONF . 'otherdefaults.php'; 26591ebe45SGerrit Uitslag file_put_contents($file, $out); 27591ebe45SGerrit Uitslag 28591ebe45SGerrit Uitslag //store original settings 29591ebe45SGerrit Uitslag $this->oldSetting = $config_cascade['main']['default']; 30591ebe45SGerrit Uitslag //add second file with defaults, which override the defaults of DokuWiki 31591ebe45SGerrit Uitslag $config_cascade['main']['default'][] = $file; 32591ebe45SGerrit Uitslag 33591ebe45SGerrit Uitslag parent::setUp(); 34591ebe45SGerrit Uitslag } 35591ebe45SGerrit Uitslag 36591ebe45SGerrit Uitslag public function testNewDefaults() 37591ebe45SGerrit Uitslag { 38591ebe45SGerrit Uitslag global $conf; 39591ebe45SGerrit Uitslag 40591ebe45SGerrit Uitslag $this->assertEquals('New default Tagline', $conf['tagline'], 'new default value'); 41591ebe45SGerrit Uitslag $testing = plugin_load('action', 'testing'); 42591ebe45SGerrit Uitslag $this->assertEquals(1, $testing->getConf('schnibble'), 'new default value'); 43591ebe45SGerrit Uitslag 44591ebe45SGerrit Uitslag 45591ebe45SGerrit Uitslag $this->assertEquals('My Test Wiki', $conf['title'], 'local value still overrides default'); 46591ebe45SGerrit Uitslag $this->assertEquals('Local setting', $testing->getConf('second'), 'local value still overrides default'); 47591ebe45SGerrit Uitslag } 48591ebe45SGerrit Uitslag 49591ebe45SGerrit Uitslag public function tearDown(): void 50591ebe45SGerrit Uitslag { 51591ebe45SGerrit Uitslag global $config_cascade; 52591ebe45SGerrit Uitslag 53591ebe45SGerrit Uitslag $config_cascade['main']['default'] = $this->oldSetting; 54591ebe45SGerrit Uitslag unlink(DOKU_CONF . 'otherdefaults.php'); 55591ebe45SGerrit Uitslag 56591ebe45SGerrit Uitslag parent::tearDown(); 57591ebe45SGerrit Uitslag } 58591ebe45SGerrit Uitslag} 59