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'; 5051bd6f03SKlap-in 51047bad06SGerrit Uitslag $pagelog = new PageChangeLog($id, $chunk_size = 8192); 52047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 5351bd6f03SKlap-in $revsexpected = array(); 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); 7351bd6f03SKlap-in } 7451bd6f03SKlap-in 7551bd6f03SKlap-in /** 7651bd6f03SKlap-in * request first recentest revision 7751bd6f03SKlap-in * (so skips first line which belongs to the current existing page) 7851bd6f03SKlap-in */ 7951bd6f03SKlap-in function test_requestonebutlastrev() { 8051bd6f03SKlap-in $first = 1; 8151bd6f03SKlap-in $num = 1; 8251bd6f03SKlap-in $revsexpected = array($this->revsexpected[2]); 8351bd6f03SKlap-in 84047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 85047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 8651bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 8751bd6f03SKlap-in 88047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 89047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 9051bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 9151bd6f03SKlap-in } 9251bd6f03SKlap-in 9351bd6f03SKlap-in /** 9451bd6f03SKlap-in * request first recentest revision 9551bd6f03SKlap-in * (so skips first line of current existing page) 9651bd6f03SKlap-in */ 9751bd6f03SKlap-in function test_requestrevswithoffset() { 9851bd6f03SKlap-in $first = 10; 9951bd6f03SKlap-in $num = 5; 10051bd6f03SKlap-in $revsexpected = array_slice($this->revsexpected, $first + 1, $num); 10151bd6f03SKlap-in 102047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 103047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 10451bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 10551bd6f03SKlap-in 106047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 107047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 10851bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 10951bd6f03SKlap-in } 11051bd6f03SKlap-in 11151bd6f03SKlap-in /** 11251bd6f03SKlap-in * first = -1 requests recentest logline, without skipping 11351bd6f03SKlap-in */ 11451bd6f03SKlap-in function test_requestrecentestlogline() { 11551bd6f03SKlap-in $first = -1; 11651bd6f03SKlap-in $num = 1; 11751bd6f03SKlap-in $revsexpected = array($this->revsexpected[0]); 11851bd6f03SKlap-in 119047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 120047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 12151bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 12251bd6f03SKlap-in 123047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 124047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 12551bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 12651bd6f03SKlap-in } 12751bd6f03SKlap-in 12851bd6f03SKlap-in /** 12951bd6f03SKlap-in * chunck size = 0 skips chuncked loading 13051bd6f03SKlap-in */ 13151bd6f03SKlap-in function test_wholefile() { 13251bd6f03SKlap-in $first = 0; 13351bd6f03SKlap-in $num = 1000; 13451bd6f03SKlap-in $revsexpected = array_slice($this->revsexpected, 1); 13551bd6f03SKlap-in 136047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 0); 137047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 13851bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 13951bd6f03SKlap-in } 14051bd6f03SKlap-in 14151bd6f03SKlap-in /** 14251bd6f03SKlap-in * Negative range returns no result 14351bd6f03SKlap-in */ 14451bd6f03SKlap-in function test_negativenum() { 14551bd6f03SKlap-in $first = 0; 14651bd6f03SKlap-in $num = -10; 14751bd6f03SKlap-in $revsexpected = array(); 14851bd6f03SKlap-in 149047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 150047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 15151bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 15251bd6f03SKlap-in 153047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 154047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 15551bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 15651bd6f03SKlap-in } 15751bd6f03SKlap-in 15851bd6f03SKlap-in /** 15951bd6f03SKlap-in * Negative range returns no result 16051bd6f03SKlap-in */ 16151bd6f03SKlap-in function test_negativennumoffset() { 16251bd6f03SKlap-in $first = 2; 16351bd6f03SKlap-in $num = -10; 16451bd6f03SKlap-in $revsexpected = array(); 16551bd6f03SKlap-in 166047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 167*4f6e20c7SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 16851bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 16951bd6f03SKlap-in 170047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 171047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 17251bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 17351bd6f03SKlap-in } 17451bd6f03SKlap-in 17551bd6f03SKlap-in /** 17651bd6f03SKlap-in * zero range returns no result 17751bd6f03SKlap-in */ 17851bd6f03SKlap-in function test_zeronum() { 17951bd6f03SKlap-in $first = 5; 18051bd6f03SKlap-in $num = 0; 18151bd6f03SKlap-in $revsexpected = array(); 18251bd6f03SKlap-in 183047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 184047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 18551bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 18651bd6f03SKlap-in 187047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 188047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 18951bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 19051bd6f03SKlap-in } 19151bd6f03SKlap-in 19251bd6f03SKlap-in /** 19351bd6f03SKlap-in * get oldest revisions 19451bd6f03SKlap-in */ 19551bd6f03SKlap-in function test_requestlargeoffset() { 19651bd6f03SKlap-in $first = 22; 19751bd6f03SKlap-in $num = 50; 19851bd6f03SKlap-in $revsexpected = array_slice($this->revsexpected, $first + 1); 19951bd6f03SKlap-in 200047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 201047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 20251bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 20351bd6f03SKlap-in } 20451bd6f03SKlap-in 20551bd6f03SKlap-in /** 20651bd6f03SKlap-in * request with too large offset and range 20751bd6f03SKlap-in */ 20851bd6f03SKlap-in function test_requesttoolargenumberrevs() { 20951bd6f03SKlap-in $first = 50; 21051bd6f03SKlap-in $num = 50; 21151bd6f03SKlap-in $revsexpected = array(); 21251bd6f03SKlap-in 213047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 214047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 21551bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 21651bd6f03SKlap-in } 21751bd6f03SKlap-in 21851bd6f03SKlap-in}