155545bccSGerrit Uitslag<?php 255545bccSGerrit Uitslag 355545bccSGerrit Uitslag/** 455545bccSGerrit Uitslag * Tests for requesting revisioninfo of a revision of a page with getRevisionInfo() 555545bccSGerrit Uitslag * 655545bccSGerrit Uitslag * This class uses the files: 755545bccSGerrit Uitslag * - data/pages/mailinglist.txt 855545bccSGerrit Uitslag * - data/meta/mailinglist.changes 955545bccSGerrit Uitslag */ 1055545bccSGerrit Uitslagclass changelog_getrelativerevision_test extends DokuWikiTest { 1155545bccSGerrit Uitslag 1255545bccSGerrit Uitslag private $logline = "1362525899 127.0.0.1 E mailinglist pubcie [Data entry] \n"; 1355545bccSGerrit Uitslag private $pageid = 'mailinglist'; 1455545bccSGerrit Uitslag 1555545bccSGerrit Uitslag function setup() { 1655545bccSGerrit Uitslag parent::setup(); 1755545bccSGerrit Uitslag global $cache_revinfo; 1855545bccSGerrit Uitslag $cache =& $cache_revinfo; 1955545bccSGerrit Uitslag if(isset($cache['nonexist'])) { 2055545bccSGerrit Uitslag unset($cache['nonexist']); 2155545bccSGerrit Uitslag } 2255545bccSGerrit Uitslag if(isset($cache['mailinglist'])) { 2355545bccSGerrit Uitslag unset($cache['mailinglist']); 2455545bccSGerrit Uitslag } 2555545bccSGerrit Uitslag } 2655545bccSGerrit Uitslag 2755545bccSGerrit Uitslag /** 2855545bccSGerrit Uitslag * no nonexist.changes meta file available 2955545bccSGerrit Uitslag */ 3055545bccSGerrit Uitslag function test_changemetadatanotexists() { 3155545bccSGerrit Uitslag $rev = 1362525899; 3255545bccSGerrit Uitslag $dir = 1; 3355545bccSGerrit Uitslag $id = 'nonexist'; 3455545bccSGerrit Uitslag $revsexpected = false; 3555545bccSGerrit Uitslag 3655545bccSGerrit Uitslag $pagelog = new PageRevisionLog($id, $chunk_size = 8192); 3755545bccSGerrit Uitslag $revs = $pagelog->getRelativeRevision($rev, $dir, $media = false); 3855545bccSGerrit Uitslag $this->assertEquals($revsexpected, $revs); 3955545bccSGerrit Uitslag } 4055545bccSGerrit Uitslag 4155545bccSGerrit Uitslag /** 4255545bccSGerrit Uitslag * no nonexist.changes meta file available 4355545bccSGerrit Uitslag */ 4455545bccSGerrit Uitslag function test_nodirection() { 4555545bccSGerrit Uitslag $rev = 1362525899; 4655545bccSGerrit Uitslag $dir = 0; 4755545bccSGerrit Uitslag $revsexpected = false; 4855545bccSGerrit Uitslag 4955545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 5055545bccSGerrit Uitslag $revs = $pagelog->getRelativeRevision($rev, $dir, $media = false); 5155545bccSGerrit Uitslag $this->assertEquals($revsexpected, $revs); 5255545bccSGerrit Uitslag } 5355545bccSGerrit Uitslag 5455545bccSGerrit Uitslag /** 5555545bccSGerrit Uitslag * start at exact current revision of mailinglist page 5655545bccSGerrit Uitslag * 5755545bccSGerrit Uitslag */ 5855545bccSGerrit Uitslag function test_startatexactcurrentrev() { 5955545bccSGerrit Uitslag $rev = 1374261194; 6055545bccSGerrit Uitslag $dir = 1; 6155545bccSGerrit Uitslag $revsexpected = false; 6255545bccSGerrit Uitslag 6355545bccSGerrit Uitslag// global $INFO; 6455545bccSGerrit Uitslag// $INFO = pageinfo(); 6555545bccSGerrit Uitslag// var_dump($INFO); 6655545bccSGerrit Uitslag// var_dump($INFO['meta']); 6755545bccSGerrit Uitslag// var_dump($INFO['meta']['last_change']); 6855545bccSGerrit Uitslag// var_dump($INFO['meta']['last_change']['date']); 6955545bccSGerrit Uitslag 7055545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 7155545bccSGerrit Uitslag $revs = $pagelog->getRelativeRevision($rev, $dir, $media = false); 7255545bccSGerrit Uitslag $this->assertEquals($revsexpected, $revs); 7355545bccSGerrit Uitslag } 7455545bccSGerrit Uitslag 7555545bccSGerrit Uitslag /** 7655545bccSGerrit Uitslag * request existing rev 7755545bccSGerrit Uitslag */ 7855545bccSGerrit Uitslag function test_requestrev() { 7955545bccSGerrit Uitslag $rev = 1362525359; 8055545bccSGerrit Uitslag $dir = 1; 8155545bccSGerrit Uitslag $revexpected = 1362525899; 8255545bccSGerrit Uitslag $infoexpected = parseChangelogLine($this->logline); 8355545bccSGerrit Uitslag 8455545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 8555545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 8655545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 8755545bccSGerrit Uitslag //checked info returned from cache 8855545bccSGerrit Uitslag $info = $pagelog->getRevisionInfo($revfound, $media = false); 8955545bccSGerrit Uitslag $this->assertEquals($infoexpected, $info); 9055545bccSGerrit Uitslag } 9155545bccSGerrit Uitslag 9255545bccSGerrit Uitslag /** 9355545bccSGerrit Uitslag * request existing rev with chucked reading 9455545bccSGerrit Uitslag */ 9555545bccSGerrit Uitslag function test_requestnextrev_chuncked() { 9655545bccSGerrit Uitslag $rev = 1362525899; 9755545bccSGerrit Uitslag $dir = 1; 9855545bccSGerrit Uitslag $revexpected = 1362525926; 9955545bccSGerrit Uitslag 10055545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); 10155545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 10255545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 10355545bccSGerrit Uitslag } 10455545bccSGerrit Uitslag 10555545bccSGerrit Uitslag /** 10655545bccSGerrit Uitslag * request existing rev 10755545bccSGerrit Uitslag */ 10855545bccSGerrit Uitslag function test_requestnextfifthrev() { 10955545bccSGerrit Uitslag $rev = 1362525899; 11055545bccSGerrit Uitslag $dir = 5; 11155545bccSGerrit Uitslag $revexpected = 1362526767; 11255545bccSGerrit Uitslag 11355545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 11455545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 11555545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 11655545bccSGerrit Uitslag } 11755545bccSGerrit Uitslag 11855545bccSGerrit Uitslag /** 11955545bccSGerrit Uitslag * request existing rev with chucked reading 12055545bccSGerrit Uitslag */ 12155545bccSGerrit Uitslag function test_requestnextfifthrev_chuncked() { 12255545bccSGerrit Uitslag $rev = 1362525899; 12355545bccSGerrit Uitslag $dir = 5; 12455545bccSGerrit Uitslag $revexpected = 1362526767; 12555545bccSGerrit Uitslag 12655545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); 12755545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 12855545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 12955545bccSGerrit Uitslag } 13055545bccSGerrit Uitslag 13155545bccSGerrit Uitslag /** 13255545bccSGerrit Uitslag * request existing rev 13355545bccSGerrit Uitslag */ 13455545bccSGerrit Uitslag function test_requestprevrev() { 13555545bccSGerrit Uitslag $rev = 1362525899; 13655545bccSGerrit Uitslag $dir1 = -1; 13755545bccSGerrit Uitslag $dir5 = -5; 13855545bccSGerrit Uitslag $revexpected1 = 1362525359; 13955545bccSGerrit Uitslag $revexpected5 = 1360110636; 14055545bccSGerrit Uitslag 14155545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 14255545bccSGerrit Uitslag $revfound1 = $pagelog->getRelativeRevision($rev, $dir1, $media = false); 14355545bccSGerrit Uitslag $this->assertEquals($revexpected1, $revfound1); 14455545bccSGerrit Uitslag 14555545bccSGerrit Uitslag $revfound5 = $pagelog->getRelativeRevision($rev, $dir5, $media = false); 14655545bccSGerrit Uitslag $this->assertEquals($revexpected5, $revfound5); 14755545bccSGerrit Uitslag } 14855545bccSGerrit Uitslag 14955545bccSGerrit Uitslag /** 15055545bccSGerrit Uitslag * request existing rev with chucked reading 15155545bccSGerrit Uitslag */ 15255545bccSGerrit Uitslag function test_requestprevrev_chuncked() { 15355545bccSGerrit Uitslag $rev = 1362525899; 15455545bccSGerrit Uitslag $dir1 = -1; 15555545bccSGerrit Uitslag $dir5 = -5; 15655545bccSGerrit Uitslag $revexpected1 = 1362525359; 15755545bccSGerrit Uitslag $revexpected5 = 1360110636; 15855545bccSGerrit Uitslag 15955545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); 16055545bccSGerrit Uitslag $revfound1 = $pagelog->getRelativeRevision($rev, $dir1, $media = false); 16155545bccSGerrit Uitslag $this->assertEquals($revexpected1, $revfound1); 16255545bccSGerrit Uitslag 16355545bccSGerrit Uitslag $revfound5 = $pagelog->getRelativeRevision($rev, $dir5, $media = false); 16455545bccSGerrit Uitslag $this->assertEquals($revexpected5, $revfound5); 16555545bccSGerrit Uitslag } 16655545bccSGerrit Uitslag 16755545bccSGerrit Uitslag /** 16855545bccSGerrit Uitslag * request after recentest version in changelog 16955545bccSGerrit Uitslag */ 17055545bccSGerrit Uitslag function test_requestrecentestlogline_next() { 17155545bccSGerrit Uitslag $rev = 1374261194; 17255545bccSGerrit Uitslag $dir = 1; 17355545bccSGerrit Uitslag $revexpected = false; 17455545bccSGerrit Uitslag 17555545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 17655545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 17755545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 17855545bccSGerrit Uitslag } 17955545bccSGerrit Uitslag 18055545bccSGerrit Uitslag /** 18155545bccSGerrit Uitslag * request after recentest version in changelog, with chuncked reading 18255545bccSGerrit Uitslag */ 18355545bccSGerrit Uitslag function test_requestrecentestlogline_next_chuncked() { 18455545bccSGerrit Uitslag $rev = 1374261194; 18555545bccSGerrit Uitslag $dir = 1; 18655545bccSGerrit Uitslag $revexpected = false; 18755545bccSGerrit Uitslag 18855545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); 18955545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 19055545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 19155545bccSGerrit Uitslag } 19255545bccSGerrit Uitslag 19355545bccSGerrit Uitslag 19455545bccSGerrit Uitslag /** 19555545bccSGerrit Uitslag * request before current version 19655545bccSGerrit Uitslag */ 19755545bccSGerrit Uitslag function test_requestrecentestlogline_prev() { 19855545bccSGerrit Uitslag $rev = 1374261194; 19955545bccSGerrit Uitslag $dir = -1; 20055545bccSGerrit Uitslag $revexpected = 1371579614; 20155545bccSGerrit Uitslag 20255545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 20355545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 20455545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 20555545bccSGerrit Uitslag } 20655545bccSGerrit Uitslag 20755545bccSGerrit Uitslag /** 20855545bccSGerrit Uitslag * request before current version, with chuncked reading 20955545bccSGerrit Uitslag */ 21055545bccSGerrit Uitslag function test_requestrecentestlogline_prev_chuncked() { 21155545bccSGerrit Uitslag $rev = 1374261194; 21255545bccSGerrit Uitslag $dir = -1; 21355545bccSGerrit Uitslag $revexpected = 1371579614; 21455545bccSGerrit Uitslag 21555545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); 21655545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 21755545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 21855545bccSGerrit Uitslag } 21955545bccSGerrit Uitslag 22055545bccSGerrit Uitslag /** 22155545bccSGerrit Uitslag * Request negative revision 22255545bccSGerrit Uitslag * looks in positive direction, so it catches the oldest revision 22355545bccSGerrit Uitslag */ 22455545bccSGerrit Uitslag function test_negativerev_posdir() { 22555545bccSGerrit Uitslag $rev = -10; 22655545bccSGerrit Uitslag $dir = 1; 22755545bccSGerrit Uitslag $revexpected = 1360110636; 22855545bccSGerrit Uitslag 22955545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 23055545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 23155545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 23255545bccSGerrit Uitslag } 23355545bccSGerrit Uitslag 23455545bccSGerrit Uitslag /** 23555545bccSGerrit Uitslag * Request negative revision 23655545bccSGerrit Uitslag * looks in negative direction, but there is nothing 23755545bccSGerrit Uitslag */ 23855545bccSGerrit Uitslag function test_negativerev_negdir() { 23955545bccSGerrit Uitslag $rev = -10; 24055545bccSGerrit Uitslag $dir = -1; 24155545bccSGerrit Uitslag $revexpected = false; 24255545bccSGerrit Uitslag 24355545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 24455545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 24555545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 24655545bccSGerrit Uitslag } 24755545bccSGerrit Uitslag 24855545bccSGerrit Uitslag /** 24955545bccSGerrit Uitslag * Start at non existing revision somewhere between existing revisions 25055545bccSGerrit Uitslag */ 25155545bccSGerrit Uitslag function test_startatnotexistingrev_next() { 25255545bccSGerrit Uitslag $rev = 1362525890; 25355545bccSGerrit Uitslag $dir = 1; 25455545bccSGerrit Uitslag $revexpected = 1362525899; 25555545bccSGerrit Uitslag 25655545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 25755545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 25855545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 25955545bccSGerrit Uitslag } 26055545bccSGerrit Uitslag 26155545bccSGerrit Uitslag /** 26255545bccSGerrit Uitslag * Start at non existing revision somewhere between existing revisions 26355545bccSGerrit Uitslag */ 26455545bccSGerrit Uitslag function test_startatnotexistingrev_prev() { 26555545bccSGerrit Uitslag $rev = 1362525890; 26655545bccSGerrit Uitslag $dir = -1; 26755545bccSGerrit Uitslag $revexpected = 1362525359; 26855545bccSGerrit Uitslag 26955545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 27055545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 27155545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 27255545bccSGerrit Uitslag } 273*0f13c836SGerrit Uitslag 274*0f13c836SGerrit Uitslag function test_iscurrentpagerevision() { 275*0f13c836SGerrit Uitslag $rev = 1385051947; 276*0f13c836SGerrit Uitslag $currentexpected = true; 277*0f13c836SGerrit Uitslag 278*0f13c836SGerrit Uitslag //set a known timestamp 279*0f13c836SGerrit Uitslag touch(wikiFN($this->pageid), $rev); 280*0f13c836SGerrit Uitslag 281*0f13c836SGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 282*0f13c836SGerrit Uitslag 283*0f13c836SGerrit Uitslag $current = $pagelog->isCurrentRevision($rev, $media = false); 284*0f13c836SGerrit Uitslag $this->assertEquals($currentexpected, $current); 285*0f13c836SGerrit Uitslag } 286*0f13c836SGerrit Uitslag 287*0f13c836SGerrit Uitslag function test_isnotcurrentpagerevision() { 288*0f13c836SGerrit Uitslag $rev = 1385051947; 289*0f13c836SGerrit Uitslag $not_current_rev = $rev - 1; 290*0f13c836SGerrit Uitslag $currentexpected = false; 291*0f13c836SGerrit Uitslag 292*0f13c836SGerrit Uitslag //set a known timestamp 293*0f13c836SGerrit Uitslag touch(wikiFN($this->pageid), $rev); 294*0f13c836SGerrit Uitslag 295*0f13c836SGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 296*0f13c836SGerrit Uitslag $current = $pagelog->isCurrentRevision($not_current_rev, $media = false); 297*0f13c836SGerrit Uitslag $this->assertEquals($currentexpected, $current); 298*0f13c836SGerrit Uitslag } 299*0f13c836SGerrit Uitslag 300*0f13c836SGerrit Uitslag function test_notexistingcurrentpage() { 301*0f13c836SGerrit Uitslag $rev = 1385051947; 302*0f13c836SGerrit Uitslag $currentexpected = false; 303*0f13c836SGerrit Uitslag 304*0f13c836SGerrit Uitslag $pagelog = new PageRevisionLog('nonexistingpage', $chunk_size = 8192); 305*0f13c836SGerrit Uitslag $current = $pagelog->isCurrentRevision($rev, $media = false); 306*0f13c836SGerrit Uitslag $this->assertEquals($currentexpected, $current); 307*0f13c836SGerrit Uitslag } 30855545bccSGerrit Uitslag}