bugfix: trustedproxy is not a delimited pcre
[dokuwiki.git] / _test / tests / inc / changelog_getrevisioninfo.test.php
blobaea5a26ecab5db959d3c0a3d017df42fcd6d6e59
1 <?php
3 use dokuwiki\ChangeLog\ChangeLog;
4 use dokuwiki\ChangeLog\PageChangeLog;
6 /**
7 * Tests for requesting revisioninfo of a revision of a page with getRevisionInfo()
9 * This class uses the files:
10 * - data/pages/mailinglist.txt
11 * - data/meta/mailinglist.changes
13 class changelog_getrevisionsinfo_test extends DokuWikiTest {
15 private $logline = "1362525899 127.0.0.1 E mailinglist pubcie [Data entry] \n";
16 private $firstlogline = "1374261194 127.0.0.1 E mailinglist pubcie \n";
17 private $pageid = 'mailinglist';
19 function setup() : void {
20 parent::setup();
21 global $cache_revinfo;
22 $cache =& $cache_revinfo;
23 unset($cache['nonexist']);
24 unset($cache['mailinglist']);
27 /**
28 * no nonexist.changes meta file available
30 function test_changemetadatanotexists() {
31 $rev = 1362525899;
32 $id = 'nonexist';
33 $revsexpected = false;
35 $pagelog = new PageChangeLog($id, $chunk_size = 8192);
36 $revs = $pagelog->getRevisionInfo($rev);
37 $this->assertEquals($revsexpected, $revs);
40 /**
41 * request existing rev
43 function test_requestrev() {
44 $rev = 1362525899;
45 $infoexpected = ChangeLog::parseLogLine($this->logline);
46 $infoexpected['mode'] = 'page';
48 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
49 $info = $pagelog->getRevisionInfo($rev);
50 $this->assertEquals($infoexpected, $info);
51 //returns cached value
52 $info = $pagelog->getRevisionInfo($rev);
53 $this->assertEquals($infoexpected, $info);
56 /**
57 * request existing rev with chucked reading
59 function test_requestrev_chuncked() {
60 $rev = 1362525899;
61 $infoexpected = ChangeLog::parseLogLine($this->logline);
62 $infoexpected['mode'] = 'page';
64 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512);
65 $info = $pagelog->getRevisionInfo($rev);
66 $this->assertEquals($infoexpected, $info);
69 /**
70 * request existing rev with chucked reading
72 function test_requestrev_chunckedsmallerthanlinelength() {
73 $rev = 1362525899;
74 $infoexpected = ChangeLog::parseLogLine($this->logline);
75 $infoexpected['mode'] = 'page';
77 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20);
78 $info = $pagelog->getRevisionInfo($rev);
79 $this->assertEquals($infoexpected, $info);
82 /**
83 * request current version
85 function test_requestrecentestlogline() {
86 $rev = 1374261194;
87 $infoexpected = ChangeLog::parseLogLine($this->firstlogline);
88 $infoexpected['mode'] = 'page';
90 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
91 $info = $pagelog->getRevisionInfo($rev);
92 $this->assertEquals($infoexpected, $info);
93 //returns cached value
94 $info = $pagelog->getRevisionInfo($rev);
95 $this->assertEquals($infoexpected, $info);
98 /**
99 * request current version, with chuncked reading
101 function test_requestrecentestlogline_chuncked() {
102 $rev = 1374261194;
103 $infoexpected = ChangeLog::parseLogLine($this->firstlogline);
104 $infoexpected['mode'] = 'page';
106 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512);
107 $info = $pagelog->getRevisionInfo($rev);
108 $this->assertEquals($infoexpected, $info);
112 * request negative revision
114 function test_negativerev() {
115 $rev = -10;
117 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
118 $info = $pagelog->getRevisionInfo($rev);
119 $this->assertFalse($info);
123 * request non existing revision somewhere between existing revisions
125 function test_notexistingrev() {
126 $rev = 1362525890;
128 $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
129 $info = $pagelog->getRevisionInfo($rev);
130 $this->assertFalse($info);
134 * sometimes chuncksize is set to true
136 function test_chuncksizetrue() {
137 $rev = 1362525899;
138 $infoexpected = ChangeLog::parseLogLine($this->logline);
139 $infoexpected['mode'] = 'page';
141 $pagelog = new PageChangeLog($this->pageid, true);
142 $info = $pagelog->getRevisionInfo($rev);
143 $this->assertEquals($infoexpected, $info);