[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

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

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