151bd6f03SKlap-in<?php 20c3a5702SAndreas Gohr 30c3a5702SAndreas Gohruse dokuwiki\ChangeLog\PageChangeLog; 40c3a5702SAndreas Gohr 551bd6f03SKlap-in/** 651bd6f03SKlap-in * Tests for requesting revisions of a page with getRevisions() 751bd6f03SKlap-in * 851bd6f03SKlap-in * This class uses the files: 951bd6f03SKlap-in * - data/pages/mailinglist.txt 1051bd6f03SKlap-in * - data/meta/mailinglist.changes 1151bd6f03SKlap-in */ 1251bd6f03SKlap-inclass changelog_getrevisions_test extends DokuWikiTest { 1351bd6f03SKlap-in 1451bd6f03SKlap-in /** 1551bd6f03SKlap-in * $first counts inclusive zero, after the current page 1651bd6f03SKlap-in */ 1751bd6f03SKlap-in private $revsexpected = array( 1851bd6f03SKlap-in 1374261194, //current page 1951bd6f03SKlap-in 1371579614, 1368622240, // revisions, corresponds to respectively $first = 0 and 1 2051bd6f03SKlap-in 1368622195, 1368622152, 2151bd6f03SKlap-in 1368612599, 1368612506, 2251bd6f03SKlap-in 1368609772, 1368575634, 2351bd6f03SKlap-in 1363436892, 1362527164, 2451bd6f03SKlap-in 1362527046, 1362526861, //10 and 11 2551bd6f03SKlap-in 1362526767, 1362526167, 2651bd6f03SKlap-in 1362526119, 1362526039, 2751bd6f03SKlap-in 1362525926, 1362525899, 2851bd6f03SKlap-in 1362525359, 1362525145, 2951bd6f03SKlap-in 1362524799, 1361901536, //20 and 21 3051bd6f03SKlap-in 1360110636 3151bd6f03SKlap-in ); 3251bd6f03SKlap-in private $pageid = 'mailinglist'; 3351bd6f03SKlap-in 34*1c33cec3SAndreas Gohr function setup() : void { 3551bd6f03SKlap-in parent::setup(); 3651bd6f03SKlap-in global $cache_revinfo; 3751bd6f03SKlap-in $cache =& $cache_revinfo; 3851bd6f03SKlap-in if(isset($cache['nonexist'])) { 3951bd6f03SKlap-in unset($cache['nonexist']); 4051bd6f03SKlap-in } 4151bd6f03SKlap-in if(isset($cache['mailinglist'])) { 426556cf69SGerrit Uitslag unset($cache['mailinglist']); 4351bd6f03SKlap-in } 4451bd6f03SKlap-in } 4551bd6f03SKlap-in 4651bd6f03SKlap-in /** 4751bd6f03SKlap-in * no nonexist.changes meta file available 4851bd6f03SKlap-in */ 4951bd6f03SKlap-in function test_changemetadatanotexists() { 5051bd6f03SKlap-in $first = 0; 5151bd6f03SKlap-in $num = 1; 5251bd6f03SKlap-in $id = 'nonexist'; 537d1e323eSGerrit Uitslag $revsexpected = array(); 5451bd6f03SKlap-in 55047bad06SGerrit Uitslag $pagelog = new PageChangeLog($id, $chunk_size = 8192); 56047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 5751bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 5851bd6f03SKlap-in } 5951bd6f03SKlap-in 6051bd6f03SKlap-in /** 6151bd6f03SKlap-in * request first recentest revision 6251bd6f03SKlap-in * (so skips first line which belongs to the current existing page) 6351bd6f03SKlap-in */ 6451bd6f03SKlap-in function test_requestlastrev() { 6551bd6f03SKlap-in $first = 0; 6651bd6f03SKlap-in $num = 1; 6751bd6f03SKlap-in $revsexpected = array($this->revsexpected[1]); 6851bd6f03SKlap-in 69047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 70047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 7151bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 7251bd6f03SKlap-in 73047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 74047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 7551bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 767d1e323eSGerrit Uitslag 777d1e323eSGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); 787d1e323eSGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 797d1e323eSGerrit Uitslag $this->assertEquals($revsexpected, $revs); 8051bd6f03SKlap-in } 8151bd6f03SKlap-in 8251bd6f03SKlap-in /** 8351bd6f03SKlap-in * request first recentest revision 8451bd6f03SKlap-in * (so skips first line which belongs to the current existing page) 8551bd6f03SKlap-in */ 8651bd6f03SKlap-in function test_requestonebutlastrev() { 8751bd6f03SKlap-in $first = 1; 8851bd6f03SKlap-in $num = 1; 8951bd6f03SKlap-in $revsexpected = array($this->revsexpected[2]); 9051bd6f03SKlap-in 91047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 92047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 9351bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 9451bd6f03SKlap-in 95047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 96047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 9751bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 987d1e323eSGerrit Uitslag 997d1e323eSGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); 1007d1e323eSGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 1017d1e323eSGerrit Uitslag $this->assertEquals($revsexpected, $revs); 10251bd6f03SKlap-in } 10351bd6f03SKlap-in 10451bd6f03SKlap-in /** 10551bd6f03SKlap-in * request first recentest revision 10651bd6f03SKlap-in * (so skips first line of current existing page) 10751bd6f03SKlap-in */ 10851bd6f03SKlap-in function test_requestrevswithoffset() { 10951bd6f03SKlap-in $first = 10; 11051bd6f03SKlap-in $num = 5; 11151bd6f03SKlap-in $revsexpected = array_slice($this->revsexpected, $first + 1, $num); 11251bd6f03SKlap-in 113047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 114047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 11551bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 11651bd6f03SKlap-in 117047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 118047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 11951bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 1207d1e323eSGerrit Uitslag 1217d1e323eSGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); 1227d1e323eSGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 1237d1e323eSGerrit Uitslag $this->assertEquals($revsexpected, $revs); 12451bd6f03SKlap-in } 12551bd6f03SKlap-in 12651bd6f03SKlap-in /** 12751bd6f03SKlap-in * first = -1 requests recentest logline, without skipping 12851bd6f03SKlap-in */ 12951bd6f03SKlap-in function test_requestrecentestlogline() { 13051bd6f03SKlap-in $first = -1; 13151bd6f03SKlap-in $num = 1; 13251bd6f03SKlap-in $revsexpected = array($this->revsexpected[0]); 13351bd6f03SKlap-in 134047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 135047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 13651bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 13751bd6f03SKlap-in 138047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 139047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 14051bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 14151bd6f03SKlap-in } 14251bd6f03SKlap-in 14351bd6f03SKlap-in /** 14451bd6f03SKlap-in * chunck size = 0 skips chuncked loading 14551bd6f03SKlap-in */ 14651bd6f03SKlap-in function test_wholefile() { 14751bd6f03SKlap-in $first = 0; 14851bd6f03SKlap-in $num = 1000; 14951bd6f03SKlap-in $revsexpected = array_slice($this->revsexpected, 1); 15051bd6f03SKlap-in 151047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 0); 152047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 15351bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 15451bd6f03SKlap-in } 15551bd6f03SKlap-in 15651bd6f03SKlap-in /** 15751bd6f03SKlap-in * Negative range returns no result 15851bd6f03SKlap-in */ 15951bd6f03SKlap-in function test_negativenum() { 16051bd6f03SKlap-in $first = 0; 16151bd6f03SKlap-in $num = -10; 16251bd6f03SKlap-in $revsexpected = array(); 16351bd6f03SKlap-in 164047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 165047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 16651bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 16751bd6f03SKlap-in 168047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 169047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 17051bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 17151bd6f03SKlap-in } 17251bd6f03SKlap-in 17351bd6f03SKlap-in /** 17451bd6f03SKlap-in * Negative range returns no result 17551bd6f03SKlap-in */ 17651bd6f03SKlap-in function test_negativennumoffset() { 17751bd6f03SKlap-in $first = 2; 17851bd6f03SKlap-in $num = -10; 17951bd6f03SKlap-in $revsexpected = array(); 18051bd6f03SKlap-in 181047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 1824f6e20c7SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 18351bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 18451bd6f03SKlap-in 185047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 186047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 18751bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 18851bd6f03SKlap-in } 18951bd6f03SKlap-in 19051bd6f03SKlap-in /** 19151bd6f03SKlap-in * zero range returns no result 19251bd6f03SKlap-in */ 19351bd6f03SKlap-in function test_zeronum() { 19451bd6f03SKlap-in $first = 5; 19551bd6f03SKlap-in $num = 0; 19651bd6f03SKlap-in $revsexpected = array(); 19751bd6f03SKlap-in 198047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 199047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 20051bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 20151bd6f03SKlap-in 202047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 203047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 20451bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 20551bd6f03SKlap-in } 20651bd6f03SKlap-in 20751bd6f03SKlap-in /** 20851bd6f03SKlap-in * get oldest revisions 20951bd6f03SKlap-in */ 21051bd6f03SKlap-in function test_requestlargeoffset() { 21151bd6f03SKlap-in $first = 22; 21251bd6f03SKlap-in $num = 50; 21351bd6f03SKlap-in $revsexpected = array_slice($this->revsexpected, $first + 1); 21451bd6f03SKlap-in 215047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 216047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 21751bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 21851bd6f03SKlap-in } 21951bd6f03SKlap-in 22051bd6f03SKlap-in /** 22151bd6f03SKlap-in * request with too large offset and range 22251bd6f03SKlap-in */ 22351bd6f03SKlap-in function test_requesttoolargenumberrevs() { 22451bd6f03SKlap-in $first = 50; 22551bd6f03SKlap-in $num = 50; 22651bd6f03SKlap-in $revsexpected = array(); 22751bd6f03SKlap-in 228047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 229047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 23051bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 23151bd6f03SKlap-in } 23251bd6f03SKlap-in 23351bd6f03SKlap-in} 234