1*55545bccSGerrit Uitslag<?php 2*55545bccSGerrit Uitslag 3*55545bccSGerrit Uitslag/** 4*55545bccSGerrit Uitslag * Tests for requesting revisioninfo of a revision of a page with getRevisionInfo() 5*55545bccSGerrit Uitslag * 6*55545bccSGerrit Uitslag * This class uses the files: 7*55545bccSGerrit Uitslag * - data/pages/mailinglist.txt 8*55545bccSGerrit Uitslag * - data/meta/mailinglist.changes 9*55545bccSGerrit Uitslag */ 10*55545bccSGerrit Uitslagclass changelog_getrelativerevision_test extends DokuWikiTest { 11*55545bccSGerrit Uitslag 12*55545bccSGerrit Uitslag private $logline = "1362525899 127.0.0.1 E mailinglist pubcie [Data entry] \n"; 13*55545bccSGerrit Uitslag private $pageid = 'mailinglist'; 14*55545bccSGerrit Uitslag 15*55545bccSGerrit Uitslag function setup() { 16*55545bccSGerrit Uitslag parent::setup(); 17*55545bccSGerrit Uitslag global $cache_revinfo; 18*55545bccSGerrit Uitslag $cache =& $cache_revinfo; 19*55545bccSGerrit Uitslag if(isset($cache['nonexist'])) { 20*55545bccSGerrit Uitslag unset($cache['nonexist']); 21*55545bccSGerrit Uitslag } 22*55545bccSGerrit Uitslag if(isset($cache['mailinglist'])) { 23*55545bccSGerrit Uitslag unset($cache['mailinglist']); 24*55545bccSGerrit Uitslag } 25*55545bccSGerrit Uitslag } 26*55545bccSGerrit Uitslag 27*55545bccSGerrit Uitslag /** 28*55545bccSGerrit Uitslag * no nonexist.changes meta file available 29*55545bccSGerrit Uitslag */ 30*55545bccSGerrit Uitslag function test_changemetadatanotexists() { 31*55545bccSGerrit Uitslag $rev = 1362525899; 32*55545bccSGerrit Uitslag $dir = 1; 33*55545bccSGerrit Uitslag $id = 'nonexist'; 34*55545bccSGerrit Uitslag $revsexpected = false; 35*55545bccSGerrit Uitslag 36*55545bccSGerrit Uitslag $pagelog = new PageRevisionLog($id, $chunk_size = 8192); 37*55545bccSGerrit Uitslag $revs = $pagelog->getRelativeRevision($rev, $dir, $media = false); 38*55545bccSGerrit Uitslag $this->assertEquals($revsexpected, $revs); 39*55545bccSGerrit Uitslag } 40*55545bccSGerrit Uitslag 41*55545bccSGerrit Uitslag /** 42*55545bccSGerrit Uitslag * no nonexist.changes meta file available 43*55545bccSGerrit Uitslag */ 44*55545bccSGerrit Uitslag function test_nodirection() { 45*55545bccSGerrit Uitslag $rev = 1362525899; 46*55545bccSGerrit Uitslag $dir = 0; 47*55545bccSGerrit Uitslag $revsexpected = false; 48*55545bccSGerrit Uitslag 49*55545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 50*55545bccSGerrit Uitslag $revs = $pagelog->getRelativeRevision($rev, $dir, $media = false); 51*55545bccSGerrit Uitslag $this->assertEquals($revsexpected, $revs); 52*55545bccSGerrit Uitslag } 53*55545bccSGerrit Uitslag 54*55545bccSGerrit Uitslag /** 55*55545bccSGerrit Uitslag * start at exact current revision of mailinglist page 56*55545bccSGerrit Uitslag * 57*55545bccSGerrit Uitslag */ 58*55545bccSGerrit Uitslag function test_startatexactcurrentrev() { 59*55545bccSGerrit Uitslag $rev = 1374261194; 60*55545bccSGerrit Uitslag $dir = 1; 61*55545bccSGerrit Uitslag $revsexpected = false; 62*55545bccSGerrit Uitslag 63*55545bccSGerrit Uitslag// global $INFO; 64*55545bccSGerrit Uitslag// $INFO = pageinfo(); 65*55545bccSGerrit Uitslag// var_dump($INFO); 66*55545bccSGerrit Uitslag// var_dump($INFO['meta']); 67*55545bccSGerrit Uitslag// var_dump($INFO['meta']['last_change']); 68*55545bccSGerrit Uitslag// var_dump($INFO['meta']['last_change']['date']); 69*55545bccSGerrit Uitslag 70*55545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 71*55545bccSGerrit Uitslag $revs = $pagelog->getRelativeRevision($rev, $dir, $media = false); 72*55545bccSGerrit Uitslag $this->assertEquals($revsexpected, $revs); 73*55545bccSGerrit Uitslag } 74*55545bccSGerrit Uitslag 75*55545bccSGerrit Uitslag /** 76*55545bccSGerrit Uitslag * request existing rev 77*55545bccSGerrit Uitslag */ 78*55545bccSGerrit Uitslag function test_requestrev() { 79*55545bccSGerrit Uitslag $rev = 1362525359; 80*55545bccSGerrit Uitslag $dir = 1; 81*55545bccSGerrit Uitslag $revexpected = 1362525899; 82*55545bccSGerrit Uitslag $infoexpected = parseChangelogLine($this->logline); 83*55545bccSGerrit Uitslag 84*55545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 85*55545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 86*55545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 87*55545bccSGerrit Uitslag //checked info returned from cache 88*55545bccSGerrit Uitslag $info = $pagelog->getRevisionInfo($revfound, $media = false); 89*55545bccSGerrit Uitslag $this->assertEquals($infoexpected, $info); 90*55545bccSGerrit Uitslag } 91*55545bccSGerrit Uitslag 92*55545bccSGerrit Uitslag /** 93*55545bccSGerrit Uitslag * request existing rev with chucked reading 94*55545bccSGerrit Uitslag */ 95*55545bccSGerrit Uitslag function test_requestnextrev_chuncked() { 96*55545bccSGerrit Uitslag $rev = 1362525899; 97*55545bccSGerrit Uitslag $dir = 1; 98*55545bccSGerrit Uitslag $revexpected = 1362525926; 99*55545bccSGerrit Uitslag 100*55545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); 101*55545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 102*55545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 103*55545bccSGerrit Uitslag } 104*55545bccSGerrit Uitslag 105*55545bccSGerrit Uitslag /** 106*55545bccSGerrit Uitslag * request existing rev 107*55545bccSGerrit Uitslag */ 108*55545bccSGerrit Uitslag function test_requestnextfifthrev() { 109*55545bccSGerrit Uitslag $rev = 1362525899; 110*55545bccSGerrit Uitslag $dir = 5; 111*55545bccSGerrit Uitslag $revexpected = 1362526767; 112*55545bccSGerrit Uitslag 113*55545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 114*55545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 115*55545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 116*55545bccSGerrit Uitslag } 117*55545bccSGerrit Uitslag 118*55545bccSGerrit Uitslag /** 119*55545bccSGerrit Uitslag * request existing rev with chucked reading 120*55545bccSGerrit Uitslag */ 121*55545bccSGerrit Uitslag function test_requestnextfifthrev_chuncked() { 122*55545bccSGerrit Uitslag $rev = 1362525899; 123*55545bccSGerrit Uitslag $dir = 5; 124*55545bccSGerrit Uitslag $revexpected = 1362526767; 125*55545bccSGerrit Uitslag 126*55545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); 127*55545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 128*55545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 129*55545bccSGerrit Uitslag } 130*55545bccSGerrit Uitslag 131*55545bccSGerrit Uitslag /** 132*55545bccSGerrit Uitslag * request existing rev 133*55545bccSGerrit Uitslag */ 134*55545bccSGerrit Uitslag function test_requestprevrev() { 135*55545bccSGerrit Uitslag $rev = 1362525899; 136*55545bccSGerrit Uitslag $dir1 = -1; 137*55545bccSGerrit Uitslag $dir5 = -5; 138*55545bccSGerrit Uitslag $revexpected1 = 1362525359; 139*55545bccSGerrit Uitslag $revexpected5 = 1360110636; 140*55545bccSGerrit Uitslag 141*55545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 142*55545bccSGerrit Uitslag $revfound1 = $pagelog->getRelativeRevision($rev, $dir1, $media = false); 143*55545bccSGerrit Uitslag $this->assertEquals($revexpected1, $revfound1); 144*55545bccSGerrit Uitslag 145*55545bccSGerrit Uitslag $revfound5 = $pagelog->getRelativeRevision($rev, $dir5, $media = false); 146*55545bccSGerrit Uitslag $this->assertEquals($revexpected5, $revfound5); 147*55545bccSGerrit Uitslag } 148*55545bccSGerrit Uitslag 149*55545bccSGerrit Uitslag /** 150*55545bccSGerrit Uitslag * request existing rev with chucked reading 151*55545bccSGerrit Uitslag */ 152*55545bccSGerrit Uitslag function test_requestprevrev_chuncked() { 153*55545bccSGerrit Uitslag $rev = 1362525899; 154*55545bccSGerrit Uitslag $dir1 = -1; 155*55545bccSGerrit Uitslag $dir5 = -5; 156*55545bccSGerrit Uitslag $revexpected1 = 1362525359; 157*55545bccSGerrit Uitslag $revexpected5 = 1360110636; 158*55545bccSGerrit Uitslag 159*55545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); 160*55545bccSGerrit Uitslag $revfound1 = $pagelog->getRelativeRevision($rev, $dir1, $media = false); 161*55545bccSGerrit Uitslag $this->assertEquals($revexpected1, $revfound1); 162*55545bccSGerrit Uitslag 163*55545bccSGerrit Uitslag $revfound5 = $pagelog->getRelativeRevision($rev, $dir5, $media = false); 164*55545bccSGerrit Uitslag $this->assertEquals($revexpected5, $revfound5); 165*55545bccSGerrit Uitslag } 166*55545bccSGerrit Uitslag 167*55545bccSGerrit Uitslag /** 168*55545bccSGerrit Uitslag * request after recentest version in changelog 169*55545bccSGerrit Uitslag */ 170*55545bccSGerrit Uitslag function test_requestrecentestlogline_next() { 171*55545bccSGerrit Uitslag $rev = 1374261194; 172*55545bccSGerrit Uitslag $dir = 1; 173*55545bccSGerrit Uitslag $revexpected = false; 174*55545bccSGerrit Uitslag 175*55545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 176*55545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 177*55545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 178*55545bccSGerrit Uitslag } 179*55545bccSGerrit Uitslag 180*55545bccSGerrit Uitslag /** 181*55545bccSGerrit Uitslag * request after recentest version in changelog, with chuncked reading 182*55545bccSGerrit Uitslag */ 183*55545bccSGerrit Uitslag function test_requestrecentestlogline_next_chuncked() { 184*55545bccSGerrit Uitslag $rev = 1374261194; 185*55545bccSGerrit Uitslag $dir = 1; 186*55545bccSGerrit Uitslag $revexpected = false; 187*55545bccSGerrit Uitslag 188*55545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); 189*55545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 190*55545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 191*55545bccSGerrit Uitslag } 192*55545bccSGerrit Uitslag 193*55545bccSGerrit Uitslag 194*55545bccSGerrit Uitslag /** 195*55545bccSGerrit Uitslag * request before current version 196*55545bccSGerrit Uitslag */ 197*55545bccSGerrit Uitslag function test_requestrecentestlogline_prev() { 198*55545bccSGerrit Uitslag $rev = 1374261194; 199*55545bccSGerrit Uitslag $dir = -1; 200*55545bccSGerrit Uitslag $revexpected = 1371579614; 201*55545bccSGerrit Uitslag 202*55545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 203*55545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 204*55545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 205*55545bccSGerrit Uitslag } 206*55545bccSGerrit Uitslag 207*55545bccSGerrit Uitslag /** 208*55545bccSGerrit Uitslag * request before current version, with chuncked reading 209*55545bccSGerrit Uitslag */ 210*55545bccSGerrit Uitslag function test_requestrecentestlogline_prev_chuncked() { 211*55545bccSGerrit Uitslag $rev = 1374261194; 212*55545bccSGerrit Uitslag $dir = -1; 213*55545bccSGerrit Uitslag $revexpected = 1371579614; 214*55545bccSGerrit Uitslag 215*55545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); 216*55545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 217*55545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 218*55545bccSGerrit Uitslag } 219*55545bccSGerrit Uitslag 220*55545bccSGerrit Uitslag /** 221*55545bccSGerrit Uitslag * Request negative revision 222*55545bccSGerrit Uitslag * looks in positive direction, so it catches the oldest revision 223*55545bccSGerrit Uitslag */ 224*55545bccSGerrit Uitslag function test_negativerev_posdir() { 225*55545bccSGerrit Uitslag $rev = -10; 226*55545bccSGerrit Uitslag $dir = 1; 227*55545bccSGerrit Uitslag $revexpected = 1360110636; 228*55545bccSGerrit Uitslag 229*55545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 230*55545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 231*55545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 232*55545bccSGerrit Uitslag } 233*55545bccSGerrit Uitslag 234*55545bccSGerrit Uitslag /** 235*55545bccSGerrit Uitslag * Request negative revision 236*55545bccSGerrit Uitslag * looks in negative direction, but there is nothing 237*55545bccSGerrit Uitslag */ 238*55545bccSGerrit Uitslag function test_negativerev_negdir() { 239*55545bccSGerrit Uitslag $rev = -10; 240*55545bccSGerrit Uitslag $dir = -1; 241*55545bccSGerrit Uitslag $revexpected = false; 242*55545bccSGerrit Uitslag 243*55545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 244*55545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 245*55545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 246*55545bccSGerrit Uitslag } 247*55545bccSGerrit Uitslag 248*55545bccSGerrit Uitslag /** 249*55545bccSGerrit Uitslag * Start at non existing revision somewhere between existing revisions 250*55545bccSGerrit Uitslag */ 251*55545bccSGerrit Uitslag function test_startatnotexistingrev_next() { 252*55545bccSGerrit Uitslag $rev = 1362525890; 253*55545bccSGerrit Uitslag $dir = 1; 254*55545bccSGerrit Uitslag $revexpected = 1362525899; 255*55545bccSGerrit Uitslag 256*55545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 257*55545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 258*55545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 259*55545bccSGerrit Uitslag } 260*55545bccSGerrit Uitslag 261*55545bccSGerrit Uitslag /** 262*55545bccSGerrit Uitslag * Start at non existing revision somewhere between existing revisions 263*55545bccSGerrit Uitslag */ 264*55545bccSGerrit Uitslag function test_startatnotexistingrev_prev() { 265*55545bccSGerrit Uitslag $rev = 1362525890; 266*55545bccSGerrit Uitslag $dir = -1; 267*55545bccSGerrit Uitslag $revexpected = 1362525359; 268*55545bccSGerrit Uitslag 269*55545bccSGerrit Uitslag $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 270*55545bccSGerrit Uitslag $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); 271*55545bccSGerrit Uitslag $this->assertEquals($revexpected, $revfound); 272*55545bccSGerrit Uitslag } 273*55545bccSGerrit Uitslag}