155545bccSGerrit Uitslag<?php 255545bccSGerrit Uitslag 371951841SGerrit Uitslaguse dokuwiki\ChangeLog\ChangeLog; 40c3a5702SAndreas Gohruse dokuwiki\ChangeLog\PageChangeLog; 50c3a5702SAndreas Gohr 655545bccSGerrit Uitslag/** 755545bccSGerrit Uitslag * Tests for requesting revisioninfo of a revision of a page with getRevisionInfo() 855545bccSGerrit Uitslag * 955545bccSGerrit Uitslag * This class uses the files: 1055545bccSGerrit Uitslag * - data/pages/mailinglist.txt 1155545bccSGerrit Uitslag * - data/meta/mailinglist.changes 1255545bccSGerrit Uitslag */ 1355545bccSGerrit Uitslagclass changelog_getrelativerevision_test extends DokuWikiTest { 1455545bccSGerrit Uitslag 1555545bccSGerrit Uitslag private $logline = "1362525899 127.0.0.1 E mailinglist pubcie [Data entry] \n"; 1655545bccSGerrit Uitslag private $pageid = 'mailinglist'; 1755545bccSGerrit Uitslag 18*01e8d739SAndreas Gohr /** @var string original fixture content of the changelog, restored before each test */ 19*01e8d739SAndreas Gohr private static $originalChangelog; 20*01e8d739SAndreas Gohr 21*01e8d739SAndreas Gohr public static function setUpBeforeClass() : void { 22*01e8d739SAndreas Gohr parent::setUpBeforeClass(); 23*01e8d739SAndreas Gohr self::$originalChangelog = file_get_contents(metaFN('mailinglist', '.changes')); 24*01e8d739SAndreas Gohr } 25*01e8d739SAndreas Gohr 261c33cec3SAndreas Gohr function setup() : void { 2755545bccSGerrit Uitslag parent::setup(); 2855545bccSGerrit Uitslag global $cache_revinfo; 2955545bccSGerrit Uitslag $cache =& $cache_revinfo; 3055545bccSGerrit Uitslag unset($cache['nonexist']); 3155545bccSGerrit Uitslag unset($cache['mailinglist']); 32*01e8d739SAndreas Gohr // Restore fixture state per test. Two tests in this class explicitly touch the 33*01e8d739SAndreas Gohr // page file forward (test_startatexactcurrentrev / test_iscurrentpagerevision / 34*01e8d739SAndreas Gohr // test_isnotcurrentpagerevision), and getCurrentRevisionInfo now persists the 35*01e8d739SAndreas Gohr // synthesized external-edit entry on first observation. Without restoring, the 36*01e8d739SAndreas Gohr // first such test mutates the changelog and subsequent tests trigger another 37*01e8d739SAndreas Gohr // round of "rescue" persistence (file mtime older than last log entry). 38*01e8d739SAndreas Gohr file_put_contents(metaFN('mailinglist', '.changes'), self::$originalChangelog); 39*01e8d739SAndreas Gohr @touch(wikiFN($this->pageid), 1374261194); 40*01e8d739SAndreas Gohr clearstatcache(false, wikiFN($this->pageid)); 4155545bccSGerrit Uitslag } 4255545bccSGerrit Uitslag 4355545bccSGerrit Uitslag /** 4455545bccSGerrit Uitslag * no nonexist.changes meta file available 4555545bccSGerrit Uitslag */ 4655545bccSGerrit Uitslag function test_changemetadatanotexists() { 4755545bccSGerrit Uitslag $rev = 1362525899; 4855545bccSGerrit Uitslag $dir = 1; 4955545bccSGerrit Uitslag $id = 'nonexist'; 5055545bccSGerrit Uitslag $revsexpected = false; 5155545bccSGerrit Uitslag 52047bad06SGerrit Uitslag $pagelog = new PageChangeLog($id, $chunk_size = 8192); 53047bad06SGerrit Uitslag $revs = $pagelog->getRelativeRevision($rev, $dir); 5455545bccSGerrit Uitslag $this->assertEquals($revsexpected, $revs); 5555545bccSGerrit Uitslag } 5655545bccSGerrit Uitslag 5755545bccSGerrit Uitslag /** 5855545bccSGerrit Uitslag * no nonexist.changes meta file available 5955545bccSGerrit Uitslag */ 6055545bccSGerrit Uitslag function test_nodirection() { 6155545bccSGerrit Uitslag $rev = 1362525899; 6255545bccSGerrit Uitslag $dir = 0; 6355545bccSGerrit Uitslag $revsexpected = false; 6455545bccSGerrit Uitslag 65047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 66047bad06SGerrit Uitslag $revs = $pagelog->getRelativeRevision($rev, $dir); 6755545bccSGerrit Uitslag $this->assertEquals($revsexpected, $revs); 6855545bccSGerrit Uitslag } 6955545bccSGerrit Uitslag 7055545bccSGerrit Uitslag /** 7155545bccSGerrit Uitslag * start at exact current revision of mailinglist page 7255545bccSGerrit Uitslag * 7355545bccSGerrit Uitslag */ 7455545bccSGerrit Uitslag function test_startatexactcurrentrev() { 75332817fcSGerrit Uitslag $rev = 1385051947; 7655545bccSGerrit Uitslag $dir = 1; 77332817fcSGerrit Uitslag $revsexpectedpos = false; 78332817fcSGerrit Uitslag $revsexpectedneg = 1374261194; 7955545bccSGerrit Uitslag 80332817fcSGerrit Uitslag //set a known timestamp 81332817fcSGerrit Uitslag touch(wikiFN($this->pageid), $rev); 8255545bccSGerrit Uitslag 83047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 84047bad06SGerrit Uitslag $revs = $pagelog->getRelativeRevision($rev, $dir); 85332817fcSGerrit Uitslag $this->assertEquals($revsexpectedpos, $revs); 86332817fcSGerrit Uitslag 87332817fcSGerrit Uitslag $revs = $pagelog->getRelativeRevision($rev, -$dir); 88332817fcSGerrit Uitslag $this->assertEquals($revsexpectedneg, $revs); 89332817fcSGerrit Uitslag } 90332817fcSGerrit Uitslag 91332817fcSGerrit Uitslag /** 92332817fcSGerrit Uitslag * start at exact last revision of mailinglist page 93332817fcSGerrit Uitslag * 94332817fcSGerrit Uitslag */ 95332817fcSGerrit Uitslag function test_startatexactlastrev() { 96332817fcSGerrit Uitslag $rev = 1360110636; 97332817fcSGerrit Uitslag $dir = 1; 98332817fcSGerrit Uitslag $revsexpectedpos = 1361901536; 99332817fcSGerrit Uitslag $revsexpectedneg = false; 100332817fcSGerrit Uitslag 101332817fcSGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 102332817fcSGerrit Uitslag $revs = $pagelog->getRelativeRevision($rev, $dir); 103332817fcSGerrit Uitslag $this->assertEquals($revsexpectedpos, $revs); 104332817fcSGerrit Uitslag 105332817fcSGerrit Uitslag $revs = $pagelog->getRelativeRevision($rev, -$dir); 106332817fcSGerrit Uitslag $this->assertEquals($revsexpectedneg, $revs); 107332817fcSGerrit Uitslag } 108332817fcSGerrit Uitslag 109332817fcSGerrit Uitslag /** 110332817fcSGerrit Uitslag * start at exact one before last revision of mailinglist page 111332817fcSGerrit Uitslag * 112332817fcSGerrit Uitslag */ 113332817fcSGerrit Uitslag function test_requestlastrevisions() { 114332817fcSGerrit Uitslag $rev = 1361901536; 115332817fcSGerrit Uitslag $dir = -1; 116332817fcSGerrit Uitslag $revsexpectedlast = 1360110636; 117332817fcSGerrit Uitslag $revsexpectedbeforelast = false; 118332817fcSGerrit Uitslag 119332817fcSGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 120332817fcSGerrit Uitslag $revs = $pagelog->getRelativeRevision($rev, $dir); 121332817fcSGerrit Uitslag $this->assertEquals($revsexpectedlast, $revs); 122332817fcSGerrit Uitslag 123332817fcSGerrit Uitslag $revs = $pagelog->getRelativeRevision($rev, 2 * $dir); 124332817fcSGerrit Uitslag $this->assertEquals($revsexpectedbeforelast, $revs); 12555545bccSGerrit Uitslag } 12655545bccSGerrit Uitslag 12755545bccSGerrit Uitslag /** 12859cce2d9SGerrit Uitslag * request existing rev and check cache 12955545bccSGerrit Uitslag */ 13059cce2d9SGerrit Uitslag function test_requestrev_checkcache() { 13155545bccSGerrit Uitslag $rev = 1362525359; 13255545bccSGerrit Uitslag $dir = 1; 13355545bccSGerrit Uitslag $revexpected = 1362525899; 13471951841SGerrit Uitslag $infoexpected = ChangeLog::parseLogLine($this->logline); 13572d8810bSGerrit Uitslag $infoexpected['mode'] = 'page'; 13655545bccSGerrit Uitslag 137047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 138047bad06SGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir); 13955545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 14059cce2d9SGerrit Uitslag 14155545bccSGerrit Uitslag //checked info returned from cache 142047bad06SGerrit Uitslag $info = $pagelog->getRevisionInfo($revfound); 14355545bccSGerrit Uitslag $this->assertEquals($infoexpected, $info); 14455545bccSGerrit Uitslag } 14555545bccSGerrit Uitslag 14655545bccSGerrit Uitslag /** 14759cce2d9SGerrit Uitslag * request existing rev 14859cce2d9SGerrit Uitslag */ 14959cce2d9SGerrit Uitslag function test_requestnextrev() { 15059cce2d9SGerrit Uitslag $rev = 1362525899; 15159cce2d9SGerrit Uitslag 15259cce2d9SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 15359cce2d9SGerrit Uitslag 15459cce2d9SGerrit Uitslag $dir = 1; 15559cce2d9SGerrit Uitslag $revexpected = 1362525926; 15659cce2d9SGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir); 15759cce2d9SGerrit Uitslag $this->assertEquals($revexpected, $revfound); 15859cce2d9SGerrit Uitslag 15959cce2d9SGerrit Uitslag $dir = 2; 16059cce2d9SGerrit Uitslag $revexpected = 1362526039; 16159cce2d9SGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir); 16259cce2d9SGerrit Uitslag $this->assertEquals($revexpected, $revfound); 16359cce2d9SGerrit Uitslag 16459cce2d9SGerrit Uitslag $dir = -1; 16559cce2d9SGerrit Uitslag $revexpected = 1362525359; 16659cce2d9SGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir); 16759cce2d9SGerrit Uitslag $this->assertEquals($revexpected, $revfound); 16859cce2d9SGerrit Uitslag 16959cce2d9SGerrit Uitslag $dir = -2; 17059cce2d9SGerrit Uitslag $revexpected = 1362525145; 17159cce2d9SGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir); 17259cce2d9SGerrit Uitslag $this->assertEquals($revexpected, $revfound); 17359cce2d9SGerrit Uitslag } 17459cce2d9SGerrit Uitslag 17559cce2d9SGerrit Uitslag /** 17655545bccSGerrit Uitslag * request existing rev with chucked reading 17755545bccSGerrit Uitslag */ 17855545bccSGerrit Uitslag function test_requestnextrev_chuncked() { 17955545bccSGerrit Uitslag $rev = 1362525899; 18055545bccSGerrit Uitslag 181047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 18259cce2d9SGerrit Uitslag 18359cce2d9SGerrit Uitslag $dir = 1; 18459cce2d9SGerrit Uitslag $revexpected = 1362525926; 18559cce2d9SGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir); 18659cce2d9SGerrit Uitslag $this->assertEquals($revexpected, $revfound); 18759cce2d9SGerrit Uitslag 18859cce2d9SGerrit Uitslag $dir = 2; 18959cce2d9SGerrit Uitslag $revexpected = 1362526039; 19059cce2d9SGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir); 19159cce2d9SGerrit Uitslag $this->assertEquals($revexpected, $revfound); 19259cce2d9SGerrit Uitslag 19359cce2d9SGerrit Uitslag $dir = -1; 19459cce2d9SGerrit Uitslag $revexpected = 1362525359; 19559cce2d9SGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir); 19659cce2d9SGerrit Uitslag $this->assertEquals($revexpected, $revfound); 19759cce2d9SGerrit Uitslag 19859cce2d9SGerrit Uitslag $dir = -2; 19959cce2d9SGerrit Uitslag $revexpected = 1362525145; 20059cce2d9SGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir); 20159cce2d9SGerrit Uitslag $this->assertEquals($revexpected, $revfound); 20259cce2d9SGerrit Uitslag } 20359cce2d9SGerrit Uitslag 20459cce2d9SGerrit Uitslag 20559cce2d9SGerrit Uitslag /** 20659cce2d9SGerrit Uitslag * request existing rev with chucked reading, chunk size smaller than line length 20759cce2d9SGerrit Uitslag */ 20859cce2d9SGerrit Uitslag function test_requestnextrev_chunkshorterthanlines() { 20959cce2d9SGerrit Uitslag $rev = 1362525899; 21059cce2d9SGerrit Uitslag 21159cce2d9SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); 21259cce2d9SGerrit Uitslag 21359cce2d9SGerrit Uitslag $dir = 1; 21459cce2d9SGerrit Uitslag $revexpected = 1362525926; 21559cce2d9SGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir); 21659cce2d9SGerrit Uitslag $this->assertEquals($revexpected, $revfound); 21759cce2d9SGerrit Uitslag 21859cce2d9SGerrit Uitslag $dir = 2; 21959cce2d9SGerrit Uitslag $revexpected = 1362526039; 22059cce2d9SGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir); 22159cce2d9SGerrit Uitslag $this->assertEquals($revexpected, $revfound); 22259cce2d9SGerrit Uitslag 22359cce2d9SGerrit Uitslag $dir = -1; 22459cce2d9SGerrit Uitslag $revexpected = 1362525359; 22559cce2d9SGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir); 22659cce2d9SGerrit Uitslag $this->assertEquals($revexpected, $revfound); 22759cce2d9SGerrit Uitslag 22859cce2d9SGerrit Uitslag $dir = -2; 22959cce2d9SGerrit Uitslag $revexpected = 1362525145; 230047bad06SGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir); 23155545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 23255545bccSGerrit Uitslag } 23355545bccSGerrit Uitslag 23455545bccSGerrit Uitslag /** 23555545bccSGerrit Uitslag * request existing rev 23655545bccSGerrit Uitslag */ 23755545bccSGerrit Uitslag function test_requestnextfifthrev() { 23855545bccSGerrit Uitslag $rev = 1362525899; 23955545bccSGerrit Uitslag $dir = 5; 24055545bccSGerrit Uitslag $revexpected = 1362526767; 24155545bccSGerrit Uitslag 242047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 243047bad06SGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir); 24455545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 24555545bccSGerrit Uitslag } 24655545bccSGerrit Uitslag 24755545bccSGerrit Uitslag /** 24855545bccSGerrit Uitslag * request existing rev with chucked reading 24955545bccSGerrit Uitslag */ 25055545bccSGerrit Uitslag function test_requestnextfifthrev_chuncked() { 25155545bccSGerrit Uitslag $rev = 1362525899; 25255545bccSGerrit Uitslag $dir = 5; 25355545bccSGerrit Uitslag $revexpected = 1362526767; 25455545bccSGerrit Uitslag 255047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 256047bad06SGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir); 25755545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 25855545bccSGerrit Uitslag } 25955545bccSGerrit Uitslag 26055545bccSGerrit Uitslag /** 26155545bccSGerrit Uitslag * request existing rev 26255545bccSGerrit Uitslag */ 26355545bccSGerrit Uitslag function test_requestprevrev() { 26455545bccSGerrit Uitslag $rev = 1362525899; 26555545bccSGerrit Uitslag $dir1 = -1; 26655545bccSGerrit Uitslag $dir5 = -5; 26755545bccSGerrit Uitslag $revexpected1 = 1362525359; 26855545bccSGerrit Uitslag $revexpected5 = 1360110636; 26955545bccSGerrit Uitslag 270047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 271047bad06SGerrit Uitslag $revfound1 = $pagelog->getRelativeRevision($rev, $dir1); 27255545bccSGerrit Uitslag $this->assertEquals($revexpected1, $revfound1); 27355545bccSGerrit Uitslag 274047bad06SGerrit Uitslag $revfound5 = $pagelog->getRelativeRevision($rev, $dir5); 27555545bccSGerrit Uitslag $this->assertEquals($revexpected5, $revfound5); 27655545bccSGerrit Uitslag } 27755545bccSGerrit Uitslag 27855545bccSGerrit Uitslag /** 27955545bccSGerrit Uitslag * request existing rev with chucked reading 28055545bccSGerrit Uitslag */ 28155545bccSGerrit Uitslag function test_requestprevrev_chuncked() { 28255545bccSGerrit Uitslag $rev = 1362525899; 28355545bccSGerrit Uitslag $dir1 = -1; 28455545bccSGerrit Uitslag $dir5 = -5; 28555545bccSGerrit Uitslag $revexpected1 = 1362525359; 28655545bccSGerrit Uitslag $revexpected5 = 1360110636; 28755545bccSGerrit Uitslag 288047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 289047bad06SGerrit Uitslag $revfound1 = $pagelog->getRelativeRevision($rev, $dir1); 29055545bccSGerrit Uitslag $this->assertEquals($revexpected1, $revfound1); 29155545bccSGerrit Uitslag 292047bad06SGerrit Uitslag $revfound5 = $pagelog->getRelativeRevision($rev, $dir5); 29355545bccSGerrit Uitslag $this->assertEquals($revexpected5, $revfound5); 29455545bccSGerrit Uitslag } 29555545bccSGerrit Uitslag 29655545bccSGerrit Uitslag /** 29755545bccSGerrit Uitslag * request after recentest version in changelog 29855545bccSGerrit Uitslag */ 29955545bccSGerrit Uitslag function test_requestrecentestlogline_next() { 30055545bccSGerrit Uitslag $rev = 1374261194; 30155545bccSGerrit Uitslag $dir = 1; 30255545bccSGerrit Uitslag $revexpected = false; 30355545bccSGerrit Uitslag 304047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 305047bad06SGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir); 30655545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 30755545bccSGerrit Uitslag } 30855545bccSGerrit Uitslag 30955545bccSGerrit Uitslag /** 31055545bccSGerrit Uitslag * request after recentest version in changelog, with chuncked reading 31155545bccSGerrit Uitslag */ 31255545bccSGerrit Uitslag function test_requestrecentestlogline_next_chuncked() { 31355545bccSGerrit Uitslag $rev = 1374261194; 31455545bccSGerrit Uitslag $dir = 1; 31555545bccSGerrit Uitslag $revexpected = false; 31655545bccSGerrit Uitslag 317047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 318047bad06SGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir); 31955545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 32055545bccSGerrit Uitslag } 32155545bccSGerrit Uitslag 32255545bccSGerrit Uitslag /** 32355545bccSGerrit Uitslag * request before current version 32455545bccSGerrit Uitslag */ 32555545bccSGerrit Uitslag function test_requestrecentestlogline_prev() { 32655545bccSGerrit Uitslag $rev = 1374261194; 32755545bccSGerrit Uitslag $dir = -1; 32855545bccSGerrit Uitslag $revexpected = 1371579614; 32955545bccSGerrit Uitslag 330047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 331047bad06SGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir); 33255545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 33355545bccSGerrit Uitslag } 33455545bccSGerrit Uitslag 33555545bccSGerrit Uitslag /** 33655545bccSGerrit Uitslag * request before current version, with chuncked reading 33755545bccSGerrit Uitslag */ 33855545bccSGerrit Uitslag function test_requestrecentestlogline_prev_chuncked() { 33955545bccSGerrit Uitslag $rev = 1374261194; 34055545bccSGerrit Uitslag $dir = -1; 34155545bccSGerrit Uitslag $revexpected = 1371579614; 34255545bccSGerrit Uitslag 343047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 344047bad06SGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir); 34555545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 34655545bccSGerrit Uitslag } 34755545bccSGerrit Uitslag 34855545bccSGerrit Uitslag /** 34955545bccSGerrit Uitslag * Request negative revision 35055545bccSGerrit Uitslag * looks in positive direction, so it catches the oldest revision 35155545bccSGerrit Uitslag */ 35255545bccSGerrit Uitslag function test_negativerev_posdir() { 35355545bccSGerrit Uitslag $rev = -10; 35455545bccSGerrit Uitslag $dir = 1; 35555545bccSGerrit Uitslag $revexpected = 1360110636; 35655545bccSGerrit Uitslag 357047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 358047bad06SGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir); 35955545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 36055545bccSGerrit Uitslag } 36155545bccSGerrit Uitslag 36255545bccSGerrit Uitslag /** 36355545bccSGerrit Uitslag * Request negative revision 36455545bccSGerrit Uitslag * looks in negative direction, but there is nothing 36555545bccSGerrit Uitslag */ 36655545bccSGerrit Uitslag function test_negativerev_negdir() { 36755545bccSGerrit Uitslag $rev = -10; 36855545bccSGerrit Uitslag $dir = -1; 36955545bccSGerrit Uitslag $revexpected = false; 37055545bccSGerrit Uitslag 371047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 372047bad06SGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir); 37355545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 37455545bccSGerrit Uitslag } 37555545bccSGerrit Uitslag 37655545bccSGerrit Uitslag /** 37755545bccSGerrit Uitslag * Start at non existing revision somewhere between existing revisions 37855545bccSGerrit Uitslag */ 37955545bccSGerrit Uitslag function test_startatnotexistingrev_next() { 38055545bccSGerrit Uitslag $rev = 1362525890; 38155545bccSGerrit Uitslag $dir = 1; 38255545bccSGerrit Uitslag $revexpected = 1362525899; 38355545bccSGerrit Uitslag 384047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 385047bad06SGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir); 38655545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 38755545bccSGerrit Uitslag } 38855545bccSGerrit Uitslag 38955545bccSGerrit Uitslag /** 39055545bccSGerrit Uitslag * Start at non existing revision somewhere between existing revisions 39155545bccSGerrit Uitslag */ 39255545bccSGerrit Uitslag function test_startatnotexistingrev_prev() { 39355545bccSGerrit Uitslag $rev = 1362525890; 39455545bccSGerrit Uitslag $dir = -1; 39555545bccSGerrit Uitslag $revexpected = 1362525359; 39655545bccSGerrit Uitslag 397047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 398047bad06SGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir); 39955545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 40055545bccSGerrit Uitslag } 4010f13c836SGerrit Uitslag 4020f13c836SGerrit Uitslag function test_iscurrentpagerevision() { 4030f13c836SGerrit Uitslag $rev = 1385051947; 4040f13c836SGerrit Uitslag $currentexpected = true; 4050f13c836SGerrit Uitslag 4060f13c836SGerrit Uitslag //set a known timestamp 4070f13c836SGerrit Uitslag touch(wikiFN($this->pageid), $rev); 4080f13c836SGerrit Uitslag 409047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 410047bad06SGerrit Uitslag $current = $pagelog->isCurrentRevision($rev); 4110f13c836SGerrit Uitslag $this->assertEquals($currentexpected, $current); 4120f13c836SGerrit Uitslag } 4130f13c836SGerrit Uitslag 4140f13c836SGerrit Uitslag function test_isnotcurrentpagerevision() { 4150f13c836SGerrit Uitslag $rev = 1385051947; 4160f13c836SGerrit Uitslag $not_current_rev = $rev - 1; 4170f13c836SGerrit Uitslag $currentexpected = false; 4180f13c836SGerrit Uitslag 4190f13c836SGerrit Uitslag //set a known timestamp 4200f13c836SGerrit Uitslag touch(wikiFN($this->pageid), $rev); 4210f13c836SGerrit Uitslag 422047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 423047bad06SGerrit Uitslag $current = $pagelog->isCurrentRevision($not_current_rev); 4240f13c836SGerrit Uitslag $this->assertEquals($currentexpected, $current); 4250f13c836SGerrit Uitslag } 4260f13c836SGerrit Uitslag 4270f13c836SGerrit Uitslag function test_notexistingcurrentpage() { 4280f13c836SGerrit Uitslag $rev = 1385051947; 4290f13c836SGerrit Uitslag $currentexpected = false; 4300f13c836SGerrit Uitslag 431047bad06SGerrit Uitslag $pagelog = new PageChangeLog('nonexistingpage', $chunk_size = 8192); 432047bad06SGerrit Uitslag $current = $pagelog->isCurrentRevision($rev); 4330f13c836SGerrit Uitslag $this->assertEquals($currentexpected, $current); 4340f13c836SGerrit Uitslag } 43555545bccSGerrit Uitslag} 436