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