1*4eb5e174Slisps<?php 2*4eb5e174Slisps 3*4eb5e174Slisps/** 4*4eb5e174Slisps * Tests for requesting revisioninfo of a revision of a page with getRevisionInfo() 5*4eb5e174Slisps * 6*4eb5e174Slisps * This class uses the files: 7*4eb5e174Slisps * - data/pages/mailinglist.txt 8*4eb5e174Slisps * - data/meta/mailinglist.changes 9*4eb5e174Slisps */ 10*4eb5e174Slispsclass changelog_getrelativerevision_test extends DokuWikiTest { 11*4eb5e174Slisps 12*4eb5e174Slisps private $pageid = 'mailinglist'; 13*4eb5e174Slisps 14*4eb5e174Slisps function setup() { 15*4eb5e174Slisps parent::setup(); 16*4eb5e174Slisps global $cache_revinfo; 17*4eb5e174Slisps $cache =& $cache_revinfo; 18*4eb5e174Slisps if(isset($cache['nonexist'])) { 19*4eb5e174Slisps unset($cache['nonexist']); 20*4eb5e174Slisps } 21*4eb5e174Slisps if(isset($cache['mailinglist'])) { 22*4eb5e174Slisps unset($cache['mailinglist']); 23*4eb5e174Slisps } 24*4eb5e174Slisps } 25*4eb5e174Slisps 26*4eb5e174Slisps 27*4eb5e174Slisps /** 28*4eb5e174Slisps * no nonexist.changes meta file available 29*4eb5e174Slisps */ 30*4eb5e174Slisps function test_changemetadatanotexists() { 31*4eb5e174Slisps $rev = 1362525899; 32*4eb5e174Slisps $id = 'nonexist'; 33*4eb5e174Slisps $revsexpected = false; 34*4eb5e174Slisps 35*4eb5e174Slisps $pagelog = new PageChangeLog($id, $chunk_size = 8192); 36*4eb5e174Slisps $revs = $pagelog->getLastRevisionAt($rev); 37*4eb5e174Slisps $this->assertEquals($revsexpected, $revs); 38*4eb5e174Slisps } 39*4eb5e174Slisps 40*4eb5e174Slisps /** 41*4eb5e174Slisps * start at exact current revision of mailinglist page 42*4eb5e174Slisps * 43*4eb5e174Slisps */ 44*4eb5e174Slisps function test_startatexactcurrentrev() { 45*4eb5e174Slisps $rev = 1385051947; 46*4eb5e174Slisps $revsexpected = ''; 47*4eb5e174Slisps 48*4eb5e174Slisps //set a known timestamp 49*4eb5e174Slisps touch(wikiFN($this->pageid), $rev); 50*4eb5e174Slisps 51*4eb5e174Slisps $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 52*4eb5e174Slisps $revs = $pagelog->getLastRevisionAt($rev); 53*4eb5e174Slisps $this->assertEquals($revsexpected, $revs); 54*4eb5e174Slisps 55*4eb5e174Slisps } 56*4eb5e174Slisps 57*4eb5e174Slisps /** 58*4eb5e174Slisps * test a future revision 59*4eb5e174Slisps * 60*4eb5e174Slisps */ 61*4eb5e174Slisps function test_futurerev() { 62*4eb5e174Slisps $rev = 1385051947; 63*4eb5e174Slisps $revsexpected = ''; 64*4eb5e174Slisps 65*4eb5e174Slisps //set a known timestamp 66*4eb5e174Slisps touch(wikiFN($this->pageid), $rev); 67*4eb5e174Slisps 68*4eb5e174Slisps $rev +=1; 69*4eb5e174Slisps 70*4eb5e174Slisps $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 71*4eb5e174Slisps $revs = $pagelog->getLastRevisionAt($rev); 72*4eb5e174Slisps $this->assertEquals($revsexpected, $revs); 73*4eb5e174Slisps 74*4eb5e174Slisps } 75*4eb5e174Slisps 76*4eb5e174Slisps /** 77*4eb5e174Slisps * start at exact last revision of mailinglist page 78*4eb5e174Slisps * 79*4eb5e174Slisps */ 80*4eb5e174Slisps function test_exactlastrev() { 81*4eb5e174Slisps $rev = 1360110636; 82*4eb5e174Slisps $revsexpected = 1360110636; 83*4eb5e174Slisps 84*4eb5e174Slisps $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 85*4eb5e174Slisps $revs = $pagelog->getLastRevisionAt($rev); 86*4eb5e174Slisps $this->assertEquals($revsexpected, $revs); 87*4eb5e174Slisps } 88*4eb5e174Slisps 89*4eb5e174Slisps 90*4eb5e174Slisps /** 91*4eb5e174Slisps * Request not existing revision 92*4eb5e174Slisps * 93*4eb5e174Slisps */ 94*4eb5e174Slisps function test_olderrev() { 95*4eb5e174Slisps $rev = 1; 96*4eb5e174Slisps $revexpected = false; 97*4eb5e174Slisps 98*4eb5e174Slisps $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 99*4eb5e174Slisps $revfound = $pagelog->getLastRevisionAt($rev); 100*4eb5e174Slisps $this->assertEquals($revexpected, $revfound); 101*4eb5e174Slisps } 102*4eb5e174Slisps 103*4eb5e174Slisps /** 104*4eb5e174Slisps * Start at non existing revision somewhere between existing revisions 105*4eb5e174Slisps */ 106*4eb5e174Slisps function test_notexistingrev() { 107*4eb5e174Slisps $rev = 1362525890; 108*4eb5e174Slisps $revexpected = 1362525359; 109*4eb5e174Slisps 110*4eb5e174Slisps $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 111*4eb5e174Slisps $revfound = $pagelog->getLastRevisionAt($rev); 112*4eb5e174Slisps $this->assertEquals($revexpected, $revfound); 113*4eb5e174Slisps } 114*4eb5e174Slisps 115*4eb5e174Slisps /** 116*4eb5e174Slisps * request nonexisting page 117*4eb5e174Slisps * 118*4eb5e174Slisps */ 119*4eb5e174Slisps function test_notexistingpage() { 120*4eb5e174Slisps $rev = 1385051947; 121*4eb5e174Slisps $currentexpected = false; 122*4eb5e174Slisps 123*4eb5e174Slisps $pagelog = new PageChangeLog('nonexistingpage', $chunk_size = 8192); 124*4eb5e174Slisps $current = $pagelog->getLastRevisionAt($rev); 125*4eb5e174Slisps $this->assertEquals($currentexpected, $current); 126*4eb5e174Slisps } 127*4eb5e174Slisps}