xref: /dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php (revision 72d8810b2bb7425024081eb1e2f8ec02092b08bc)
155545bccSGerrit Uitslag<?php
255545bccSGerrit Uitslag
371951841SGerrit Uitslaguse dokuwiki\ChangeLog\ChangeLog;
40c3a5702SAndreas Gohruse dokuwiki\ChangeLog\PageChangeLog;
50c3a5702SAndreas Gohr
655545bccSGerrit Uitslag/**
755545bccSGerrit Uitslag * Tests for requesting revisioninfo of a revision of a page with getRevisionInfo()
855545bccSGerrit Uitslag *
955545bccSGerrit Uitslag * This class uses the files:
1055545bccSGerrit Uitslag * - data/pages/mailinglist.txt
1155545bccSGerrit Uitslag * - data/meta/mailinglist.changes
1255545bccSGerrit Uitslag */
1355545bccSGerrit Uitslagclass changelog_getrelativerevision_test extends DokuWikiTest {
1455545bccSGerrit Uitslag
1555545bccSGerrit Uitslag    private $logline = "1362525899	127.0.0.1	E	mailinglist	pubcie	[Data entry] 	\n";
1655545bccSGerrit Uitslag    private $pageid = 'mailinglist';
1755545bccSGerrit Uitslag
181c33cec3SAndreas Gohr    function setup() : void {
1955545bccSGerrit Uitslag        parent::setup();
2055545bccSGerrit Uitslag        global $cache_revinfo;
2155545bccSGerrit Uitslag        $cache =& $cache_revinfo;
2255545bccSGerrit Uitslag        unset($cache['nonexist']);
2355545bccSGerrit Uitslag        unset($cache['mailinglist']);
2455545bccSGerrit Uitslag    }
2555545bccSGerrit Uitslag
2655545bccSGerrit Uitslag    /**
2755545bccSGerrit Uitslag     * no nonexist.changes meta file available
2855545bccSGerrit Uitslag     */
2955545bccSGerrit Uitslag    function test_changemetadatanotexists() {
3055545bccSGerrit Uitslag        $rev = 1362525899;
3155545bccSGerrit Uitslag        $dir = 1;
3255545bccSGerrit Uitslag        $id = 'nonexist';
3355545bccSGerrit Uitslag        $revsexpected = false;
3455545bccSGerrit Uitslag
35047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($id, $chunk_size = 8192);
36047bad06SGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, $dir);
3755545bccSGerrit Uitslag        $this->assertEquals($revsexpected, $revs);
3855545bccSGerrit Uitslag    }
3955545bccSGerrit Uitslag
4055545bccSGerrit Uitslag    /**
4155545bccSGerrit Uitslag     * no nonexist.changes meta file available
4255545bccSGerrit Uitslag     */
4355545bccSGerrit Uitslag    function test_nodirection() {
4455545bccSGerrit Uitslag        $rev = 1362525899;
4555545bccSGerrit Uitslag        $dir = 0;
4655545bccSGerrit Uitslag        $revsexpected = false;
4755545bccSGerrit Uitslag
48047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
49047bad06SGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, $dir);
5055545bccSGerrit Uitslag        $this->assertEquals($revsexpected, $revs);
5155545bccSGerrit Uitslag    }
5255545bccSGerrit Uitslag
5355545bccSGerrit Uitslag    /**
5455545bccSGerrit Uitslag     * start at exact current revision of mailinglist page
5555545bccSGerrit Uitslag     *
5655545bccSGerrit Uitslag     */
5755545bccSGerrit Uitslag    function test_startatexactcurrentrev() {
58332817fcSGerrit Uitslag        $rev = 1385051947;
5955545bccSGerrit Uitslag        $dir = 1;
60332817fcSGerrit Uitslag        $revsexpectedpos = false;
61332817fcSGerrit Uitslag        $revsexpectedneg = 1374261194;
6255545bccSGerrit Uitslag
63332817fcSGerrit Uitslag        //set a known timestamp
64332817fcSGerrit Uitslag        touch(wikiFN($this->pageid), $rev);
6555545bccSGerrit Uitslag
66047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
67047bad06SGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, $dir);
68332817fcSGerrit Uitslag        $this->assertEquals($revsexpectedpos, $revs);
69332817fcSGerrit Uitslag
70332817fcSGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, -$dir);
71332817fcSGerrit Uitslag        $this->assertEquals($revsexpectedneg, $revs);
72332817fcSGerrit Uitslag    }
73332817fcSGerrit Uitslag
74332817fcSGerrit Uitslag    /**
75332817fcSGerrit Uitslag     * start at exact last revision of mailinglist page
76332817fcSGerrit Uitslag     *
77332817fcSGerrit Uitslag     */
78332817fcSGerrit Uitslag    function test_startatexactlastrev() {
79332817fcSGerrit Uitslag        $rev = 1360110636;
80332817fcSGerrit Uitslag        $dir = 1;
81332817fcSGerrit Uitslag        $revsexpectedpos = 1361901536;
82332817fcSGerrit Uitslag        $revsexpectedneg = false;
83332817fcSGerrit Uitslag
84332817fcSGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
85332817fcSGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, $dir);
86332817fcSGerrit Uitslag        $this->assertEquals($revsexpectedpos, $revs);
87332817fcSGerrit Uitslag
88332817fcSGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, -$dir);
89332817fcSGerrit Uitslag        $this->assertEquals($revsexpectedneg, $revs);
90332817fcSGerrit Uitslag    }
91332817fcSGerrit Uitslag
92332817fcSGerrit Uitslag    /**
93332817fcSGerrit Uitslag     * start at exact one before last revision of mailinglist page
94332817fcSGerrit Uitslag     *
95332817fcSGerrit Uitslag     */
96332817fcSGerrit Uitslag    function test_requestlastrevisions() {
97332817fcSGerrit Uitslag        $rev = 1361901536;
98332817fcSGerrit Uitslag        $dir = -1;
99332817fcSGerrit Uitslag        $revsexpectedlast = 1360110636;
100332817fcSGerrit Uitslag        $revsexpectedbeforelast = false;
101332817fcSGerrit Uitslag
102332817fcSGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
103332817fcSGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, $dir);
104332817fcSGerrit Uitslag        $this->assertEquals($revsexpectedlast, $revs);
105332817fcSGerrit Uitslag
106332817fcSGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, 2 * $dir);
107332817fcSGerrit Uitslag        $this->assertEquals($revsexpectedbeforelast, $revs);
10855545bccSGerrit Uitslag    }
10955545bccSGerrit Uitslag
11055545bccSGerrit Uitslag    /**
11159cce2d9SGerrit Uitslag     * request existing rev and check cache
11255545bccSGerrit Uitslag     */
11359cce2d9SGerrit Uitslag    function test_requestrev_checkcache() {
11455545bccSGerrit Uitslag        $rev = 1362525359;
11555545bccSGerrit Uitslag        $dir = 1;
11655545bccSGerrit Uitslag        $revexpected = 1362525899;
11771951841SGerrit Uitslag        $infoexpected = ChangeLog::parseLogLine($this->logline);
118*72d8810bSGerrit Uitslag        $infoexpected['mode'] = 'page';
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);
12359cce2d9SGerrit 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    /**
13059cce2d9SGerrit Uitslag     * request existing rev
13159cce2d9SGerrit Uitslag     */
13259cce2d9SGerrit Uitslag    function test_requestnextrev() {
13359cce2d9SGerrit Uitslag        $rev = 1362525899;
13459cce2d9SGerrit Uitslag
13559cce2d9SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
13659cce2d9SGerrit Uitslag
13759cce2d9SGerrit Uitslag        $dir = 1;
13859cce2d9SGerrit Uitslag        $revexpected = 1362525926;
13959cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
14059cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
14159cce2d9SGerrit Uitslag
14259cce2d9SGerrit Uitslag        $dir = 2;
14359cce2d9SGerrit Uitslag        $revexpected = 1362526039;
14459cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
14559cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
14659cce2d9SGerrit Uitslag
14759cce2d9SGerrit Uitslag        $dir = -1;
14859cce2d9SGerrit Uitslag        $revexpected = 1362525359;
14959cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
15059cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
15159cce2d9SGerrit Uitslag
15259cce2d9SGerrit Uitslag        $dir = -2;
15359cce2d9SGerrit Uitslag        $revexpected = 1362525145;
15459cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
15559cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
15659cce2d9SGerrit Uitslag    }
15759cce2d9SGerrit Uitslag
15859cce2d9SGerrit 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);
16559cce2d9SGerrit Uitslag
16659cce2d9SGerrit Uitslag        $dir = 1;
16759cce2d9SGerrit Uitslag        $revexpected = 1362525926;
16859cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
16959cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
17059cce2d9SGerrit Uitslag
17159cce2d9SGerrit Uitslag        $dir = 2;
17259cce2d9SGerrit Uitslag        $revexpected = 1362526039;
17359cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
17459cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
17559cce2d9SGerrit Uitslag
17659cce2d9SGerrit Uitslag        $dir = -1;
17759cce2d9SGerrit Uitslag        $revexpected = 1362525359;
17859cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
17959cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
18059cce2d9SGerrit Uitslag
18159cce2d9SGerrit Uitslag        $dir = -2;
18259cce2d9SGerrit Uitslag        $revexpected = 1362525145;
18359cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
18459cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
18559cce2d9SGerrit Uitslag    }
18659cce2d9SGerrit Uitslag
18759cce2d9SGerrit Uitslag
18859cce2d9SGerrit Uitslag    /**
18959cce2d9SGerrit Uitslag     * request existing rev with chucked reading, chunk size smaller than line length
19059cce2d9SGerrit Uitslag     */
19159cce2d9SGerrit Uitslag    function test_requestnextrev_chunkshorterthanlines() {
19259cce2d9SGerrit Uitslag        $rev = 1362525899;
19359cce2d9SGerrit Uitslag
19459cce2d9SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20);
19559cce2d9SGerrit Uitslag
19659cce2d9SGerrit Uitslag        $dir = 1;
19759cce2d9SGerrit Uitslag        $revexpected = 1362525926;
19859cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
19959cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
20059cce2d9SGerrit Uitslag
20159cce2d9SGerrit Uitslag        $dir = 2;
20259cce2d9SGerrit Uitslag        $revexpected = 1362526039;
20359cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
20459cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
20559cce2d9SGerrit Uitslag
20659cce2d9SGerrit Uitslag        $dir = -1;
20759cce2d9SGerrit Uitslag        $revexpected = 1362525359;
20859cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
20959cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
21059cce2d9SGerrit Uitslag
21159cce2d9SGerrit Uitslag        $dir = -2;
21259cce2d9SGerrit 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}
419