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