[ Index ] |
PHP Cross Reference of DokuWiki |
[Summary view] [Print] [Text view]
1 <?php 2 3 use dokuwiki\ChangeLog\ChangeLog; 4 use dokuwiki\ChangeLog\PageChangeLog; 5 6 /** 7 * Tests for requesting revisioninfo of a revision of a page with getRevisionInfo() 8 * 9 * This class uses the files: 10 * - data/pages/mailinglist.txt 11 * - data/meta/mailinglist.changes 12 */ 13 class changelog_getrelativerevision_test extends DokuWikiTest { 14 15 private $logline = "1362525899 127.0.0.1 E mailinglist pubcie [Data entry] \n"; 16 private $pageid = 'mailinglist'; 17 18 function setup() : void { 19 parent::setup(); 20 global $cache_revinfo; 21 $cache =& $cache_revinfo; 22 unset($cache['nonexist']); 23 unset($cache['mailinglist']); 24 } 25 26 /** 27 * no nonexist.changes meta file available 28 */ 29 function test_changemetadatanotexists() { 30 $rev = 1362525899; 31 $dir = 1; 32 $id = 'nonexist'; 33 $revsexpected = false; 34 35 $pagelog = new PageChangeLog($id, $chunk_size = 8192); 36 $revs = $pagelog->getRelativeRevision($rev, $dir); 37 $this->assertEquals($revsexpected, $revs); 38 } 39 40 /** 41 * no nonexist.changes meta file available 42 */ 43 function test_nodirection() { 44 $rev = 1362525899; 45 $dir = 0; 46 $revsexpected = false; 47 48 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 49 $revs = $pagelog->getRelativeRevision($rev, $dir); 50 $this->assertEquals($revsexpected, $revs); 51 } 52 53 /** 54 * start at exact current revision of mailinglist page 55 * 56 */ 57 function test_startatexactcurrentrev() { 58 $rev = 1385051947; 59 $dir = 1; 60 $revsexpectedpos = false; 61 $revsexpectedneg = 1374261194; 62 63 //set a known timestamp 64 touch(wikiFN($this->pageid), $rev); 65 66 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 67 $revs = $pagelog->getRelativeRevision($rev, $dir); 68 $this->assertEquals($revsexpectedpos, $revs); 69 70 $revs = $pagelog->getRelativeRevision($rev, -$dir); 71 $this->assertEquals($revsexpectedneg, $revs); 72 } 73 74 /** 75 * start at exact last revision of mailinglist page 76 * 77 */ 78 function test_startatexactlastrev() { 79 $rev = 1360110636; 80 $dir = 1; 81 $revsexpectedpos = 1361901536; 82 $revsexpectedneg = false; 83 84 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 85 $revs = $pagelog->getRelativeRevision($rev, $dir); 86 $this->assertEquals($revsexpectedpos, $revs); 87 88 $revs = $pagelog->getRelativeRevision($rev, -$dir); 89 $this->assertEquals($revsexpectedneg, $revs); 90 } 91 92 /** 93 * start at exact one before last revision of mailinglist page 94 * 95 */ 96 function test_requestlastrevisions() { 97 $rev = 1361901536; 98 $dir = -1; 99 $revsexpectedlast = 1360110636; 100 $revsexpectedbeforelast = false; 101 102 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 103 $revs = $pagelog->getRelativeRevision($rev, $dir); 104 $this->assertEquals($revsexpectedlast, $revs); 105 106 $revs = $pagelog->getRelativeRevision($rev, 2 * $dir); 107 $this->assertEquals($revsexpectedbeforelast, $revs); 108 } 109 110 /** 111 * request existing rev and check cache 112 */ 113 function test_requestrev_checkcache() { 114 $rev = 1362525359; 115 $dir = 1; 116 $revexpected = 1362525899; 117 $infoexpected = ChangeLog::parseLogLine($this->logline); 118 $infoexpected['mode'] = 'page'; 119 120 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 121 $revfound = $pagelog->getRelativeRevision($rev, $dir); 122 $this->assertEquals($revexpected, $revfound); 123 124 //checked info returned from cache 125 $info = $pagelog->getRevisionInfo($revfound); 126 $this->assertEquals($infoexpected, $info); 127 } 128 129 /** 130 * request existing rev 131 */ 132 function test_requestnextrev() { 133 $rev = 1362525899; 134 135 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 136 137 $dir = 1; 138 $revexpected = 1362525926; 139 $revfound = $pagelog->getRelativeRevision($rev, $dir); 140 $this->assertEquals($revexpected, $revfound); 141 142 $dir = 2; 143 $revexpected = 1362526039; 144 $revfound = $pagelog->getRelativeRevision($rev, $dir); 145 $this->assertEquals($revexpected, $revfound); 146 147 $dir = -1; 148 $revexpected = 1362525359; 149 $revfound = $pagelog->getRelativeRevision($rev, $dir); 150 $this->assertEquals($revexpected, $revfound); 151 152 $dir = -2; 153 $revexpected = 1362525145; 154 $revfound = $pagelog->getRelativeRevision($rev, $dir); 155 $this->assertEquals($revexpected, $revfound); 156 } 157 158 /** 159 * request existing rev with chucked reading 160 */ 161 function test_requestnextrev_chuncked() { 162 $rev = 1362525899; 163 164 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 165 166 $dir = 1; 167 $revexpected = 1362525926; 168 $revfound = $pagelog->getRelativeRevision($rev, $dir); 169 $this->assertEquals($revexpected, $revfound); 170 171 $dir = 2; 172 $revexpected = 1362526039; 173 $revfound = $pagelog->getRelativeRevision($rev, $dir); 174 $this->assertEquals($revexpected, $revfound); 175 176 $dir = -1; 177 $revexpected = 1362525359; 178 $revfound = $pagelog->getRelativeRevision($rev, $dir); 179 $this->assertEquals($revexpected, $revfound); 180 181 $dir = -2; 182 $revexpected = 1362525145; 183 $revfound = $pagelog->getRelativeRevision($rev, $dir); 184 $this->assertEquals($revexpected, $revfound); 185 } 186 187 188 /** 189 * request existing rev with chucked reading, chunk size smaller than line length 190 */ 191 function test_requestnextrev_chunkshorterthanlines() { 192 $rev = 1362525899; 193 194 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); 195 196 $dir = 1; 197 $revexpected = 1362525926; 198 $revfound = $pagelog->getRelativeRevision($rev, $dir); 199 $this->assertEquals($revexpected, $revfound); 200 201 $dir = 2; 202 $revexpected = 1362526039; 203 $revfound = $pagelog->getRelativeRevision($rev, $dir); 204 $this->assertEquals($revexpected, $revfound); 205 206 $dir = -1; 207 $revexpected = 1362525359; 208 $revfound = $pagelog->getRelativeRevision($rev, $dir); 209 $this->assertEquals($revexpected, $revfound); 210 211 $dir = -2; 212 $revexpected = 1362525145; 213 $revfound = $pagelog->getRelativeRevision($rev, $dir); 214 $this->assertEquals($revexpected, $revfound); 215 } 216 217 /** 218 * request existing rev 219 */ 220 function test_requestnextfifthrev() { 221 $rev = 1362525899; 222 $dir = 5; 223 $revexpected = 1362526767; 224 225 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 226 $revfound = $pagelog->getRelativeRevision($rev, $dir); 227 $this->assertEquals($revexpected, $revfound); 228 } 229 230 /** 231 * request existing rev with chucked reading 232 */ 233 function test_requestnextfifthrev_chuncked() { 234 $rev = 1362525899; 235 $dir = 5; 236 $revexpected = 1362526767; 237 238 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 239 $revfound = $pagelog->getRelativeRevision($rev, $dir); 240 $this->assertEquals($revexpected, $revfound); 241 } 242 243 /** 244 * request existing rev 245 */ 246 function test_requestprevrev() { 247 $rev = 1362525899; 248 $dir1 = -1; 249 $dir5 = -5; 250 $revexpected1 = 1362525359; 251 $revexpected5 = 1360110636; 252 253 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 254 $revfound1 = $pagelog->getRelativeRevision($rev, $dir1); 255 $this->assertEquals($revexpected1, $revfound1); 256 257 $revfound5 = $pagelog->getRelativeRevision($rev, $dir5); 258 $this->assertEquals($revexpected5, $revfound5); 259 } 260 261 /** 262 * request existing rev with chucked reading 263 */ 264 function test_requestprevrev_chuncked() { 265 $rev = 1362525899; 266 $dir1 = -1; 267 $dir5 = -5; 268 $revexpected1 = 1362525359; 269 $revexpected5 = 1360110636; 270 271 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 272 $revfound1 = $pagelog->getRelativeRevision($rev, $dir1); 273 $this->assertEquals($revexpected1, $revfound1); 274 275 $revfound5 = $pagelog->getRelativeRevision($rev, $dir5); 276 $this->assertEquals($revexpected5, $revfound5); 277 } 278 279 /** 280 * request after recentest version in changelog 281 */ 282 function test_requestrecentestlogline_next() { 283 $rev = 1374261194; 284 $dir = 1; 285 $revexpected = false; 286 287 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 288 $revfound = $pagelog->getRelativeRevision($rev, $dir); 289 $this->assertEquals($revexpected, $revfound); 290 } 291 292 /** 293 * request after recentest version in changelog, with chuncked reading 294 */ 295 function test_requestrecentestlogline_next_chuncked() { 296 $rev = 1374261194; 297 $dir = 1; 298 $revexpected = false; 299 300 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 301 $revfound = $pagelog->getRelativeRevision($rev, $dir); 302 $this->assertEquals($revexpected, $revfound); 303 } 304 305 /** 306 * request before current version 307 */ 308 function test_requestrecentestlogline_prev() { 309 $rev = 1374261194; 310 $dir = -1; 311 $revexpected = 1371579614; 312 313 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 314 $revfound = $pagelog->getRelativeRevision($rev, $dir); 315 $this->assertEquals($revexpected, $revfound); 316 } 317 318 /** 319 * request before current version, with chuncked reading 320 */ 321 function test_requestrecentestlogline_prev_chuncked() { 322 $rev = 1374261194; 323 $dir = -1; 324 $revexpected = 1371579614; 325 326 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); 327 $revfound = $pagelog->getRelativeRevision($rev, $dir); 328 $this->assertEquals($revexpected, $revfound); 329 } 330 331 /** 332 * Request negative revision 333 * looks in positive direction, so it catches the oldest revision 334 */ 335 function test_negativerev_posdir() { 336 $rev = -10; 337 $dir = 1; 338 $revexpected = 1360110636; 339 340 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 341 $revfound = $pagelog->getRelativeRevision($rev, $dir); 342 $this->assertEquals($revexpected, $revfound); 343 } 344 345 /** 346 * Request negative revision 347 * looks in negative direction, but there is nothing 348 */ 349 function test_negativerev_negdir() { 350 $rev = -10; 351 $dir = -1; 352 $revexpected = false; 353 354 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 355 $revfound = $pagelog->getRelativeRevision($rev, $dir); 356 $this->assertEquals($revexpected, $revfound); 357 } 358 359 /** 360 * Start at non existing revision somewhere between existing revisions 361 */ 362 function test_startatnotexistingrev_next() { 363 $rev = 1362525890; 364 $dir = 1; 365 $revexpected = 1362525899; 366 367 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 368 $revfound = $pagelog->getRelativeRevision($rev, $dir); 369 $this->assertEquals($revexpected, $revfound); 370 } 371 372 /** 373 * Start at non existing revision somewhere between existing revisions 374 */ 375 function test_startatnotexistingrev_prev() { 376 $rev = 1362525890; 377 $dir = -1; 378 $revexpected = 1362525359; 379 380 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 381 $revfound = $pagelog->getRelativeRevision($rev, $dir); 382 $this->assertEquals($revexpected, $revfound); 383 } 384 385 function test_iscurrentpagerevision() { 386 $rev = 1385051947; 387 $currentexpected = true; 388 389 //set a known timestamp 390 touch(wikiFN($this->pageid), $rev); 391 392 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 393 $current = $pagelog->isCurrentRevision($rev); 394 $this->assertEquals($currentexpected, $current); 395 } 396 397 function test_isnotcurrentpagerevision() { 398 $rev = 1385051947; 399 $not_current_rev = $rev - 1; 400 $currentexpected = false; 401 402 //set a known timestamp 403 touch(wikiFN($this->pageid), $rev); 404 405 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); 406 $current = $pagelog->isCurrentRevision($not_current_rev); 407 $this->assertEquals($currentexpected, $current); 408 } 409 410 function test_notexistingcurrentpage() { 411 $rev = 1385051947; 412 $currentexpected = false; 413 414 $pagelog = new PageChangeLog('nonexistingpage', $chunk_size = 8192); 415 $current = $pagelog->isCurrentRevision($rev); 416 $this->assertEquals($currentexpected, $current); 417 } 418 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body