xref: /dokuwiki/_test/tests/inc/common_dokupref.test.php (revision df69dada5b99f5e70753b65059ac2793524355c6)
15833995aSPhy<?php
25833995aSPhy
35833995aSPhyclass common_dokupref_test extends DokuWikiTest {
45833995aSPhy
55833995aSPhy    function test_get_default() {
65833995aSPhy        $this->assertEquals('nil', get_doku_pref('foo', 'nil'));
75833995aSPhy    }
85833995aSPhy
95833995aSPhy    function test_set() {
105833995aSPhy        set_doku_pref('foo1', 'bar1');
115833995aSPhy        set_doku_pref('foo2', 'bar2');
12*df69dadaSPhy        $this->assertEquals('bar1', get_doku_pref('foo1', 'nil'));
13*df69dadaSPhy        $this->assertEquals('bar2', get_doku_pref('foo2', 'nil'));
14*df69dadaSPhy    }
15*df69dadaSPhy
16*df69dadaSPhy    function test_set_encode() {
17*df69dadaSPhy        set_doku_pref('foo#1', 'bar#1');
18*df69dadaSPhy        set_doku_pref('foo#2', 'bar2');
19*df69dadaSPhy        $this->assertEquals('bar#1', get_doku_pref('foo#1', 'nil'));
20*df69dadaSPhy        $this->assertEquals('bar2', get_doku_pref('foo#2', 'nil'));
21*df69dadaSPhy
22*df69dadaSPhy        set_doku_pref('foo#2', 'bar#2');
23*df69dadaSPhy        $this->assertEquals('bar#1', get_doku_pref('foo#1', 'nil'));
24*df69dadaSPhy        $this->assertEquals('bar#2', get_doku_pref('foo#2', 'nil'));
25*df69dadaSPhy    }
26*df69dadaSPhy
27*df69dadaSPhy    // mitigate bug in #2721
28*df69dadaSPhy    function test_duplicate_entries() {
29*df69dadaSPhy        $_COOKIE['DOKU_PREFS'] = 'foo1#bar1#foo2#bar1#foo2#bar2';
30*df69dadaSPhy        $this->assertEquals('bar2', get_doku_pref('foo2', 'nil'));
31*df69dadaSPhy
32*df69dadaSPhy        set_doku_pref('foo2', 'new2');
33*df69dadaSPhy        $this->assertEquals('bar1', get_doku_pref('foo1', 'nil'));
34*df69dadaSPhy        $this->assertEquals('new2', get_doku_pref('foo2', 'nil'));
35*df69dadaSPhy        $this->assertEquals('foo1#bar1#foo2#new2', $_COOKIE['DOKU_PREFS'],
36*df69dadaSPhy                            'cookie should not have duplicate entries');
37*df69dadaSPhy    }
38*df69dadaSPhy
39*df69dadaSPhy    // This is a definition from #1129
40*df69dadaSPhy    function test_empty() {
41*df69dadaSPhy        set_doku_pref('foo', '');
42*df69dadaSPhy        $this->assertSame('', get_doku_pref('foo', 'nil'));
43*df69dadaSPhy
44*df69dadaSPhy        set_doku_pref('foo', 0);
45*df69dadaSPhy        $this->assertSame('0', get_doku_pref('foo', 'nil'));
46*df69dadaSPhy
47*df69dadaSPhy        set_doku_pref('foo', null);
48*df69dadaSPhy        $this->assertSame('', get_doku_pref('foo', 'nil'));
49*df69dadaSPhy
50*df69dadaSPhy        set_doku_pref('foo', false);
51*df69dadaSPhy        $this->assertSame('nil', get_doku_pref('foo', 'nil'));
525833995aSPhy    }
535833995aSPhy
545833995aSPhy    // #2721
555833995aSPhy    function test_set_empty_string() {
565833995aSPhy        set_doku_pref('foo1', 'bar1');
575833995aSPhy        set_doku_pref('foo2', 'bar1');
585833995aSPhy
595833995aSPhy        set_doku_pref('foo2', '');
605833995aSPhy        $this->assertEquals('bar1', get_doku_pref('foo1', 'nil'));
615833995aSPhy        $this->assertEquals('', get_doku_pref('foo2', 'nil'));
625833995aSPhy
635833995aSPhy        set_doku_pref('foo2', 'bar2');
645833995aSPhy        $this->assertEquals('bar1', get_doku_pref('foo1', 'nil'));
655833995aSPhy        $this->assertEquals('bar2', get_doku_pref('foo2', 'nil'));
66*df69dadaSPhy        $this->assertEquals('foo1#bar1#foo2#bar2', $_COOKIE['DOKU_PREFS'],
67*df69dadaSPhy                            'cookie should not have duplicate entries');
685833995aSPhy    }
695833995aSPhy
705833995aSPhy    // #2721
715833995aSPhy    function test_set_delete() {
725833995aSPhy        set_doku_pref('foo1', 'bar1');
735833995aSPhy        set_doku_pref('foo2', 'bar2');
745833995aSPhy
755833995aSPhy        set_doku_pref('foo1', false);
765833995aSPhy        $this->assertEquals('nil', get_doku_pref('foo1', 'nil'));
775833995aSPhy        $this->assertEquals('bar2', get_doku_pref('foo2', 'nil'));
785833995aSPhy
795833995aSPhy        set_doku_pref('foo2', false);
805833995aSPhy        $this->assertEquals('nil', get_doku_pref('foo1', 'nil'));
815833995aSPhy        $this->assertEquals('nil', get_doku_pref('foo2', 'nil'));
825833995aSPhy    }
835833995aSPhy
845833995aSPhy}
855833995aSPhy
865833995aSPhy//Setup VIM: ex: et ts=4 :
87