xref: /dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php (revision 59cce2d943ee9a18fafc9a0594ede031f7bf7190)
155545bccSGerrit Uitslag<?php
255545bccSGerrit Uitslag
355545bccSGerrit Uitslag/**
455545bccSGerrit Uitslag * Tests for requesting revisioninfo of a revision of a page with getRevisionInfo()
555545bccSGerrit Uitslag *
655545bccSGerrit Uitslag * This class uses the files:
755545bccSGerrit Uitslag * - data/pages/mailinglist.txt
855545bccSGerrit Uitslag * - data/meta/mailinglist.changes
955545bccSGerrit Uitslag */
1055545bccSGerrit Uitslagclass changelog_getrelativerevision_test extends DokuWikiTest {
1155545bccSGerrit Uitslag
1255545bccSGerrit Uitslag    private $logline = "1362525899	127.0.0.1	E	mailinglist	pubcie	[Data entry] 	\n";
1355545bccSGerrit Uitslag    private $pageid = 'mailinglist';
1455545bccSGerrit Uitslag
1555545bccSGerrit Uitslag    function setup() {
1655545bccSGerrit Uitslag        parent::setup();
1755545bccSGerrit Uitslag        global $cache_revinfo;
1855545bccSGerrit Uitslag        $cache =& $cache_revinfo;
1955545bccSGerrit Uitslag        if(isset($cache['nonexist'])) {
2055545bccSGerrit Uitslag            unset($cache['nonexist']);
2155545bccSGerrit Uitslag        }
2255545bccSGerrit Uitslag        if(isset($cache['mailinglist'])) {
2355545bccSGerrit Uitslag            unset($cache['mailinglist']);
2455545bccSGerrit Uitslag        }
2555545bccSGerrit Uitslag    }
2655545bccSGerrit Uitslag
2755545bccSGerrit Uitslag    /**
2855545bccSGerrit Uitslag     * no nonexist.changes meta file available
2955545bccSGerrit Uitslag     */
3055545bccSGerrit Uitslag    function test_changemetadatanotexists() {
3155545bccSGerrit Uitslag        $rev = 1362525899;
3255545bccSGerrit Uitslag        $dir = 1;
3355545bccSGerrit Uitslag        $id = 'nonexist';
3455545bccSGerrit Uitslag        $revsexpected = false;
3555545bccSGerrit Uitslag
36047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($id, $chunk_size = 8192);
37047bad06SGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, $dir);
3855545bccSGerrit Uitslag        $this->assertEquals($revsexpected, $revs);
3955545bccSGerrit Uitslag    }
4055545bccSGerrit Uitslag
4155545bccSGerrit Uitslag    /**
4255545bccSGerrit Uitslag     * no nonexist.changes meta file available
4355545bccSGerrit Uitslag     */
4455545bccSGerrit Uitslag    function test_nodirection() {
4555545bccSGerrit Uitslag        $rev = 1362525899;
4655545bccSGerrit Uitslag        $dir = 0;
4755545bccSGerrit Uitslag        $revsexpected = false;
4855545bccSGerrit Uitslag
49047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
50047bad06SGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, $dir);
5155545bccSGerrit Uitslag        $this->assertEquals($revsexpected, $revs);
5255545bccSGerrit Uitslag    }
5355545bccSGerrit Uitslag
5455545bccSGerrit Uitslag    /**
5555545bccSGerrit Uitslag     * start at exact current revision of mailinglist page
5655545bccSGerrit Uitslag     *
5755545bccSGerrit Uitslag     */
5855545bccSGerrit Uitslag    function test_startatexactcurrentrev() {
59332817fcSGerrit Uitslag        $rev = 1385051947;
6055545bccSGerrit Uitslag        $dir = 1;
61332817fcSGerrit Uitslag        $revsexpectedpos = false;
62332817fcSGerrit Uitslag        $revsexpectedneg = 1374261194;
6355545bccSGerrit Uitslag
64332817fcSGerrit Uitslag        //set a known timestamp
65332817fcSGerrit Uitslag        touch(wikiFN($this->pageid), $rev);
6655545bccSGerrit Uitslag
67047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
68047bad06SGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, $dir);
69332817fcSGerrit Uitslag        $this->assertEquals($revsexpectedpos, $revs);
70332817fcSGerrit Uitslag
71332817fcSGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, -$dir);
72332817fcSGerrit Uitslag        $this->assertEquals($revsexpectedneg, $revs);
73332817fcSGerrit Uitslag    }
74332817fcSGerrit Uitslag
75332817fcSGerrit Uitslag    /**
76332817fcSGerrit Uitslag     * start at exact last revision of mailinglist page
77332817fcSGerrit Uitslag     *
78332817fcSGerrit Uitslag     */
79332817fcSGerrit Uitslag    function test_startatexactlastrev() {
80332817fcSGerrit Uitslag        $rev = 1360110636;
81332817fcSGerrit Uitslag        $dir = 1;
82332817fcSGerrit Uitslag        $revsexpectedpos = 1361901536;
83332817fcSGerrit Uitslag        $revsexpectedneg = false;
84332817fcSGerrit Uitslag
85332817fcSGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
86332817fcSGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, $dir);
87332817fcSGerrit Uitslag        $this->assertEquals($revsexpectedpos, $revs);
88332817fcSGerrit Uitslag
89332817fcSGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, -$dir);
90332817fcSGerrit Uitslag        $this->assertEquals($revsexpectedneg, $revs);
91332817fcSGerrit Uitslag    }
92332817fcSGerrit Uitslag
93332817fcSGerrit Uitslag    /**
94332817fcSGerrit Uitslag     * start at exact one before last revision of mailinglist page
95332817fcSGerrit Uitslag     *
96332817fcSGerrit Uitslag     */
97332817fcSGerrit Uitslag    function test_requestlastrevisions() {
98332817fcSGerrit Uitslag        $rev = 1361901536;
99332817fcSGerrit Uitslag        $dir = -1;
100332817fcSGerrit Uitslag        $revsexpectedlast = 1360110636;
101332817fcSGerrit Uitslag        $revsexpectedbeforelast = false;
102332817fcSGerrit Uitslag
103332817fcSGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
104332817fcSGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, $dir);
105332817fcSGerrit Uitslag        $this->assertEquals($revsexpectedlast, $revs);
106332817fcSGerrit Uitslag
107332817fcSGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, 2 * $dir);
108332817fcSGerrit Uitslag        $this->assertEquals($revsexpectedbeforelast, $revs);
10955545bccSGerrit Uitslag    }
11055545bccSGerrit Uitslag
11155545bccSGerrit Uitslag    /**
112*59cce2d9SGerrit Uitslag     * request existing rev and check cache
11355545bccSGerrit Uitslag     */
114*59cce2d9SGerrit Uitslag    function test_requestrev_checkcache() {
11555545bccSGerrit Uitslag        $rev = 1362525359;
11655545bccSGerrit Uitslag        $dir = 1;
11755545bccSGerrit Uitslag        $revexpected = 1362525899;
11855545bccSGerrit Uitslag        $infoexpected = parseChangelogLine($this->logline);
11955545bccSGerrit Uitslag
120047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
121047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
12255545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
123*59cce2d9SGerrit Uitslag
12455545bccSGerrit Uitslag        //checked info returned from cache
125047bad06SGerrit Uitslag        $info = $pagelog->getRevisionInfo($revfound);
12655545bccSGerrit Uitslag        $this->assertEquals($infoexpected, $info);
12755545bccSGerrit Uitslag    }
12855545bccSGerrit Uitslag
12955545bccSGerrit Uitslag    /**
130*59cce2d9SGerrit Uitslag     * request existing rev
131*59cce2d9SGerrit Uitslag     */
132*59cce2d9SGerrit Uitslag    function test_requestnextrev() {
133*59cce2d9SGerrit Uitslag        $rev = 1362525899;
134*59cce2d9SGerrit Uitslag
135*59cce2d9SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
136*59cce2d9SGerrit Uitslag
137*59cce2d9SGerrit Uitslag        $dir = 1;
138*59cce2d9SGerrit Uitslag        $revexpected = 1362525926;
139*59cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
140*59cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
141*59cce2d9SGerrit Uitslag
142*59cce2d9SGerrit Uitslag        $dir = 2;
143*59cce2d9SGerrit Uitslag        $revexpected = 1362526039;
144*59cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
145*59cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
146*59cce2d9SGerrit Uitslag
147*59cce2d9SGerrit Uitslag        $dir = -1;
148*59cce2d9SGerrit Uitslag        $revexpected = 1362525359;
149*59cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
150*59cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
151*59cce2d9SGerrit Uitslag
152*59cce2d9SGerrit Uitslag        $dir = -2;
153*59cce2d9SGerrit Uitslag        $revexpected = 1362525145;
154*59cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
155*59cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
156*59cce2d9SGerrit Uitslag    }
157*59cce2d9SGerrit Uitslag
158*59cce2d9SGerrit Uitslag    /**
15955545bccSGerrit Uitslag     * request existing rev with chucked reading
16055545bccSGerrit Uitslag     */
16155545bccSGerrit Uitslag    function test_requestnextrev_chuncked() {
16255545bccSGerrit Uitslag        $rev = 1362525899;
16355545bccSGerrit Uitslag
164047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512);
165*59cce2d9SGerrit Uitslag
166*59cce2d9SGerrit Uitslag        $dir = 1;
167*59cce2d9SGerrit Uitslag        $revexpected = 1362525926;
168*59cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
169*59cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
170*59cce2d9SGerrit Uitslag
171*59cce2d9SGerrit Uitslag        $dir = 2;
172*59cce2d9SGerrit Uitslag        $revexpected = 1362526039;
173*59cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
174*59cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
175*59cce2d9SGerrit Uitslag
176*59cce2d9SGerrit Uitslag        $dir = -1;
177*59cce2d9SGerrit Uitslag        $revexpected = 1362525359;
178*59cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
179*59cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
180*59cce2d9SGerrit Uitslag
181*59cce2d9SGerrit Uitslag        $dir = -2;
182*59cce2d9SGerrit Uitslag        $revexpected = 1362525145;
183*59cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
184*59cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
185*59cce2d9SGerrit Uitslag    }
186*59cce2d9SGerrit Uitslag
187*59cce2d9SGerrit Uitslag
188*59cce2d9SGerrit Uitslag    /**
189*59cce2d9SGerrit Uitslag     * request existing rev with chucked reading, chunk size smaller than line length
190*59cce2d9SGerrit Uitslag     */
191*59cce2d9SGerrit Uitslag    function test_requestnextrev_chunkshorterthanlines() {
192*59cce2d9SGerrit Uitslag        $rev = 1362525899;
193*59cce2d9SGerrit Uitslag
194*59cce2d9SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20);
195*59cce2d9SGerrit Uitslag
196*59cce2d9SGerrit Uitslag        $dir = 1;
197*59cce2d9SGerrit Uitslag        $revexpected = 1362525926;
198*59cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
199*59cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
200*59cce2d9SGerrit Uitslag
201*59cce2d9SGerrit Uitslag        $dir = 2;
202*59cce2d9SGerrit Uitslag        $revexpected = 1362526039;
203*59cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
204*59cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
205*59cce2d9SGerrit Uitslag
206*59cce2d9SGerrit Uitslag        $dir = -1;
207*59cce2d9SGerrit Uitslag        $revexpected = 1362525359;
208*59cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
209*59cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
210*59cce2d9SGerrit Uitslag
211*59cce2d9SGerrit Uitslag        $dir = -2;
212*59cce2d9SGerrit Uitslag        $revexpected = 1362525145;
213047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
21455545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
21555545bccSGerrit Uitslag    }
21655545bccSGerrit Uitslag
21755545bccSGerrit Uitslag    /**
21855545bccSGerrit Uitslag     * request existing rev
21955545bccSGerrit Uitslag     */
22055545bccSGerrit Uitslag    function test_requestnextfifthrev() {
22155545bccSGerrit Uitslag        $rev = 1362525899;
22255545bccSGerrit Uitslag        $dir = 5;
22355545bccSGerrit Uitslag        $revexpected = 1362526767;
22455545bccSGerrit Uitslag
225047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
226047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
22755545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
22855545bccSGerrit Uitslag    }
22955545bccSGerrit Uitslag
23055545bccSGerrit Uitslag    /**
23155545bccSGerrit Uitslag     * request existing rev with chucked reading
23255545bccSGerrit Uitslag     */
23355545bccSGerrit Uitslag    function test_requestnextfifthrev_chuncked() {
23455545bccSGerrit Uitslag        $rev = 1362525899;
23555545bccSGerrit Uitslag        $dir = 5;
23655545bccSGerrit Uitslag        $revexpected = 1362526767;
23755545bccSGerrit Uitslag
238047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512);
239047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
24055545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
24155545bccSGerrit Uitslag    }
24255545bccSGerrit Uitslag
24355545bccSGerrit Uitslag    /**
24455545bccSGerrit Uitslag     * request existing rev
24555545bccSGerrit Uitslag     */
24655545bccSGerrit Uitslag    function test_requestprevrev() {
24755545bccSGerrit Uitslag        $rev = 1362525899;
24855545bccSGerrit Uitslag        $dir1 = -1;
24955545bccSGerrit Uitslag        $dir5 = -5;
25055545bccSGerrit Uitslag        $revexpected1 = 1362525359;
25155545bccSGerrit Uitslag        $revexpected5 = 1360110636;
25255545bccSGerrit Uitslag
253047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
254047bad06SGerrit Uitslag        $revfound1 = $pagelog->getRelativeRevision($rev, $dir1);
25555545bccSGerrit Uitslag        $this->assertEquals($revexpected1, $revfound1);
25655545bccSGerrit Uitslag
257047bad06SGerrit Uitslag        $revfound5 = $pagelog->getRelativeRevision($rev, $dir5);
25855545bccSGerrit Uitslag        $this->assertEquals($revexpected5, $revfound5);
25955545bccSGerrit Uitslag    }
26055545bccSGerrit Uitslag
26155545bccSGerrit Uitslag    /**
26255545bccSGerrit Uitslag     * request existing rev with chucked reading
26355545bccSGerrit Uitslag     */
26455545bccSGerrit Uitslag    function test_requestprevrev_chuncked() {
26555545bccSGerrit Uitslag        $rev = 1362525899;
26655545bccSGerrit Uitslag        $dir1 = -1;
26755545bccSGerrit Uitslag        $dir5 = -5;
26855545bccSGerrit Uitslag        $revexpected1 = 1362525359;
26955545bccSGerrit Uitslag        $revexpected5 = 1360110636;
27055545bccSGerrit Uitslag
271047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512);
272047bad06SGerrit Uitslag        $revfound1 = $pagelog->getRelativeRevision($rev, $dir1);
27355545bccSGerrit Uitslag        $this->assertEquals($revexpected1, $revfound1);
27455545bccSGerrit Uitslag
275047bad06SGerrit Uitslag        $revfound5 = $pagelog->getRelativeRevision($rev, $dir5);
27655545bccSGerrit Uitslag        $this->assertEquals($revexpected5, $revfound5);
27755545bccSGerrit Uitslag    }
27855545bccSGerrit Uitslag
27955545bccSGerrit Uitslag    /**
28055545bccSGerrit Uitslag     * request after recentest version in changelog
28155545bccSGerrit Uitslag     */
28255545bccSGerrit Uitslag    function test_requestrecentestlogline_next() {
28355545bccSGerrit Uitslag        $rev = 1374261194;
28455545bccSGerrit Uitslag        $dir = 1;
28555545bccSGerrit Uitslag        $revexpected = false;
28655545bccSGerrit Uitslag
287047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
288047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
28955545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
29055545bccSGerrit Uitslag    }
29155545bccSGerrit Uitslag
29255545bccSGerrit Uitslag    /**
29355545bccSGerrit Uitslag     * request after recentest version in changelog, with chuncked reading
29455545bccSGerrit Uitslag     */
29555545bccSGerrit Uitslag    function test_requestrecentestlogline_next_chuncked() {
29655545bccSGerrit Uitslag        $rev = 1374261194;
29755545bccSGerrit Uitslag        $dir = 1;
29855545bccSGerrit Uitslag        $revexpected = false;
29955545bccSGerrit Uitslag
300047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512);
301047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
30255545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
30355545bccSGerrit Uitslag    }
30455545bccSGerrit Uitslag
30555545bccSGerrit Uitslag    /**
30655545bccSGerrit Uitslag     * request before current version
30755545bccSGerrit Uitslag     */
30855545bccSGerrit Uitslag    function test_requestrecentestlogline_prev() {
30955545bccSGerrit Uitslag        $rev = 1374261194;
31055545bccSGerrit Uitslag        $dir = -1;
31155545bccSGerrit Uitslag        $revexpected = 1371579614;
31255545bccSGerrit Uitslag
313047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
314047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
31555545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
31655545bccSGerrit Uitslag    }
31755545bccSGerrit Uitslag
31855545bccSGerrit Uitslag    /**
31955545bccSGerrit Uitslag     * request before current version, with chuncked reading
32055545bccSGerrit Uitslag     */
32155545bccSGerrit Uitslag    function test_requestrecentestlogline_prev_chuncked() {
32255545bccSGerrit Uitslag        $rev = 1374261194;
32355545bccSGerrit Uitslag        $dir = -1;
32455545bccSGerrit Uitslag        $revexpected = 1371579614;
32555545bccSGerrit Uitslag
326047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512);
327047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
32855545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
32955545bccSGerrit Uitslag    }
33055545bccSGerrit Uitslag
33155545bccSGerrit Uitslag    /**
33255545bccSGerrit Uitslag     * Request negative revision
33355545bccSGerrit Uitslag     * looks in positive direction, so it catches the oldest revision
33455545bccSGerrit Uitslag     */
33555545bccSGerrit Uitslag    function test_negativerev_posdir() {
33655545bccSGerrit Uitslag        $rev = -10;
33755545bccSGerrit Uitslag        $dir = 1;
33855545bccSGerrit Uitslag        $revexpected = 1360110636;
33955545bccSGerrit Uitslag
340047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
341047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
34255545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
34355545bccSGerrit Uitslag    }
34455545bccSGerrit Uitslag
34555545bccSGerrit Uitslag    /**
34655545bccSGerrit Uitslag     * Request negative revision
34755545bccSGerrit Uitslag     * looks in negative direction, but there is nothing
34855545bccSGerrit Uitslag     */
34955545bccSGerrit Uitslag    function test_negativerev_negdir() {
35055545bccSGerrit Uitslag        $rev = -10;
35155545bccSGerrit Uitslag        $dir = -1;
35255545bccSGerrit Uitslag        $revexpected = false;
35355545bccSGerrit Uitslag
354047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
355047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
35655545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
35755545bccSGerrit Uitslag    }
35855545bccSGerrit Uitslag
35955545bccSGerrit Uitslag    /**
36055545bccSGerrit Uitslag     * Start at non existing revision somewhere between existing revisions
36155545bccSGerrit Uitslag     */
36255545bccSGerrit Uitslag    function test_startatnotexistingrev_next() {
36355545bccSGerrit Uitslag        $rev = 1362525890;
36455545bccSGerrit Uitslag        $dir = 1;
36555545bccSGerrit Uitslag        $revexpected = 1362525899;
36655545bccSGerrit Uitslag
367047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
368047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
36955545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
37055545bccSGerrit Uitslag    }
37155545bccSGerrit Uitslag
37255545bccSGerrit Uitslag    /**
37355545bccSGerrit Uitslag     * Start at non existing revision somewhere between existing revisions
37455545bccSGerrit Uitslag     */
37555545bccSGerrit Uitslag    function test_startatnotexistingrev_prev() {
37655545bccSGerrit Uitslag        $rev = 1362525890;
37755545bccSGerrit Uitslag        $dir = -1;
37855545bccSGerrit Uitslag        $revexpected = 1362525359;
37955545bccSGerrit Uitslag
380047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
381047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
38255545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
38355545bccSGerrit Uitslag    }
3840f13c836SGerrit Uitslag
3850f13c836SGerrit Uitslag    function test_iscurrentpagerevision() {
3860f13c836SGerrit Uitslag        $rev = 1385051947;
3870f13c836SGerrit Uitslag        $currentexpected = true;
3880f13c836SGerrit Uitslag
3890f13c836SGerrit Uitslag        //set a known timestamp
3900f13c836SGerrit Uitslag        touch(wikiFN($this->pageid), $rev);
3910f13c836SGerrit Uitslag
392047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
393047bad06SGerrit Uitslag        $current = $pagelog->isCurrentRevision($rev);
3940f13c836SGerrit Uitslag        $this->assertEquals($currentexpected, $current);
3950f13c836SGerrit Uitslag    }
3960f13c836SGerrit Uitslag
3970f13c836SGerrit Uitslag    function test_isnotcurrentpagerevision() {
3980f13c836SGerrit Uitslag        $rev = 1385051947;
3990f13c836SGerrit Uitslag        $not_current_rev = $rev - 1;
4000f13c836SGerrit Uitslag        $currentexpected = false;
4010f13c836SGerrit Uitslag
4020f13c836SGerrit Uitslag        //set a known timestamp
4030f13c836SGerrit Uitslag        touch(wikiFN($this->pageid), $rev);
4040f13c836SGerrit Uitslag
405047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
406047bad06SGerrit Uitslag        $current = $pagelog->isCurrentRevision($not_current_rev);
4070f13c836SGerrit Uitslag        $this->assertEquals($currentexpected, $current);
4080f13c836SGerrit Uitslag    }
4090f13c836SGerrit Uitslag
4100f13c836SGerrit Uitslag    function test_notexistingcurrentpage() {
4110f13c836SGerrit Uitslag        $rev = 1385051947;
4120f13c836SGerrit Uitslag        $currentexpected = false;
4130f13c836SGerrit Uitslag
414047bad06SGerrit Uitslag        $pagelog = new PageChangeLog('nonexistingpage', $chunk_size = 8192);
415047bad06SGerrit Uitslag        $current = $pagelog->isCurrentRevision($rev);
4160f13c836SGerrit Uitslag        $this->assertEquals($currentexpected, $current);
4170f13c836SGerrit Uitslag    }
41855545bccSGerrit Uitslag}