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