1*51bd6f03SKlap-in<?php 2*51bd6f03SKlap-in/** 3*51bd6f03SKlap-in * Tests for requesting revisions of a page with getRevisions() 4*51bd6f03SKlap-in * 5*51bd6f03SKlap-in * This class uses the files: 6*51bd6f03SKlap-in * - data/pages/mailinglist.txt 7*51bd6f03SKlap-in * - data/meta/mailinglist.changes 8*51bd6f03SKlap-in */ 9*51bd6f03SKlap-inclass changelog_getrevisions_test extends DokuWikiTest { 10*51bd6f03SKlap-in 11*51bd6f03SKlap-in /** 12*51bd6f03SKlap-in * $first counts inclusive zero, after the current page 13*51bd6f03SKlap-in */ 14*51bd6f03SKlap-in private $revsexpected = array( 15*51bd6f03SKlap-in 1374261194, //current page 16*51bd6f03SKlap-in 1371579614, 1368622240, // revisions, corresponds to respectively $first = 0 and 1 17*51bd6f03SKlap-in 1368622195, 1368622152, 18*51bd6f03SKlap-in 1368612599, 1368612506, 19*51bd6f03SKlap-in 1368609772, 1368575634, 20*51bd6f03SKlap-in 1363436892, 1362527164, 21*51bd6f03SKlap-in 1362527046, 1362526861, //10 and 11 22*51bd6f03SKlap-in 1362526767, 1362526167, 23*51bd6f03SKlap-in 1362526119, 1362526039, 24*51bd6f03SKlap-in 1362525926, 1362525899, 25*51bd6f03SKlap-in 1362525359, 1362525145, 26*51bd6f03SKlap-in 1362524799, 1361901536, //20 and 21 27*51bd6f03SKlap-in 1360110636 28*51bd6f03SKlap-in ); 29*51bd6f03SKlap-in private $pageid = 'mailinglist'; 30*51bd6f03SKlap-in 31*51bd6f03SKlap-in function setup() { 32*51bd6f03SKlap-in parent::setup(); 33*51bd6f03SKlap-in global $cache_revinfo; 34*51bd6f03SKlap-in $cache =& $cache_revinfo; 35*51bd6f03SKlap-in if(isset($cache['nonexist'])) { 36*51bd6f03SKlap-in unset($cache['nonexist']); 37*51bd6f03SKlap-in } 38*51bd6f03SKlap-in if(isset($cache['mailinglist'])) { 39*51bd6f03SKlap-in unset($cache['nonexist']); 40*51bd6f03SKlap-in } 41*51bd6f03SKlap-in } 42*51bd6f03SKlap-in 43*51bd6f03SKlap-in /** 44*51bd6f03SKlap-in * no nonexist.changes meta file available 45*51bd6f03SKlap-in */ 46*51bd6f03SKlap-in function test_changemetadatanotexists() { 47*51bd6f03SKlap-in $first = 0; 48*51bd6f03SKlap-in $num = 1; 49*51bd6f03SKlap-in $id = 'nonexist'; 50*51bd6f03SKlap-in 51*51bd6f03SKlap-in $revs = getRevisions($id, $first, $num, $chunk_size = 8192, $media = false); 52*51bd6f03SKlap-in $revsexpected = array(); 53*51bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 54*51bd6f03SKlap-in } 55*51bd6f03SKlap-in 56*51bd6f03SKlap-in /** 57*51bd6f03SKlap-in * request first recentest revision 58*51bd6f03SKlap-in * (so skips first line which belongs to the current existing page) 59*51bd6f03SKlap-in */ 60*51bd6f03SKlap-in function test_requestlastrev() { 61*51bd6f03SKlap-in $first = 0; 62*51bd6f03SKlap-in $num = 1; 63*51bd6f03SKlap-in $revsexpected = array($this->revsexpected[1]); 64*51bd6f03SKlap-in 65*51bd6f03SKlap-in $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); 66*51bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 67*51bd6f03SKlap-in 68*51bd6f03SKlap-in $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); 69*51bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 70*51bd6f03SKlap-in } 71*51bd6f03SKlap-in 72*51bd6f03SKlap-in /** 73*51bd6f03SKlap-in * request first recentest revision 74*51bd6f03SKlap-in * (so skips first line which belongs to the current existing page) 75*51bd6f03SKlap-in */ 76*51bd6f03SKlap-in function test_requestonebutlastrev() { 77*51bd6f03SKlap-in $first = 1; 78*51bd6f03SKlap-in $num = 1; 79*51bd6f03SKlap-in $revsexpected = array($this->revsexpected[2]); 80*51bd6f03SKlap-in 81*51bd6f03SKlap-in $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); 82*51bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 83*51bd6f03SKlap-in 84*51bd6f03SKlap-in $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); 85*51bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 86*51bd6f03SKlap-in } 87*51bd6f03SKlap-in 88*51bd6f03SKlap-in /** 89*51bd6f03SKlap-in * request first recentest revision 90*51bd6f03SKlap-in * (so skips first line of current existing page) 91*51bd6f03SKlap-in */ 92*51bd6f03SKlap-in function test_requestrevswithoffset() { 93*51bd6f03SKlap-in $first = 10; 94*51bd6f03SKlap-in $num = 5; 95*51bd6f03SKlap-in $revsexpected = array_slice($this->revsexpected, $first + 1, $num); 96*51bd6f03SKlap-in 97*51bd6f03SKlap-in $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); 98*51bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 99*51bd6f03SKlap-in 100*51bd6f03SKlap-in $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); 101*51bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 102*51bd6f03SKlap-in } 103*51bd6f03SKlap-in 104*51bd6f03SKlap-in /** 105*51bd6f03SKlap-in * first = -1 requests recentest logline, without skipping 106*51bd6f03SKlap-in */ 107*51bd6f03SKlap-in function test_requestrecentestlogline() { 108*51bd6f03SKlap-in $first = -1; 109*51bd6f03SKlap-in $num = 1; 110*51bd6f03SKlap-in $revsexpected = array($this->revsexpected[0]); 111*51bd6f03SKlap-in 112*51bd6f03SKlap-in $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); 113*51bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 114*51bd6f03SKlap-in 115*51bd6f03SKlap-in $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); 116*51bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 117*51bd6f03SKlap-in } 118*51bd6f03SKlap-in 119*51bd6f03SKlap-in /** 120*51bd6f03SKlap-in * chunck size = 0 skips chuncked loading 121*51bd6f03SKlap-in */ 122*51bd6f03SKlap-in function test_wholefile() { 123*51bd6f03SKlap-in $first = 0; 124*51bd6f03SKlap-in $num = 1000; 125*51bd6f03SKlap-in $revsexpected = array_slice($this->revsexpected, 1); 126*51bd6f03SKlap-in 127*51bd6f03SKlap-in $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 0, $media = false); 128*51bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 129*51bd6f03SKlap-in } 130*51bd6f03SKlap-in 131*51bd6f03SKlap-in /** 132*51bd6f03SKlap-in * Negative range returns no result 133*51bd6f03SKlap-in */ 134*51bd6f03SKlap-in function test_negativenum() { 135*51bd6f03SKlap-in $first = 0; 136*51bd6f03SKlap-in $num = -10; 137*51bd6f03SKlap-in $revsexpected = array(); 138*51bd6f03SKlap-in 139*51bd6f03SKlap-in $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); 140*51bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 141*51bd6f03SKlap-in 142*51bd6f03SKlap-in $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); 143*51bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 144*51bd6f03SKlap-in } 145*51bd6f03SKlap-in 146*51bd6f03SKlap-in /** 147*51bd6f03SKlap-in * Negative range returns no result 148*51bd6f03SKlap-in */ 149*51bd6f03SKlap-in function test_negativennumoffset() { 150*51bd6f03SKlap-in $first = 2; 151*51bd6f03SKlap-in $num = -10; 152*51bd6f03SKlap-in $revsexpected = array(); 153*51bd6f03SKlap-in 154*51bd6f03SKlap-in $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); 155*51bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 156*51bd6f03SKlap-in 157*51bd6f03SKlap-in $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); 158*51bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 159*51bd6f03SKlap-in } 160*51bd6f03SKlap-in 161*51bd6f03SKlap-in /** 162*51bd6f03SKlap-in * zero range returns no result 163*51bd6f03SKlap-in */ 164*51bd6f03SKlap-in function test_zeronum() { 165*51bd6f03SKlap-in $first = 5; 166*51bd6f03SKlap-in $num = 0; 167*51bd6f03SKlap-in $revsexpected = array(); 168*51bd6f03SKlap-in 169*51bd6f03SKlap-in $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); 170*51bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 171*51bd6f03SKlap-in 172*51bd6f03SKlap-in $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); 173*51bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 174*51bd6f03SKlap-in } 175*51bd6f03SKlap-in 176*51bd6f03SKlap-in /** 177*51bd6f03SKlap-in * get oldest revisions 178*51bd6f03SKlap-in */ 179*51bd6f03SKlap-in function test_requestlargeoffset() { 180*51bd6f03SKlap-in $first = 22; 181*51bd6f03SKlap-in $num = 50; 182*51bd6f03SKlap-in $revsexpected = array_slice($this->revsexpected, $first + 1); 183*51bd6f03SKlap-in 184*51bd6f03SKlap-in $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); 185*51bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 186*51bd6f03SKlap-in } 187*51bd6f03SKlap-in 188*51bd6f03SKlap-in /** 189*51bd6f03SKlap-in * request with too large offset and range 190*51bd6f03SKlap-in */ 191*51bd6f03SKlap-in function test_requesttoolargenumberrevs() { 192*51bd6f03SKlap-in $first = 50; 193*51bd6f03SKlap-in $num = 50; 194*51bd6f03SKlap-in $revsexpected = array(); 195*51bd6f03SKlap-in 196*51bd6f03SKlap-in $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); 197*51bd6f03SKlap-in $this->assertEquals($revsexpected, $revs); 198*51bd6f03SKlap-in } 199*51bd6f03SKlap-in 200*51bd6f03SKlap-in}