[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

/_test/tests/inc/ -> common_dokupref.test.php (source)

   1  <?php
   2  
   3  class common_dokupref_test extends DokuWikiTest {
   4  
   5      function test_get_default() {
   6          $this->assertEquals('nil', get_doku_pref('foo', 'nil'));
   7      }
   8  
   9      function test_set() {
  10          set_doku_pref('foo1', 'bar1');
  11          set_doku_pref('foo2', 'bar2');
  12          $this->assertEquals('bar1', get_doku_pref('foo1', 'nil'));
  13          $this->assertEquals('bar2', get_doku_pref('foo2', 'nil'));
  14      }
  15  
  16      function test_set_encode() {
  17          set_doku_pref('foo#1', 'bar#1');
  18          set_doku_pref('foo#2', 'bar2');
  19          $this->assertEquals('bar#1', get_doku_pref('foo#1', 'nil'));
  20          $this->assertEquals('bar2', get_doku_pref('foo#2', 'nil'));
  21  
  22          set_doku_pref('foo#2', 'bar#2');
  23          $this->assertEquals('bar#1', get_doku_pref('foo#1', 'nil'));
  24          $this->assertEquals('bar#2', get_doku_pref('foo#2', 'nil'));
  25      }
  26  
  27      // mitigate bug in #2721
  28      function test_duplicate_entries() {
  29          $_COOKIE['DOKU_PREFS'] = 'foo1#bar1#foo2#bar1#foo2#bar2';
  30          $this->assertEquals('bar2', get_doku_pref('foo2', 'nil'));
  31  
  32          set_doku_pref('foo2', 'new2');
  33          $this->assertEquals('bar1', get_doku_pref('foo1', 'nil'));
  34          $this->assertEquals('new2', get_doku_pref('foo2', 'nil'));
  35          $this->assertEquals('foo1#bar1#foo2#new2', $_COOKIE['DOKU_PREFS'],
  36                              'cookie should not have duplicate entries');
  37      }
  38  
  39      // This is a definition from #1129
  40      function test_empty() {
  41          set_doku_pref('foo', '');
  42          $this->assertSame('', get_doku_pref('foo', 'nil'));
  43  
  44          set_doku_pref('foo', 0);
  45          $this->assertSame('0', get_doku_pref('foo', 'nil'));
  46  
  47          set_doku_pref('foo', null);
  48          $this->assertSame('', get_doku_pref('foo', 'nil'));
  49  
  50          set_doku_pref('foo', false);
  51          $this->assertSame('nil', get_doku_pref('foo', 'nil'));
  52      }
  53  
  54      // #2721
  55      function test_set_empty_string() {
  56          set_doku_pref('foo1', 'bar1');
  57          set_doku_pref('foo2', 'bar1');
  58  
  59          set_doku_pref('foo2', '');
  60          $this->assertEquals('bar1', get_doku_pref('foo1', 'nil'));
  61          $this->assertEquals('', get_doku_pref('foo2', 'nil'));
  62  
  63          set_doku_pref('foo2', 'bar2');
  64          $this->assertEquals('bar1', get_doku_pref('foo1', 'nil'));
  65          $this->assertEquals('bar2', get_doku_pref('foo2', 'nil'));
  66          $this->assertEquals('foo1#bar1#foo2#bar2', $_COOKIE['DOKU_PREFS'],
  67                              'cookie should not have duplicate entries');
  68      }
  69  
  70      // #2721
  71      function test_set_delete() {
  72          set_doku_pref('foo1', 'bar1');
  73          set_doku_pref('foo2', 'bar2');
  74  
  75          set_doku_pref('foo1', false);
  76          $this->assertEquals('nil', get_doku_pref('foo1', 'nil'));
  77          $this->assertEquals('bar2', get_doku_pref('foo2', 'nil'));
  78  
  79          set_doku_pref('foo2', false);
  80          $this->assertEquals('nil', get_doku_pref('foo1', 'nil'));
  81          $this->assertEquals('nil', get_doku_pref('foo2', 'nil'));
  82      }
  83  
  84  }
  85  
  86  //Setup VIM: ex: et ts=4 :