14eb5e174Slisps<?php 24eb5e174Slisps 34eb5e174Slisps/** 44eb5e174Slisps * Tests for requesting revisioninfo of a revision of a page with getRevisionInfo() 54eb5e174Slisps * 64eb5e174Slisps * This class uses the files: 74eb5e174Slisps * - data/pages/mailinglist.txt 84eb5e174Slisps * - data/meta/mailinglist.changes 94eb5e174Slisps */ 1081e7bffeSlispsclass changelog_getlastrevisionat_test extends DokuWikiTest { 114eb5e174Slisps 124eb5e174Slisps private $pageid = 'mailinglist'; 134eb5e174Slisps 144eb5e174Slisps function setup() { 154eb5e174Slisps parent::setup(); 164eb5e174Slisps global $cache_revinfo; 174eb5e174Slisps $cache =& $cache_revinfo; 184eb5e174Slisps if(isset($cache['nonexist'])) { 194eb5e174Slisps unset($cache['nonexist']); 204eb5e174Slisps } 214eb5e174Slisps if(isset($cache['mailinglist'])) { 224eb5e174Slisps unset($cache['mailinglist']); 234eb5e174Slisps } 244eb5e174Slisps } 254eb5e174Slisps 264eb5e174Slisps 274eb5e174Slisps /** 284eb5e174Slisps * no nonexist.changes meta file available 294eb5e174Slisps */ 304eb5e174Slisps function test_changemetadatanotexists() { 314eb5e174Slisps $rev = 1362525899; 324eb5e174Slisps $id = 'nonexist'; 334eb5e174Slisps $revsexpected = false; 344eb5e174Slisps 354eb5e174Slisps $pagelog = new PageChangeLog($id, $chunk_size = 8192); 364eb5e174Slisps $revs = $pagelog->getLastRevisionAt($rev); 374eb5e174Slisps $this->assertEquals($revsexpected, $revs); 384eb5e174Slisps } 394eb5e174Slisps 404eb5e174Slisps /** 414eb5e174Slisps * start at exact current revision of mailinglist page 424eb5e174Slisps * 434eb5e174Slisps */ 444eb5e174Slisps function test_startatexactcurrentrev() { 454eb5e174Slisps $rev = 1385051947; 464eb5e174Slisps $revsexpected = ''; 474eb5e174Slisps 484eb5e174Slisps //set a known timestamp 494eb5e174Slisps touch(wikiFN($this->pageid), $rev); 504eb5e174Slisps 514eb5e174Slisps $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 524eb5e174Slisps $revs = $pagelog->getLastRevisionAt($rev); 534eb5e174Slisps $this->assertEquals($revsexpected, $revs); 544eb5e174Slisps 554eb5e174Slisps } 564eb5e174Slisps 574eb5e174Slisps /** 584eb5e174Slisps * test a future revision 594eb5e174Slisps * 604eb5e174Slisps */ 614eb5e174Slisps function test_futurerev() { 624eb5e174Slisps $rev = 1385051947; 634eb5e174Slisps $revsexpected = ''; 644eb5e174Slisps 654eb5e174Slisps //set a known timestamp 664eb5e174Slisps touch(wikiFN($this->pageid), $rev); 674eb5e174Slisps 684eb5e174Slisps $rev +=1; 694eb5e174Slisps 704eb5e174Slisps $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 714eb5e174Slisps $revs = $pagelog->getLastRevisionAt($rev); 724eb5e174Slisps $this->assertEquals($revsexpected, $revs); 734eb5e174Slisps 744eb5e174Slisps } 754eb5e174Slisps 764eb5e174Slisps /** 774eb5e174Slisps * start at exact last revision of mailinglist page 784eb5e174Slisps * 794eb5e174Slisps */ 804eb5e174Slisps function test_exactlastrev() { 814eb5e174Slisps $rev = 1360110636; 824eb5e174Slisps $revsexpected = 1360110636; 834eb5e174Slisps 844eb5e174Slisps $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 854eb5e174Slisps $revs = $pagelog->getLastRevisionAt($rev); 864eb5e174Slisps $this->assertEquals($revsexpected, $revs); 874eb5e174Slisps } 884eb5e174Slisps 894eb5e174Slisps 904eb5e174Slisps /** 914eb5e174Slisps * Request not existing revision 924eb5e174Slisps * 934eb5e174Slisps */ 944eb5e174Slisps function test_olderrev() { 954eb5e174Slisps $rev = 1; 964eb5e174Slisps $revexpected = false; 974eb5e174Slisps 984eb5e174Slisps $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 994eb5e174Slisps $revfound = $pagelog->getLastRevisionAt($rev); 1004eb5e174Slisps $this->assertEquals($revexpected, $revfound); 1014eb5e174Slisps } 1024eb5e174Slisps 1034eb5e174Slisps /** 1044eb5e174Slisps * Start at non existing revision somewhere between existing revisions 1054eb5e174Slisps */ 1064eb5e174Slisps function test_notexistingrev() { 1074eb5e174Slisps $rev = 1362525890; 1084eb5e174Slisps $revexpected = 1362525359; 1094eb5e174Slisps 1104eb5e174Slisps $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 1114eb5e174Slisps $revfound = $pagelog->getLastRevisionAt($rev); 1124eb5e174Slisps $this->assertEquals($revexpected, $revfound); 1134eb5e174Slisps } 1144eb5e174Slisps 1154eb5e174Slisps /** 1164eb5e174Slisps * request nonexisting page 1174eb5e174Slisps * 1184eb5e174Slisps */ 1194eb5e174Slisps function test_notexistingpage() { 1204eb5e174Slisps $rev = 1385051947; 1214eb5e174Slisps $currentexpected = false; 1224eb5e174Slisps 1234eb5e174Slisps $pagelog = new PageChangeLog('nonexistingpage', $chunk_size = 8192); 1244eb5e174Slisps $current = $pagelog->getLastRevisionAt($rev); 1254eb5e174Slisps $this->assertEquals($currentexpected, $current); 1264eb5e174Slisps } 127*aaaabdedSlisps 128*aaaabdedSlisps /** 129*aaaabdedSlisps * test get correct revision on deleted media 130*aaaabdedSlisps * 131*aaaabdedSlisps */ 132*aaaabdedSlisps function test_deletedmedia() { 133*aaaabdedSlisps $image = 'wiki:kind_zu_katze.png'; 134*aaaabdedSlisps $revexpected = @filemtime(mediaFn($image)); 135*aaaabdedSlisps $rev = $revexpected + 10; 136*aaaabdedSlisps 137*aaaabdedSlisps media_delete('wiki:kind_zu_katze.png', 0); 138*aaaabdedSlisps 139*aaaabdedSlisps $medialog = new MediaChangelog($image); 140*aaaabdedSlisps $current = $medialog->getLastRevisionAt($rev); 141*aaaabdedSlisps $this->assertEquals($revexpected, $current); 142*aaaabdedSlisps 143*aaaabdedSlisps media_restore($image, $revexpected, AUTH_UPLOAD); 144*aaaabdedSlisps } 1454eb5e174Slisps} 146