xref: /dokuwiki/_test/tests/conf/CascadeExtraDefaultsTest.php (revision b54ce96cb229c4658e520f6a426a930cb157791a)
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