151bd6f03SKlap-in<?php 251bd6f03SKlap-in/** 351bd6f03SKlap-in * Tests for requesting revisions of a page with getRevisions() 451bd6f03SKlap-in * 551bd6f03SKlap-in * This class uses the files: 651bd6f03SKlap-in * - data/pages/mailinglist.txt 751bd6f03SKlap-in * - data/meta/mailinglist.changes 851bd6f03SKlap-in */ 951bd6f03SKlap-inclass changelog_getrevisions_test extends DokuWikiTest { 1051bd6f03SKlap-in 1151bd6f03SKlap-in /** 1251bd6f03SKlap-in * $first counts inclusive zero, after the current page 1351bd6f03SKlap-in */ 1451bd6f03SKlap-in private $revsexpected = array( 1551bd6f03SKlap-in 1374261194, //current page 1651bd6f03SKlap-in 1371579614, 1368622240, // revisions, corresponds to respectively $first = 0 and 1 1751bd6f03SKlap-in 1368622195, 1368622152, 1851bd6f03SKlap-in 1368612599, 1368612506, 1951bd6f03SKlap-in 1368609772, 1368575634, 2051bd6f03SKlap-in 1363436892, 1362527164, 2151bd6f03SKlap-in 1362527046, 1362526861, //10 and 11 2251bd6f03SKlap-in 1362526767, 1362526167, 2351bd6f03SKlap-in 1362526119, 1362526039, 2451bd6f03SKlap-in 1362525926, 1362525899, 2551bd6f03SKlap-in 1362525359, 1362525145, 2651bd6f03SKlap-in 1362524799, 1361901536, //20 and 21 2751bd6f03SKlap-in 1360110636 2851bd6f03SKlap-in ); 2951bd6f03SKlap-in private $pageid = 'mailinglist'; 3051bd6f03SKlap-in 3151bd6f03SKlap-in function setup() { 3251bd6f03SKlap-in parent::setup(); 3351bd6f03SKlap-in global $cache_revinfo; 3451bd6f03SKlap-in $cache =& $cache_revinfo; 3551bd6f03SKlap-in if(isset($cache['nonexist'])) { 3651bd6f03SKlap-in unset($cache['nonexist']); 3751bd6f03SKlap-in } 3851bd6f03SKlap-in if(isset($cache['mailinglist'])) { 396556cf69SGerrit Uitslag unset($cache['mailinglist']); 4051bd6f03SKlap-in } 4151bd6f03SKlap-in } 4251bd6f03SKlap-in 4351bd6f03SKlap-in /** 4451bd6f03SKlap-in * no nonexist.changes meta file available 4551bd6f03SKlap-in */ 4651bd6f03SKlap-in function test_changemetadatanotexists() { 4751bd6f03SKlap-in $first = 0; 4851bd6f03SKlap-in $num = 1; 4951bd6f03SKlap-in $id = 'nonexist'; 50*7d1e323eSGerrit Uitslag $revsexpected = array(); 5151bd6f03SKlap-in 52047bad06SGerrit Uitslag $pagelog = new PageChangeLog($id, $chunk_size = 8192); 53047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 5451bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 5551bd6f03SKlap-in } 5651bd6f03SKlap-in 5751bd6f03SKlap-in /** 5851bd6f03SKlap-in * request first recentest revision 5951bd6f03SKlap-in * (so skips first line which belongs to the current existing page) 6051bd6f03SKlap-in */ 6151bd6f03SKlap-in function test_requestlastrev() { 6251bd6f03SKlap-in $first = 0; 6351bd6f03SKlap-in $num = 1; 6451bd6f03SKlap-in $revsexpected = array($this->revsexpected[1]); 6551bd6f03SKlap-in 66047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 67047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 6851bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 6951bd6f03SKlap-in 70047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 71047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 7251bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 73*7d1e323eSGerrit Uitslag 74*7d1e323eSGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); 75*7d1e323eSGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 76*7d1e323eSGerrit Uitslag $this->assertEquals($revsexpected, $revs); 7751bd6f03SKlap-in } 7851bd6f03SKlap-in 7951bd6f03SKlap-in /** 8051bd6f03SKlap-in * request first recentest revision 8151bd6f03SKlap-in * (so skips first line which belongs to the current existing page) 8251bd6f03SKlap-in */ 8351bd6f03SKlap-in function test_requestonebutlastrev() { 8451bd6f03SKlap-in $first = 1; 8551bd6f03SKlap-in $num = 1; 8651bd6f03SKlap-in $revsexpected = array($this->revsexpected[2]); 8751bd6f03SKlap-in 88047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 89047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 9051bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 9151bd6f03SKlap-in 92047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 93047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 9451bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 95*7d1e323eSGerrit Uitslag 96*7d1e323eSGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); 97*7d1e323eSGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 98*7d1e323eSGerrit Uitslag $this->assertEquals($revsexpected, $revs); 9951bd6f03SKlap-in } 10051bd6f03SKlap-in 10151bd6f03SKlap-in /** 10251bd6f03SKlap-in * request first recentest revision 10351bd6f03SKlap-in * (so skips first line of current existing page) 10451bd6f03SKlap-in */ 10551bd6f03SKlap-in function test_requestrevswithoffset() { 10651bd6f03SKlap-in $first = 10; 10751bd6f03SKlap-in $num = 5; 10851bd6f03SKlap-in $revsexpected = array_slice($this->revsexpected, $first + 1, $num); 10951bd6f03SKlap-in 110047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 111047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 11251bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 11351bd6f03SKlap-in 114047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 115047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 11651bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 117*7d1e323eSGerrit Uitslag 118*7d1e323eSGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); 119*7d1e323eSGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 120*7d1e323eSGerrit Uitslag $this->assertEquals($revsexpected, $revs); 12151bd6f03SKlap-in } 12251bd6f03SKlap-in 12351bd6f03SKlap-in /** 12451bd6f03SKlap-in * first = -1 requests recentest logline, without skipping 12551bd6f03SKlap-in */ 12651bd6f03SKlap-in function test_requestrecentestlogline() { 12751bd6f03SKlap-in $first = -1; 12851bd6f03SKlap-in $num = 1; 12951bd6f03SKlap-in $revsexpected = array($this->revsexpected[0]); 13051bd6f03SKlap-in 131047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 132047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 13351bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 13451bd6f03SKlap-in 135047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 136047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 13751bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 13851bd6f03SKlap-in } 13951bd6f03SKlap-in 14051bd6f03SKlap-in /** 14151bd6f03SKlap-in * chunck size = 0 skips chuncked loading 14251bd6f03SKlap-in */ 14351bd6f03SKlap-in function test_wholefile() { 14451bd6f03SKlap-in $first = 0; 14551bd6f03SKlap-in $num = 1000; 14651bd6f03SKlap-in $revsexpected = array_slice($this->revsexpected, 1); 14751bd6f03SKlap-in 148047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 0); 149047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 15051bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 15151bd6f03SKlap-in } 15251bd6f03SKlap-in 15351bd6f03SKlap-in /** 15451bd6f03SKlap-in * Negative range returns no result 15551bd6f03SKlap-in */ 15651bd6f03SKlap-in function test_negativenum() { 15751bd6f03SKlap-in $first = 0; 15851bd6f03SKlap-in $num = -10; 15951bd6f03SKlap-in $revsexpected = array(); 16051bd6f03SKlap-in 161047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 162047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 16351bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 16451bd6f03SKlap-in 165047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 166047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 16751bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 16851bd6f03SKlap-in } 16951bd6f03SKlap-in 17051bd6f03SKlap-in /** 17151bd6f03SKlap-in * Negative range returns no result 17251bd6f03SKlap-in */ 17351bd6f03SKlap-in function test_negativennumoffset() { 17451bd6f03SKlap-in $first = 2; 17551bd6f03SKlap-in $num = -10; 17651bd6f03SKlap-in $revsexpected = array(); 17751bd6f03SKlap-in 178047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 1794f6e20c7SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 18051bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 18151bd6f03SKlap-in 182047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 183047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 18451bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 18551bd6f03SKlap-in } 18651bd6f03SKlap-in 18751bd6f03SKlap-in /** 18851bd6f03SKlap-in * zero range returns no result 18951bd6f03SKlap-in */ 19051bd6f03SKlap-in function test_zeronum() { 19151bd6f03SKlap-in $first = 5; 19251bd6f03SKlap-in $num = 0; 19351bd6f03SKlap-in $revsexpected = array(); 19451bd6f03SKlap-in 195047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 196047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 19751bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 19851bd6f03SKlap-in 199047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 200047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 20151bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 20251bd6f03SKlap-in } 20351bd6f03SKlap-in 20451bd6f03SKlap-in /** 20551bd6f03SKlap-in * get oldest revisions 20651bd6f03SKlap-in */ 20751bd6f03SKlap-in function test_requestlargeoffset() { 20851bd6f03SKlap-in $first = 22; 20951bd6f03SKlap-in $num = 50; 21051bd6f03SKlap-in $revsexpected = array_slice($this->revsexpected, $first + 1); 21151bd6f03SKlap-in 212047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 213047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 21451bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 21551bd6f03SKlap-in } 21651bd6f03SKlap-in 21751bd6f03SKlap-in /** 21851bd6f03SKlap-in * request with too large offset and range 21951bd6f03SKlap-in */ 22051bd6f03SKlap-in function test_requesttoolargenumberrevs() { 22151bd6f03SKlap-in $first = 50; 22251bd6f03SKlap-in $num = 50; 22351bd6f03SKlap-in $revsexpected = array(); 22451bd6f03SKlap-in 225047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 226047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 22751bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 22851bd6f03SKlap-in } 22951bd6f03SKlap-in 23051bd6f03SKlap-in}