151bd6f03SKlap-in<?php 251bd6f03SKlap-in 3*71951841SGerrit 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; 45*71951841SGerrit Uitslag $infoexpected = ChangeLog::parseLogLine($this->logline); 4651bd6f03SKlap-in 47047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 48047bad06SGerrit Uitslag $info = $pagelog->getRevisionInfo($rev); 4951bd6f03SKlap-in $this->assertEquals($infoexpected, $info); 5051bd6f03SKlap-in //returns cached value 51047bad06SGerrit Uitslag $info = $pagelog->getRevisionInfo($rev); 5251bd6f03SKlap-in $this->assertEquals($infoexpected, $info); 5351bd6f03SKlap-in } 5451bd6f03SKlap-in 5551bd6f03SKlap-in /** 5651bd6f03SKlap-in * request existing rev with chucked reading 5751bd6f03SKlap-in */ 5851bd6f03SKlap-in function test_requestrev_chuncked() { 5951bd6f03SKlap-in $rev = 1362525899; 60*71951841SGerrit Uitslag $infoexpected = ChangeLog::parseLogLine($this->logline); 6151bd6f03SKlap-in 62047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 63047bad06SGerrit Uitslag $info = $pagelog->getRevisionInfo($rev); 6451bd6f03SKlap-in $this->assertEquals($infoexpected, $info); 6551bd6f03SKlap-in } 6651bd6f03SKlap-in 6751bd6f03SKlap-in /** 6859cce2d9SGerrit Uitslag * request existing rev with chucked reading 6959cce2d9SGerrit Uitslag */ 7059cce2d9SGerrit Uitslag function test_requestrev_chunckedsmallerthanlinelength() { 7159cce2d9SGerrit Uitslag $rev = 1362525899; 72*71951841SGerrit Uitslag $infoexpected = ChangeLog::parseLogLine($this->logline); 7359cce2d9SGerrit Uitslag 7459cce2d9SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); 7559cce2d9SGerrit Uitslag $info = $pagelog->getRevisionInfo($rev); 7659cce2d9SGerrit Uitslag $this->assertEquals($infoexpected, $info); 7759cce2d9SGerrit Uitslag } 7859cce2d9SGerrit Uitslag 7959cce2d9SGerrit Uitslag /** 8051bd6f03SKlap-in * request current version 8151bd6f03SKlap-in */ 8251bd6f03SKlap-in function test_requestrecentestlogline() { 8351bd6f03SKlap-in $rev = 1374261194; 84*71951841SGerrit Uitslag $infoexpected = ChangeLog::parseLogLine($this->firstlogline); 8551bd6f03SKlap-in 86047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 87047bad06SGerrit Uitslag $info = $pagelog->getRevisionInfo($rev); 8851bd6f03SKlap-in $this->assertEquals($infoexpected, $info); 8951bd6f03SKlap-in //returns cached value 90047bad06SGerrit Uitslag $info = $pagelog->getRevisionInfo($rev); 9151bd6f03SKlap-in $this->assertEquals($infoexpected, $info); 9251bd6f03SKlap-in } 9351bd6f03SKlap-in 9451bd6f03SKlap-in /** 9551bd6f03SKlap-in * request current version, with chuncked reading 9651bd6f03SKlap-in */ 9751bd6f03SKlap-in function test_requestrecentestlogline_chuncked() { 9851bd6f03SKlap-in $rev = 1374261194; 99*71951841SGerrit Uitslag $infoexpected = ChangeLog::parseLogLine($this->firstlogline); 10051bd6f03SKlap-in 101047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 102047bad06SGerrit Uitslag $info = $pagelog->getRevisionInfo($rev); 10351bd6f03SKlap-in $this->assertEquals($infoexpected, $info); 10451bd6f03SKlap-in } 10551bd6f03SKlap-in 10651bd6f03SKlap-in /** 10751bd6f03SKlap-in * request negative revision 10851bd6f03SKlap-in */ 10951bd6f03SKlap-in function test_negativerev() { 11051bd6f03SKlap-in $rev = -10; 11151bd6f03SKlap-in 112047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 113047bad06SGerrit Uitslag $info = $pagelog->getRevisionInfo($rev); 11451bd6f03SKlap-in $this->assertEquals(false, $info); 11551bd6f03SKlap-in } 11651bd6f03SKlap-in 11751bd6f03SKlap-in /** 11851bd6f03SKlap-in * request non existing revision somewhere between existing revisions 11951bd6f03SKlap-in */ 12051bd6f03SKlap-in function test_notexistingrev() { 12151bd6f03SKlap-in $rev = 1362525890; 12251bd6f03SKlap-in 123047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 124047bad06SGerrit Uitslag $info = $pagelog->getRevisionInfo($rev); 12551bd6f03SKlap-in $this->assertEquals(false, $info); 12651bd6f03SKlap-in } 12751bd6f03SKlap-in 12851bd6f03SKlap-in /** 12951bd6f03SKlap-in * sometimes chuncksize is set to true 13051bd6f03SKlap-in */ 13151bd6f03SKlap-in function test_chuncksizetrue() { 13251bd6f03SKlap-in $rev = 1362525899; 133*71951841SGerrit Uitslag $infoexpected = ChangeLog::parseLogLine($this->logline); 13451bd6f03SKlap-in 135047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, true); 1366556cf69SGerrit Uitslag $info = $pagelog->getRevisionInfo($rev); 13751bd6f03SKlap-in $this->assertEquals($infoexpected, $info); 13851bd6f03SKlap-in } 13951bd6f03SKlap-in} 140