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 341c33cec3SAndreas Gohr function setup() : void { 3551bd6f03SKlap-in parent::setup(); 3651bd6f03SKlap-in global $cache_revinfo; 3751bd6f03SKlap-in $cache =& $cache_revinfo; 3851bd6f03SKlap-in unset($cache['nonexist']); 396556cf69SGerrit Uitslag unset($cache['mailinglist']); 40*fb285245SSatoshi Sahara // fix filemtime of page source 41*fb285245SSatoshi Sahara touch(wikiFN($this->pageid), $this->revsexpected[0]); 4251bd6f03SKlap-in } 4351bd6f03SKlap-in 4451bd6f03SKlap-in /** 4551bd6f03SKlap-in * no nonexist.changes meta file available 4651bd6f03SKlap-in */ 4751bd6f03SKlap-in function test_changemetadatanotexists() { 4851bd6f03SKlap-in $first = 0; 4951bd6f03SKlap-in $num = 1; 5051bd6f03SKlap-in $id = 'nonexist'; 517d1e323eSGerrit Uitslag $revsexpected = array(); 5251bd6f03SKlap-in 53047bad06SGerrit Uitslag $pagelog = new PageChangeLog($id, $chunk_size = 8192); 54047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 5551bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 5651bd6f03SKlap-in } 5751bd6f03SKlap-in 5851bd6f03SKlap-in /** 5951bd6f03SKlap-in * request first recentest revision 6051bd6f03SKlap-in * (so skips first line which belongs to the current existing page) 6151bd6f03SKlap-in */ 6251bd6f03SKlap-in function test_requestlastrev() { 6351bd6f03SKlap-in $first = 0; 6451bd6f03SKlap-in $num = 1; 6551bd6f03SKlap-in $revsexpected = array($this->revsexpected[1]); 6651bd6f03SKlap-in 67047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 68047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 6951bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 7051bd6f03SKlap-in 71047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 72047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 7351bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 747d1e323eSGerrit Uitslag 757d1e323eSGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); 767d1e323eSGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 777d1e323eSGerrit Uitslag $this->assertEquals($revsexpected, $revs); 7851bd6f03SKlap-in } 7951bd6f03SKlap-in 8051bd6f03SKlap-in /** 8151bd6f03SKlap-in * request first recentest revision 8251bd6f03SKlap-in * (so skips first line which belongs to the current existing page) 8351bd6f03SKlap-in */ 8451bd6f03SKlap-in function test_requestonebutlastrev() { 8551bd6f03SKlap-in $first = 1; 8651bd6f03SKlap-in $num = 1; 8751bd6f03SKlap-in $revsexpected = array($this->revsexpected[2]); 8851bd6f03SKlap-in 89047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 90047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 9151bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 9251bd6f03SKlap-in 93047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 94047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 9551bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 967d1e323eSGerrit Uitslag 977d1e323eSGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); 987d1e323eSGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 997d1e323eSGerrit Uitslag $this->assertEquals($revsexpected, $revs); 10051bd6f03SKlap-in } 10151bd6f03SKlap-in 10251bd6f03SKlap-in /** 10351bd6f03SKlap-in * request first recentest revision 10451bd6f03SKlap-in * (so skips first line of current existing page) 10551bd6f03SKlap-in */ 10651bd6f03SKlap-in function test_requestrevswithoffset() { 10751bd6f03SKlap-in $first = 10; 10851bd6f03SKlap-in $num = 5; 10951bd6f03SKlap-in $revsexpected = array_slice($this->revsexpected, $first + 1, $num); 11051bd6f03SKlap-in 111047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 112047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 11351bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 11451bd6f03SKlap-in 115047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 116047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 11751bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 1187d1e323eSGerrit Uitslag 1197d1e323eSGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); 1207d1e323eSGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 1217d1e323eSGerrit Uitslag $this->assertEquals($revsexpected, $revs); 12251bd6f03SKlap-in } 12351bd6f03SKlap-in 12451bd6f03SKlap-in /** 12551bd6f03SKlap-in * first = -1 requests recentest logline, without skipping 12651bd6f03SKlap-in */ 12751bd6f03SKlap-in function test_requestrecentestlogline() { 12851bd6f03SKlap-in $first = -1; 12951bd6f03SKlap-in $num = 1; 13051bd6f03SKlap-in $revsexpected = array($this->revsexpected[0]); 13151bd6f03SKlap-in 132047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 133047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 13451bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 13551bd6f03SKlap-in 136047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 137047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 13851bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 13951bd6f03SKlap-in } 14051bd6f03SKlap-in 14151bd6f03SKlap-in /** 14251bd6f03SKlap-in * chunck size = 0 skips chuncked loading 14351bd6f03SKlap-in */ 14451bd6f03SKlap-in function test_wholefile() { 14551bd6f03SKlap-in $first = 0; 14651bd6f03SKlap-in $num = 1000; 14751bd6f03SKlap-in $revsexpected = array_slice($this->revsexpected, 1); 14851bd6f03SKlap-in 149047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 0); 150047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 15151bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 15251bd6f03SKlap-in } 15351bd6f03SKlap-in 15451bd6f03SKlap-in /** 15551bd6f03SKlap-in * Negative range returns no result 15651bd6f03SKlap-in */ 15751bd6f03SKlap-in function test_negativenum() { 15851bd6f03SKlap-in $first = 0; 15951bd6f03SKlap-in $num = -10; 16051bd6f03SKlap-in $revsexpected = array(); 16151bd6f03SKlap-in 162047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 163047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 16451bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 16551bd6f03SKlap-in 166047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 167047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 16851bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 16951bd6f03SKlap-in } 17051bd6f03SKlap-in 17151bd6f03SKlap-in /** 17251bd6f03SKlap-in * Negative range returns no result 17351bd6f03SKlap-in */ 17451bd6f03SKlap-in function test_negativennumoffset() { 17551bd6f03SKlap-in $first = 2; 17651bd6f03SKlap-in $num = -10; 17751bd6f03SKlap-in $revsexpected = array(); 17851bd6f03SKlap-in 179047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 1804f6e20c7SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 18151bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 18251bd6f03SKlap-in 183047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 184047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 18551bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 18651bd6f03SKlap-in } 18751bd6f03SKlap-in 18851bd6f03SKlap-in /** 18951bd6f03SKlap-in * zero range returns no result 19051bd6f03SKlap-in */ 19151bd6f03SKlap-in function test_zeronum() { 19251bd6f03SKlap-in $first = 5; 19351bd6f03SKlap-in $num = 0; 19451bd6f03SKlap-in $revsexpected = array(); 19551bd6f03SKlap-in 196047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 197047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 19851bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 19951bd6f03SKlap-in 200047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 201047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 20251bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 20351bd6f03SKlap-in } 20451bd6f03SKlap-in 20551bd6f03SKlap-in /** 20651bd6f03SKlap-in * get oldest revisions 20751bd6f03SKlap-in */ 20851bd6f03SKlap-in function test_requestlargeoffset() { 20951bd6f03SKlap-in $first = 22; 21051bd6f03SKlap-in $num = 50; 21151bd6f03SKlap-in $revsexpected = array_slice($this->revsexpected, $first + 1); 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 /** 21951bd6f03SKlap-in * request with too large offset and range 22051bd6f03SKlap-in */ 22151bd6f03SKlap-in function test_requesttoolargenumberrevs() { 22251bd6f03SKlap-in $first = 50; 22351bd6f03SKlap-in $num = 50; 22451bd6f03SKlap-in $revsexpected = array(); 22551bd6f03SKlap-in 226047bad06SGerrit Uitslag $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 227047bad06SGerrit Uitslag $revs = $pagelog->getRevisions($first, $num); 22851bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 22951bd6f03SKlap-in } 23051bd6f03SKlap-in 23151bd6f03SKlap-in} 232