xref: /dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php (revision 55545bcc9b8532818cc1fc8b920deb07cc3f2c61)
1*55545bccSGerrit Uitslag<?php
2*55545bccSGerrit Uitslag
3*55545bccSGerrit Uitslag/**
4*55545bccSGerrit Uitslag * Tests for requesting revisioninfo of a revision of a page with getRevisionInfo()
5*55545bccSGerrit Uitslag *
6*55545bccSGerrit Uitslag * This class uses the files:
7*55545bccSGerrit Uitslag * - data/pages/mailinglist.txt
8*55545bccSGerrit Uitslag * - data/meta/mailinglist.changes
9*55545bccSGerrit Uitslag */
10*55545bccSGerrit Uitslagclass changelog_getrelativerevision_test extends DokuWikiTest {
11*55545bccSGerrit Uitslag
12*55545bccSGerrit Uitslag    private $logline = "1362525899	127.0.0.1	E	mailinglist	pubcie	[Data entry] 	\n";
13*55545bccSGerrit Uitslag    private $pageid = 'mailinglist';
14*55545bccSGerrit Uitslag
15*55545bccSGerrit Uitslag    function setup() {
16*55545bccSGerrit Uitslag        parent::setup();
17*55545bccSGerrit Uitslag        global $cache_revinfo;
18*55545bccSGerrit Uitslag        $cache =& $cache_revinfo;
19*55545bccSGerrit Uitslag        if(isset($cache['nonexist'])) {
20*55545bccSGerrit Uitslag            unset($cache['nonexist']);
21*55545bccSGerrit Uitslag        }
22*55545bccSGerrit Uitslag        if(isset($cache['mailinglist'])) {
23*55545bccSGerrit Uitslag            unset($cache['mailinglist']);
24*55545bccSGerrit Uitslag        }
25*55545bccSGerrit Uitslag    }
26*55545bccSGerrit Uitslag
27*55545bccSGerrit Uitslag    /**
28*55545bccSGerrit Uitslag     * no nonexist.changes meta file available
29*55545bccSGerrit Uitslag     */
30*55545bccSGerrit Uitslag    function test_changemetadatanotexists() {
31*55545bccSGerrit Uitslag        $rev          = 1362525899;
32*55545bccSGerrit Uitslag        $dir          = 1;
33*55545bccSGerrit Uitslag        $id           = 'nonexist';
34*55545bccSGerrit Uitslag        $revsexpected = false;
35*55545bccSGerrit Uitslag
36*55545bccSGerrit Uitslag        $pagelog = new PageRevisionLog($id, $chunk_size = 8192);
37*55545bccSGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, $dir, $media = false);
38*55545bccSGerrit Uitslag        $this->assertEquals($revsexpected, $revs);
39*55545bccSGerrit Uitslag    }
40*55545bccSGerrit Uitslag
41*55545bccSGerrit Uitslag    /**
42*55545bccSGerrit Uitslag     * no nonexist.changes meta file available
43*55545bccSGerrit Uitslag     */
44*55545bccSGerrit Uitslag    function test_nodirection() {
45*55545bccSGerrit Uitslag        $rev          = 1362525899;
46*55545bccSGerrit Uitslag        $dir          = 0;
47*55545bccSGerrit Uitslag        $revsexpected = false;
48*55545bccSGerrit Uitslag
49*55545bccSGerrit Uitslag        $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
50*55545bccSGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, $dir, $media = false);
51*55545bccSGerrit Uitslag        $this->assertEquals($revsexpected, $revs);
52*55545bccSGerrit Uitslag    }
53*55545bccSGerrit Uitslag
54*55545bccSGerrit Uitslag    /**
55*55545bccSGerrit Uitslag     * start at exact current revision of mailinglist page
56*55545bccSGerrit Uitslag     *
57*55545bccSGerrit Uitslag     */
58*55545bccSGerrit Uitslag    function test_startatexactcurrentrev() {
59*55545bccSGerrit Uitslag        $rev          = 1374261194;
60*55545bccSGerrit Uitslag        $dir          = 1;
61*55545bccSGerrit Uitslag        $revsexpected = false;
62*55545bccSGerrit Uitslag
63*55545bccSGerrit Uitslag//        global $INFO;
64*55545bccSGerrit Uitslag//        $INFO = pageinfo();
65*55545bccSGerrit Uitslag//        var_dump($INFO);
66*55545bccSGerrit Uitslag//        var_dump($INFO['meta']);
67*55545bccSGerrit Uitslag//        var_dump($INFO['meta']['last_change']);
68*55545bccSGerrit Uitslag//        var_dump($INFO['meta']['last_change']['date']);
69*55545bccSGerrit Uitslag
70*55545bccSGerrit Uitslag        $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
71*55545bccSGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, $dir, $media = false);
72*55545bccSGerrit Uitslag        $this->assertEquals($revsexpected, $revs);
73*55545bccSGerrit Uitslag    }
74*55545bccSGerrit Uitslag
75*55545bccSGerrit Uitslag    /**
76*55545bccSGerrit Uitslag     * request existing rev
77*55545bccSGerrit Uitslag     */
78*55545bccSGerrit Uitslag    function test_requestrev() {
79*55545bccSGerrit Uitslag        $rev          = 1362525359;
80*55545bccSGerrit Uitslag        $dir          = 1;
81*55545bccSGerrit Uitslag        $revexpected  = 1362525899;
82*55545bccSGerrit Uitslag        $infoexpected = parseChangelogLine($this->logline);
83*55545bccSGerrit Uitslag
84*55545bccSGerrit Uitslag        $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
85*55545bccSGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
86*55545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
87*55545bccSGerrit Uitslag        //checked info returned from cache
88*55545bccSGerrit Uitslag        $info = $pagelog->getRevisionInfo($revfound, $media = false);
89*55545bccSGerrit Uitslag        $this->assertEquals($infoexpected, $info);
90*55545bccSGerrit Uitslag    }
91*55545bccSGerrit Uitslag
92*55545bccSGerrit Uitslag    /**
93*55545bccSGerrit Uitslag     * request existing rev with chucked reading
94*55545bccSGerrit Uitslag     */
95*55545bccSGerrit Uitslag    function test_requestnextrev_chuncked() {
96*55545bccSGerrit Uitslag        $rev         = 1362525899;
97*55545bccSGerrit Uitslag        $dir         = 1;
98*55545bccSGerrit Uitslag        $revexpected = 1362525926;
99*55545bccSGerrit Uitslag
100*55545bccSGerrit Uitslag        $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512);
101*55545bccSGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
102*55545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
103*55545bccSGerrit Uitslag    }
104*55545bccSGerrit Uitslag
105*55545bccSGerrit Uitslag    /**
106*55545bccSGerrit Uitslag     * request existing rev
107*55545bccSGerrit Uitslag     */
108*55545bccSGerrit Uitslag    function test_requestnextfifthrev() {
109*55545bccSGerrit Uitslag        $rev          = 1362525899;
110*55545bccSGerrit Uitslag        $dir          = 5;
111*55545bccSGerrit Uitslag        $revexpected  = 1362526767;
112*55545bccSGerrit Uitslag
113*55545bccSGerrit Uitslag        $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
114*55545bccSGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
115*55545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
116*55545bccSGerrit Uitslag    }
117*55545bccSGerrit Uitslag
118*55545bccSGerrit Uitslag    /**
119*55545bccSGerrit Uitslag     * request existing rev with chucked reading
120*55545bccSGerrit Uitslag     */
121*55545bccSGerrit Uitslag    function test_requestnextfifthrev_chuncked() {
122*55545bccSGerrit Uitslag        $rev         = 1362525899;
123*55545bccSGerrit Uitslag        $dir         = 5;
124*55545bccSGerrit Uitslag        $revexpected = 1362526767;
125*55545bccSGerrit Uitslag
126*55545bccSGerrit Uitslag        $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512);
127*55545bccSGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
128*55545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
129*55545bccSGerrit Uitslag    }
130*55545bccSGerrit Uitslag
131*55545bccSGerrit Uitslag    /**
132*55545bccSGerrit Uitslag     * request existing rev
133*55545bccSGerrit Uitslag     */
134*55545bccSGerrit Uitslag    function test_requestprevrev() {
135*55545bccSGerrit Uitslag        $rev          = 1362525899;
136*55545bccSGerrit Uitslag        $dir1          = -1;
137*55545bccSGerrit Uitslag        $dir5          = -5;
138*55545bccSGerrit Uitslag        $revexpected1  = 1362525359;
139*55545bccSGerrit Uitslag        $revexpected5  = 1360110636;
140*55545bccSGerrit Uitslag
141*55545bccSGerrit Uitslag        $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
142*55545bccSGerrit Uitslag        $revfound1 = $pagelog->getRelativeRevision($rev, $dir1, $media = false);
143*55545bccSGerrit Uitslag        $this->assertEquals($revexpected1, $revfound1);
144*55545bccSGerrit Uitslag
145*55545bccSGerrit Uitslag        $revfound5 = $pagelog->getRelativeRevision($rev, $dir5, $media = false);
146*55545bccSGerrit Uitslag        $this->assertEquals($revexpected5, $revfound5);
147*55545bccSGerrit Uitslag    }
148*55545bccSGerrit Uitslag
149*55545bccSGerrit Uitslag    /**
150*55545bccSGerrit Uitslag     * request existing rev with chucked reading
151*55545bccSGerrit Uitslag     */
152*55545bccSGerrit Uitslag    function test_requestprevrev_chuncked() {
153*55545bccSGerrit Uitslag        $rev          = 1362525899;
154*55545bccSGerrit Uitslag        $dir1          = -1;
155*55545bccSGerrit Uitslag        $dir5          = -5;
156*55545bccSGerrit Uitslag        $revexpected1  = 1362525359;
157*55545bccSGerrit Uitslag        $revexpected5  = 1360110636;
158*55545bccSGerrit Uitslag
159*55545bccSGerrit Uitslag        $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512);
160*55545bccSGerrit Uitslag        $revfound1 = $pagelog->getRelativeRevision($rev, $dir1, $media = false);
161*55545bccSGerrit Uitslag        $this->assertEquals($revexpected1, $revfound1);
162*55545bccSGerrit Uitslag
163*55545bccSGerrit Uitslag        $revfound5 = $pagelog->getRelativeRevision($rev, $dir5, $media = false);
164*55545bccSGerrit Uitslag        $this->assertEquals($revexpected5, $revfound5);
165*55545bccSGerrit Uitslag    }
166*55545bccSGerrit Uitslag
167*55545bccSGerrit Uitslag    /**
168*55545bccSGerrit Uitslag     * request after recentest version in changelog
169*55545bccSGerrit Uitslag     */
170*55545bccSGerrit Uitslag    function test_requestrecentestlogline_next() {
171*55545bccSGerrit Uitslag        $rev          = 1374261194;
172*55545bccSGerrit Uitslag        $dir          = 1;
173*55545bccSGerrit Uitslag        $revexpected  = false;
174*55545bccSGerrit Uitslag
175*55545bccSGerrit Uitslag        $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
176*55545bccSGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
177*55545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
178*55545bccSGerrit Uitslag    }
179*55545bccSGerrit Uitslag
180*55545bccSGerrit Uitslag    /**
181*55545bccSGerrit Uitslag     * request after recentest version in changelog, with chuncked reading
182*55545bccSGerrit Uitslag     */
183*55545bccSGerrit Uitslag    function test_requestrecentestlogline_next_chuncked() {
184*55545bccSGerrit Uitslag        $rev          = 1374261194;
185*55545bccSGerrit Uitslag        $dir          = 1;
186*55545bccSGerrit Uitslag        $revexpected  = false;
187*55545bccSGerrit Uitslag
188*55545bccSGerrit Uitslag        $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512);
189*55545bccSGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
190*55545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
191*55545bccSGerrit Uitslag    }
192*55545bccSGerrit Uitslag
193*55545bccSGerrit Uitslag
194*55545bccSGerrit Uitslag    /**
195*55545bccSGerrit Uitslag     * request before current version
196*55545bccSGerrit Uitslag     */
197*55545bccSGerrit Uitslag    function test_requestrecentestlogline_prev() {
198*55545bccSGerrit Uitslag        $rev          = 1374261194;
199*55545bccSGerrit Uitslag        $dir          = -1;
200*55545bccSGerrit Uitslag        $revexpected  = 1371579614;
201*55545bccSGerrit Uitslag
202*55545bccSGerrit Uitslag        $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
203*55545bccSGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
204*55545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
205*55545bccSGerrit Uitslag    }
206*55545bccSGerrit Uitslag
207*55545bccSGerrit Uitslag    /**
208*55545bccSGerrit Uitslag     * request before current version, with chuncked reading
209*55545bccSGerrit Uitslag     */
210*55545bccSGerrit Uitslag    function test_requestrecentestlogline_prev_chuncked() {
211*55545bccSGerrit Uitslag        $rev          = 1374261194;
212*55545bccSGerrit Uitslag        $dir          = -1;
213*55545bccSGerrit Uitslag        $revexpected  = 1371579614;
214*55545bccSGerrit Uitslag
215*55545bccSGerrit Uitslag        $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512);
216*55545bccSGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
217*55545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
218*55545bccSGerrit Uitslag    }
219*55545bccSGerrit Uitslag
220*55545bccSGerrit Uitslag    /**
221*55545bccSGerrit Uitslag     * Request negative revision
222*55545bccSGerrit Uitslag     * looks in positive direction, so it catches the oldest revision
223*55545bccSGerrit Uitslag     */
224*55545bccSGerrit Uitslag    function test_negativerev_posdir() {
225*55545bccSGerrit Uitslag        $rev = -10;
226*55545bccSGerrit Uitslag        $dir = 1;
227*55545bccSGerrit Uitslag        $revexpected = 1360110636;
228*55545bccSGerrit Uitslag
229*55545bccSGerrit Uitslag        $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
230*55545bccSGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
231*55545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
232*55545bccSGerrit Uitslag    }
233*55545bccSGerrit Uitslag
234*55545bccSGerrit Uitslag    /**
235*55545bccSGerrit Uitslag     * Request negative revision
236*55545bccSGerrit Uitslag     * looks in negative direction, but there is nothing
237*55545bccSGerrit Uitslag     */
238*55545bccSGerrit Uitslag    function test_negativerev_negdir() {
239*55545bccSGerrit Uitslag        $rev = -10;
240*55545bccSGerrit Uitslag        $dir = -1;
241*55545bccSGerrit Uitslag        $revexpected = false;
242*55545bccSGerrit Uitslag
243*55545bccSGerrit Uitslag        $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
244*55545bccSGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
245*55545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
246*55545bccSGerrit Uitslag    }
247*55545bccSGerrit Uitslag
248*55545bccSGerrit Uitslag    /**
249*55545bccSGerrit Uitslag     * Start at non existing revision somewhere between existing revisions
250*55545bccSGerrit Uitslag     */
251*55545bccSGerrit Uitslag    function test_startatnotexistingrev_next() {
252*55545bccSGerrit Uitslag        $rev = 1362525890;
253*55545bccSGerrit Uitslag        $dir = 1;
254*55545bccSGerrit Uitslag        $revexpected = 1362525899;
255*55545bccSGerrit Uitslag
256*55545bccSGerrit Uitslag        $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
257*55545bccSGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
258*55545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
259*55545bccSGerrit Uitslag    }
260*55545bccSGerrit Uitslag
261*55545bccSGerrit Uitslag    /**
262*55545bccSGerrit Uitslag     * Start at non existing revision somewhere between existing revisions
263*55545bccSGerrit Uitslag     */
264*55545bccSGerrit Uitslag    function test_startatnotexistingrev_prev() {
265*55545bccSGerrit Uitslag        $rev = 1362525890;
266*55545bccSGerrit Uitslag        $dir = -1;
267*55545bccSGerrit Uitslag        $revexpected = 1362525359;
268*55545bccSGerrit Uitslag
269*55545bccSGerrit Uitslag        $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
270*55545bccSGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
271*55545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
272*55545bccSGerrit Uitslag    }
273*55545bccSGerrit Uitslag}