[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

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

   1  <?php
   2  
   3  use dokuwiki\ChangeLog\ChangeLog;
   4  use dokuwiki\ChangeLog\PageChangeLog;
   5  
   6  /**
   7   * Tests for requesting revisioninfo of a revision of a page with getRevisionInfo()
   8   *
   9   * This class uses the files:
  10   * - data/pages/mailinglist.txt
  11   * - data/meta/mailinglist.changes
  12   */
  13  class changelog_getrevisionsinfo_test extends DokuWikiTest {
  14  
  15      private $logline = "1362525899    127.0.0.1    E    mailinglist    pubcie    [Data entry]     \n";
  16      private $firstlogline = "1374261194    127.0.0.1    E    mailinglist    pubcie        \n";
  17      private $pageid = 'mailinglist';
  18  
  19      function setup() : void {
  20          parent::setup();
  21          global $cache_revinfo;
  22          $cache =& $cache_revinfo;
  23          unset($cache['nonexist']);
  24          unset($cache['mailinglist']);
  25      }
  26  
  27      /**
  28       * no nonexist.changes meta file available
  29       */
  30      function test_changemetadatanotexists() {
  31          $rev = 1362525899;
  32          $id = 'nonexist';
  33          $revsexpected = false;
  34  
  35          $pagelog = new PageChangeLog($id, $chunk_size = 8192);
  36          $revs = $pagelog->getRevisionInfo($rev);
  37          $this->assertEquals($revsexpected, $revs);
  38      }
  39  
  40      /**
  41       * request existing rev
  42       */
  43      function test_requestrev() {
  44          $rev = 1362525899;
  45          $infoexpected = ChangeLog::parseLogLine($this->logline);
  46          $infoexpected['mode'] = 'page';
  47  
  48          $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
  49          $info = $pagelog->getRevisionInfo($rev);
  50          $this->assertEquals($infoexpected, $info);
  51          //returns cached value
  52          $info = $pagelog->getRevisionInfo($rev);
  53          $this->assertEquals($infoexpected, $info);
  54      }
  55  
  56      /**
  57       * request existing rev with chucked reading
  58       */
  59      function test_requestrev_chuncked() {
  60          $rev = 1362525899;
  61          $infoexpected = ChangeLog::parseLogLine($this->logline);
  62          $infoexpected['mode'] = 'page';
  63  
  64          $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512);
  65          $info = $pagelog->getRevisionInfo($rev);
  66          $this->assertEquals($infoexpected, $info);
  67      }
  68  
  69      /**
  70       * request existing rev with chucked reading
  71       */
  72      function test_requestrev_chunckedsmallerthanlinelength() {
  73          $rev = 1362525899;
  74          $infoexpected = ChangeLog::parseLogLine($this->logline);
  75          $infoexpected['mode'] = 'page';
  76  
  77          $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20);
  78          $info = $pagelog->getRevisionInfo($rev);
  79          $this->assertEquals($infoexpected, $info);
  80      }
  81  
  82      /**
  83       * request current version
  84       */
  85      function test_requestrecentestlogline() {
  86          $rev = 1374261194;
  87          $infoexpected = ChangeLog::parseLogLine($this->firstlogline);
  88          $infoexpected['mode'] = 'page';
  89  
  90          $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
  91          $info = $pagelog->getRevisionInfo($rev);
  92          $this->assertEquals($infoexpected, $info);
  93          //returns cached value
  94          $info = $pagelog->getRevisionInfo($rev);
  95          $this->assertEquals($infoexpected, $info);
  96      }
  97  
  98      /**
  99       * request current version, with chuncked reading
 100       */
 101      function test_requestrecentestlogline_chuncked() {
 102          $rev = 1374261194;
 103          $infoexpected = ChangeLog::parseLogLine($this->firstlogline);
 104          $infoexpected['mode'] = 'page';
 105  
 106          $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512);
 107          $info = $pagelog->getRevisionInfo($rev);
 108          $this->assertEquals($infoexpected, $info);
 109      }
 110  
 111      /**
 112       * request negative revision
 113       */
 114      function test_negativerev() {
 115          $rev = -10;
 116  
 117          $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
 118          $info = $pagelog->getRevisionInfo($rev);
 119          $this->assertFalse($info);
 120      }
 121  
 122      /**
 123       * request non existing revision somewhere between existing revisions
 124       */
 125      function test_notexistingrev() {
 126          $rev = 1362525890;
 127  
 128          $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
 129          $info = $pagelog->getRevisionInfo($rev);
 130          $this->assertFalse($info);
 131      }
 132  
 133      /**
 134       * sometimes chuncksize is set to true
 135       */
 136      function test_chuncksizetrue() {
 137          $rev = 1362525899;
 138          $infoexpected = ChangeLog::parseLogLine($this->logline);
 139          $infoexpected['mode'] = 'page';
 140  
 141          $pagelog = new PageChangeLog($this->pageid, true);
 142          $info = $pagelog->getRevisionInfo($rev);
 143          $this->assertEquals($infoexpected, $info);
 144      }
 145  }