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_getrevisionsinfo_test extends DokuWikiTest { 11 12 private $logline = "1362525899 127.0.0.1 E mailinglist pubcie [Data entry] \n"; 13 private $firstlogline = "1374261194 127.0.0.1 E mailinglist pubcie \n"; 14 private $pageid = 'mailinglist'; 15 16 function setup() { 17 parent::setup(); 18 global $cache_revinfo; 19 $cache =& $cache_revinfo; 20 if(isset($cache['nonexist'])) { 21 unset($cache['nonexist']); 22 } 23 if(isset($cache['mailinglist'])) { 24 unset($cache['mailinglist']); 25 } 26 } 27 28 /** 29 * no nonexist.changes meta file available 30 */ 31 function test_changemetadatanotexists() { 32 $rev = 1362525899; 33 $id = 'nonexist'; 34 $revsexpected = false; 35 36 $pagelog = new PageRevisionLog($id, $chunk_size = 8192); 37 $revs = $pagelog->getRevisionInfo($rev, $media = false); 38 $this->assertEquals($revsexpected, $revs); 39 } 40 41 /** 42 * request existing rev 43 */ 44 function test_requestrev() { 45 $rev = 1362525899; 46 $infoexpected = parseChangelogLine($this->logline); 47 48 $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 49 $info = $pagelog->getRevisionInfo($rev, $media = false); 50 $this->assertEquals($infoexpected, $info); 51 //returns cached value 52 $info = $pagelog->getRevisionInfo($rev, $media = false); 53 $this->assertEquals($infoexpected, $info); 54 } 55 56 /** 57 * request existing rev with chucked reading 58 */ 59 function test_requestrev_chuncked() { 60 $rev = 1362525899; 61 $infoexpected = parseChangelogLine($this->logline); 62 63 $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); 64 $info = $pagelog->getRevisionInfo($rev, $media = false); 65 $this->assertEquals($infoexpected, $info); 66 } 67 68 /** 69 * request current version 70 */ 71 function test_requestrecentestlogline() { 72 $rev = 1374261194; 73 $infoexpected = parseChangelogLine($this->firstlogline); 74 75 $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 76 $info = $pagelog->getRevisionInfo($rev, $media = false); 77 $this->assertEquals($infoexpected, $info); 78 //returns cached value 79 $info = $pagelog->getRevisionInfo($rev, $media = false); 80 $this->assertEquals($infoexpected, $info); 81 } 82 83 /** 84 * request current version, with chuncked reading 85 */ 86 function test_requestrecentestlogline_chuncked() { 87 $rev = 1374261194; 88 $infoexpected = parseChangelogLine($this->firstlogline); 89 90 $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); 91 $info = $pagelog->getRevisionInfo($rev, $media = false); 92 $this->assertEquals($infoexpected, $info); 93 } 94 95 /** 96 * request negative revision 97 */ 98 function test_negativerev() { 99 $rev = -10; 100 101 $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 102 $info = $pagelog->getRevisionInfo($rev, $media = false); 103 $this->assertEquals(false, $info); 104 } 105 106 /** 107 * request non existing revision somewhere between existing revisions 108 */ 109 function test_notexistingrev() { 110 $rev = 1362525890; 111 112 $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); 113 $info = $pagelog->getRevisionInfo($rev, $media = false); 114 $this->assertEquals(false, $info); 115 } 116 117 /** 118 * sometimes chuncksize is set to true 119 */ 120 function test_chuncksizetrue() { 121 $rev = 1362525899; 122 $infoexpected = parseChangelogLine($this->logline); 123 124 $pagelog = new PageRevisionLog($this->pageid, true); 125 $info = $pagelog->getRevisionInfo($rev); 126 $this->assertEquals($infoexpected, $info); 127 } 128}