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['nonexist']); 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 $revs = getRevisionInfo($id, $rev, $chunk_size = 8192, $media = false); 37 $this->assertEquals($revsexpected, $revs); 38 } 39 40 /** 41 * request existing rev 42 */ 43 function test_requestrev() { 44 $rev = 1362525899; 45 $infoexpected = parseChangelogLine($this->logline); 46 47 $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); 48 $this->assertEquals($infoexpected, $info); 49 //returns cached value 50 $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); 51 $this->assertEquals($infoexpected, $info); 52 } 53 54 /** 55 * request existing rev with chucked reading 56 */ 57 function test_requestrev_chuncked() { 58 $rev = 1362525899; 59 $infoexpected = parseChangelogLine($this->logline); 60 61 $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 512, $media = false); 62 $this->assertEquals($infoexpected, $info); 63 } 64 65 /** 66 * request current version 67 */ 68 function test_requestrecentestlogline() { 69 $rev = 1374261194; 70 $infoexpected = parseChangelogLine($this->firstlogline); 71 72 $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); 73 $this->assertEquals($infoexpected, $info); 74 //returns cached value 75 $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); 76 $this->assertEquals($infoexpected, $info); 77 } 78 79 /** 80 * request current version, with chuncked reading 81 */ 82 function test_requestrecentestlogline_chuncked() { 83 $rev = 1374261194; 84 $infoexpected = parseChangelogLine($this->firstlogline); 85 86 $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 512, $media = false); 87 $this->assertEquals($infoexpected, $info); 88 } 89 90 /** 91 * request negative revision 92 */ 93 function test_negativerev() { 94 $rev = -10; 95 96 $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); 97 $this->assertEquals(false, $info); 98 } 99 100 /** 101 * request non existing revision somewhere between existing revisions 102 */ 103 function test_notexistingrev() { 104 $rev = 1362525890; 105 106 $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); 107 $this->assertEquals(false, $info); 108 } 109 110 /** 111 * sometimes chuncksize is set to true 112 */ 113 function test_chuncksizetrue() { 114 $rev = 1362525899; 115 $infoexpected = parseChangelogLine($this->logline); 116 117 $info = getRevisionInfo($this->pageid, $rev, true); 118 $this->assertEquals($infoexpected, $info); 119 } 120}