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