151bd6f03SKlap-in<?php 251bd6f03SKlap-in 371951841SGerrit Uitslaguse dokuwiki\ChangeLog\ChangeLog; 40c3a5702SAndreas Gohruse dokuwiki\ChangeLog\PageChangeLog; 50c3a5702SAndreas Gohr 651bd6f03SKlap-in/** 751bd6f03SKlap-in * Tests for requesting revisioninfo of a revision of a page with getRevisionInfo() 851bd6f03SKlap-in * 951bd6f03SKlap-in * This class uses the files: 1051bd6f03SKlap-in * - data/pages/mailinglist.txt 1151bd6f03SKlap-in * - data/meta/mailinglist.changes 1251bd6f03SKlap-in */ 1351bd6f03SKlap-inclass changelog_getrevisionsinfo_test extends DokuWikiTest { 1451bd6f03SKlap-in 1551bd6f03SKlap-in private $logline = "1362525899 127.0.0.1 E mailinglist pubcie [Data entry] \n"; 1651bd6f03SKlap-in private $firstlogline = "1374261194 127.0.0.1 E mailinglist pubcie \n"; 1751bd6f03SKlap-in private $pageid = 'mailinglist'; 1851bd6f03SKlap-in 191c33cec3SAndreas Gohr function setup() : void { 2051bd6f03SKlap-in parent::setup(); 2151bd6f03SKlap-in global $cache_revinfo; 2251bd6f03SKlap-in $cache =& $cache_revinfo; 2351bd6f03SKlap-in unset($cache['nonexist']); 246556cf69SGerrit Uitslag unset($cache['mailinglist']); 2551bd6f03SKlap-in } 2651bd6f03SKlap-in 2751bd6f03SKlap-in /** 2851bd6f03SKlap-in * no nonexist.changes meta file available 2951bd6f03SKlap-in */ 3051bd6f03SKlap-in function test_changemetadatanotexists() { 3151bd6f03SKlap-in $rev = 1362525899; 3251bd6f03SKlap-in $id = 'nonexist'; 3351bd6f03SKlap-in $revsexpected = false; 3451bd6f03SKlap-in 35047bad06SGerrit Uitslag $pagelog = new PageChangeLog($id, $chunk_size = 8192); 36047bad06SGerrit Uitslag $revs = $pagelog->getRevisionInfo($rev); 3751bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 3851bd6f03SKlap-in } 3951bd6f03SKlap-in 4051bd6f03SKlap-in /** 4151bd6f03SKlap-in * request existing rev 4251bd6f03SKlap-in */ 4351bd6f03SKlap-in function test_requestrev() { 4451bd6f03SKlap-in $rev = 1362525899; 4571951841SGerrit Uitslag $infoexpected = ChangeLog::parseLogLine($this->logline); 46*72d8810bSGerrit Uitslag $infoexpected['mode'] = 'page'; 4751bd6f03SKlap-in 48047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 49047bad06SGerrit Uitslag $info = $pagelog->getRevisionInfo($rev); 5051bd6f03SKlap-in $this->assertEquals($infoexpected, $info); 5151bd6f03SKlap-in //returns cached value 52047bad06SGerrit Uitslag $info = $pagelog->getRevisionInfo($rev); 5351bd6f03SKlap-in $this->assertEquals($infoexpected, $info); 5451bd6f03SKlap-in } 5551bd6f03SKlap-in 5651bd6f03SKlap-in /** 5751bd6f03SKlap-in * request existing rev with chucked reading 5851bd6f03SKlap-in */ 5951bd6f03SKlap-in function test_requestrev_chuncked() { 6051bd6f03SKlap-in $rev = 1362525899; 6171951841SGerrit Uitslag $infoexpected = ChangeLog::parseLogLine($this->logline); 62*72d8810bSGerrit Uitslag $infoexpected['mode'] = 'page'; 6351bd6f03SKlap-in 64047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 65047bad06SGerrit Uitslag $info = $pagelog->getRevisionInfo($rev); 6651bd6f03SKlap-in $this->assertEquals($infoexpected, $info); 6751bd6f03SKlap-in } 6851bd6f03SKlap-in 6951bd6f03SKlap-in /** 7059cce2d9SGerrit Uitslag * request existing rev with chucked reading 7159cce2d9SGerrit Uitslag */ 7259cce2d9SGerrit Uitslag function test_requestrev_chunckedsmallerthanlinelength() { 7359cce2d9SGerrit Uitslag $rev = 1362525899; 7471951841SGerrit Uitslag $infoexpected = ChangeLog::parseLogLine($this->logline); 75*72d8810bSGerrit Uitslag $infoexpected['mode'] = 'page'; 7659cce2d9SGerrit Uitslag 7759cce2d9SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); 7859cce2d9SGerrit Uitslag $info = $pagelog->getRevisionInfo($rev); 7959cce2d9SGerrit Uitslag $this->assertEquals($infoexpected, $info); 8059cce2d9SGerrit Uitslag } 8159cce2d9SGerrit Uitslag 8259cce2d9SGerrit Uitslag /** 8351bd6f03SKlap-in * request current version 8451bd6f03SKlap-in */ 8551bd6f03SKlap-in function test_requestrecentestlogline() { 8651bd6f03SKlap-in $rev = 1374261194; 8771951841SGerrit Uitslag $infoexpected = ChangeLog::parseLogLine($this->firstlogline); 88*72d8810bSGerrit Uitslag $infoexpected['mode'] = 'page'; 8951bd6f03SKlap-in 90047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 91047bad06SGerrit Uitslag $info = $pagelog->getRevisionInfo($rev); 9251bd6f03SKlap-in $this->assertEquals($infoexpected, $info); 9351bd6f03SKlap-in //returns cached value 94047bad06SGerrit Uitslag $info = $pagelog->getRevisionInfo($rev); 9551bd6f03SKlap-in $this->assertEquals($infoexpected, $info); 9651bd6f03SKlap-in } 9751bd6f03SKlap-in 9851bd6f03SKlap-in /** 9951bd6f03SKlap-in * request current version, with chuncked reading 10051bd6f03SKlap-in */ 10151bd6f03SKlap-in function test_requestrecentestlogline_chuncked() { 10251bd6f03SKlap-in $rev = 1374261194; 10371951841SGerrit Uitslag $infoexpected = ChangeLog::parseLogLine($this->firstlogline); 104*72d8810bSGerrit Uitslag $infoexpected['mode'] = 'page'; 10551bd6f03SKlap-in 106047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 107047bad06SGerrit Uitslag $info = $pagelog->getRevisionInfo($rev); 10851bd6f03SKlap-in $this->assertEquals($infoexpected, $info); 10951bd6f03SKlap-in } 11051bd6f03SKlap-in 11151bd6f03SKlap-in /** 11251bd6f03SKlap-in * request negative revision 11351bd6f03SKlap-in */ 11451bd6f03SKlap-in function test_negativerev() { 11551bd6f03SKlap-in $rev = -10; 11651bd6f03SKlap-in 117047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 118047bad06SGerrit Uitslag $info = $pagelog->getRevisionInfo($rev); 119*72d8810bSGerrit Uitslag $this->assertFalse($info); 12051bd6f03SKlap-in } 12151bd6f03SKlap-in 12251bd6f03SKlap-in /** 12351bd6f03SKlap-in * request non existing revision somewhere between existing revisions 12451bd6f03SKlap-in */ 12551bd6f03SKlap-in function test_notexistingrev() { 12651bd6f03SKlap-in $rev = 1362525890; 12751bd6f03SKlap-in 128047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 129047bad06SGerrit Uitslag $info = $pagelog->getRevisionInfo($rev); 130*72d8810bSGerrit Uitslag $this->assertFalse($info); 13151bd6f03SKlap-in } 13251bd6f03SKlap-in 13351bd6f03SKlap-in /** 13451bd6f03SKlap-in * sometimes chuncksize is set to true 13551bd6f03SKlap-in */ 13651bd6f03SKlap-in function test_chuncksizetrue() { 13751bd6f03SKlap-in $rev = 1362525899; 13871951841SGerrit Uitslag $infoexpected = ChangeLog::parseLogLine($this->logline); 139*72d8810bSGerrit Uitslag $infoexpected['mode'] = 'page'; 14051bd6f03SKlap-in 141047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, true); 1426556cf69SGerrit Uitslag $info = $pagelog->getRevisionInfo($rev); 14351bd6f03SKlap-in $this->assertEquals($infoexpected, $info); 14451bd6f03SKlap-in } 14551bd6f03SKlap-in} 146