1<?php 2 3class CascadeExtraDefaultsTest extends DokuWikiTest { 4 5 protected $oldSetting = []; 6 7 public function setUp() : void 8 { 9 global $config_cascade; 10 11 $this->pluginsEnabled = [ 12 'testing' 13 ]; 14 15 $out = "<?php\n/*\n * protected settings, cannot modified in the Config manager\n" . 16 " * Some test data */\n"; 17 $out .= "\$conf['title'] = 'New default Title';\n"; 18 $out .= "\$conf['tagline'] = 'New default Tagline';\n"; 19 $out .= "\$conf['plugin']['testing']['schnibble'] = 1;\n"; 20 $out .= "\$conf['plugin']['testing']['second'] = 'New default setting';\n"; 21 22 $file = DOKU_CONF . 'otherdefaults.php'; 23 file_put_contents($file, $out); 24 25 //store original settings 26 $this->oldSetting = $config_cascade['main']['default']; 27 //add second file with defaults, which override the defaults of DokuWiki 28 $config_cascade['main']['default'][] = $file; 29 30 parent::setUp(); 31 } 32 33 public function testNewDefaults() 34 { 35 global $conf; 36 37 $this->assertEquals('New default Tagline', $conf['tagline'], 'new default value'); 38 $testing = plugin_load('action', 'testing'); 39 $this->assertEquals(1, $testing->getConf('schnibble'), 'new default value'); 40 41 42 $this->assertEquals('My Test Wiki', $conf['title'], 'local value still overrides default'); 43 $this->assertEquals('Local setting', $testing->getConf('second'), 'local value still overrides default'); 44 } 45 46 public function tearDown() : void 47 { 48 global $config_cascade; 49 50 $config_cascade['main']['default'] = $this->oldSetting; 51 unlink(DOKU_CONF . 'otherdefaults.php'); 52 53 parent::tearDown(); 54 } 55} 56