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