xref: /dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php (revision 0c3a5702735953748f68955d51bb478538fb6eda)
155545bccSGerrit Uitslag<?php
255545bccSGerrit Uitslag
3*0c3a5702SAndreas Gohruse dokuwiki\ChangeLog\PageChangeLog;
4*0c3a5702SAndreas Gohr
555545bccSGerrit Uitslag/**
655545bccSGerrit Uitslag * Tests for requesting revisioninfo of a revision of a page with getRevisionInfo()
755545bccSGerrit Uitslag *
855545bccSGerrit Uitslag * This class uses the files:
955545bccSGerrit Uitslag * - data/pages/mailinglist.txt
1055545bccSGerrit Uitslag * - data/meta/mailinglist.changes
1155545bccSGerrit Uitslag */
1255545bccSGerrit Uitslagclass changelog_getrelativerevision_test extends DokuWikiTest {
1355545bccSGerrit Uitslag
1455545bccSGerrit Uitslag    private $logline = "1362525899	127.0.0.1	E	mailinglist	pubcie	[Data entry] 	\n";
1555545bccSGerrit Uitslag    private $pageid = 'mailinglist';
1655545bccSGerrit Uitslag
1755545bccSGerrit Uitslag    function setup() {
1855545bccSGerrit Uitslag        parent::setup();
1955545bccSGerrit Uitslag        global $cache_revinfo;
2055545bccSGerrit Uitslag        $cache =& $cache_revinfo;
2155545bccSGerrit Uitslag        if(isset($cache['nonexist'])) {
2255545bccSGerrit Uitslag            unset($cache['nonexist']);
2355545bccSGerrit Uitslag        }
2455545bccSGerrit Uitslag        if(isset($cache['mailinglist'])) {
2555545bccSGerrit Uitslag            unset($cache['mailinglist']);
2655545bccSGerrit Uitslag        }
2755545bccSGerrit Uitslag    }
2855545bccSGerrit Uitslag
2955545bccSGerrit Uitslag    /**
3055545bccSGerrit Uitslag     * no nonexist.changes meta file available
3155545bccSGerrit Uitslag     */
3255545bccSGerrit Uitslag    function test_changemetadatanotexists() {
3355545bccSGerrit Uitslag        $rev = 1362525899;
3455545bccSGerrit Uitslag        $dir = 1;
3555545bccSGerrit Uitslag        $id = 'nonexist';
3655545bccSGerrit Uitslag        $revsexpected = false;
3755545bccSGerrit Uitslag
38047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($id, $chunk_size = 8192);
39047bad06SGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, $dir);
4055545bccSGerrit Uitslag        $this->assertEquals($revsexpected, $revs);
4155545bccSGerrit Uitslag    }
4255545bccSGerrit Uitslag
4355545bccSGerrit Uitslag    /**
4455545bccSGerrit Uitslag     * no nonexist.changes meta file available
4555545bccSGerrit Uitslag     */
4655545bccSGerrit Uitslag    function test_nodirection() {
4755545bccSGerrit Uitslag        $rev = 1362525899;
4855545bccSGerrit Uitslag        $dir = 0;
4955545bccSGerrit Uitslag        $revsexpected = false;
5055545bccSGerrit Uitslag
51047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
52047bad06SGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, $dir);
5355545bccSGerrit Uitslag        $this->assertEquals($revsexpected, $revs);
5455545bccSGerrit Uitslag    }
5555545bccSGerrit Uitslag
5655545bccSGerrit Uitslag    /**
5755545bccSGerrit Uitslag     * start at exact current revision of mailinglist page
5855545bccSGerrit Uitslag     *
5955545bccSGerrit Uitslag     */
6055545bccSGerrit Uitslag    function test_startatexactcurrentrev() {
61332817fcSGerrit Uitslag        $rev = 1385051947;
6255545bccSGerrit Uitslag        $dir = 1;
63332817fcSGerrit Uitslag        $revsexpectedpos = false;
64332817fcSGerrit Uitslag        $revsexpectedneg = 1374261194;
6555545bccSGerrit Uitslag
66332817fcSGerrit Uitslag        //set a known timestamp
67332817fcSGerrit Uitslag        touch(wikiFN($this->pageid), $rev);
6855545bccSGerrit Uitslag
69047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
70047bad06SGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, $dir);
71332817fcSGerrit Uitslag        $this->assertEquals($revsexpectedpos, $revs);
72332817fcSGerrit Uitslag
73332817fcSGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, -$dir);
74332817fcSGerrit Uitslag        $this->assertEquals($revsexpectedneg, $revs);
75332817fcSGerrit Uitslag    }
76332817fcSGerrit Uitslag
77332817fcSGerrit Uitslag    /**
78332817fcSGerrit Uitslag     * start at exact last revision of mailinglist page
79332817fcSGerrit Uitslag     *
80332817fcSGerrit Uitslag     */
81332817fcSGerrit Uitslag    function test_startatexactlastrev() {
82332817fcSGerrit Uitslag        $rev = 1360110636;
83332817fcSGerrit Uitslag        $dir = 1;
84332817fcSGerrit Uitslag        $revsexpectedpos = 1361901536;
85332817fcSGerrit Uitslag        $revsexpectedneg = false;
86332817fcSGerrit Uitslag
87332817fcSGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
88332817fcSGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, $dir);
89332817fcSGerrit Uitslag        $this->assertEquals($revsexpectedpos, $revs);
90332817fcSGerrit Uitslag
91332817fcSGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, -$dir);
92332817fcSGerrit Uitslag        $this->assertEquals($revsexpectedneg, $revs);
93332817fcSGerrit Uitslag    }
94332817fcSGerrit Uitslag
95332817fcSGerrit Uitslag    /**
96332817fcSGerrit Uitslag     * start at exact one before last revision of mailinglist page
97332817fcSGerrit Uitslag     *
98332817fcSGerrit Uitslag     */
99332817fcSGerrit Uitslag    function test_requestlastrevisions() {
100332817fcSGerrit Uitslag        $rev = 1361901536;
101332817fcSGerrit Uitslag        $dir = -1;
102332817fcSGerrit Uitslag        $revsexpectedlast = 1360110636;
103332817fcSGerrit Uitslag        $revsexpectedbeforelast = false;
104332817fcSGerrit Uitslag
105332817fcSGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
106332817fcSGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, $dir);
107332817fcSGerrit Uitslag        $this->assertEquals($revsexpectedlast, $revs);
108332817fcSGerrit Uitslag
109332817fcSGerrit Uitslag        $revs = $pagelog->getRelativeRevision($rev, 2 * $dir);
110332817fcSGerrit Uitslag        $this->assertEquals($revsexpectedbeforelast, $revs);
11155545bccSGerrit Uitslag    }
11255545bccSGerrit Uitslag
11355545bccSGerrit Uitslag    /**
11459cce2d9SGerrit Uitslag     * request existing rev and check cache
11555545bccSGerrit Uitslag     */
11659cce2d9SGerrit Uitslag    function test_requestrev_checkcache() {
11755545bccSGerrit Uitslag        $rev = 1362525359;
11855545bccSGerrit Uitslag        $dir = 1;
11955545bccSGerrit Uitslag        $revexpected = 1362525899;
12055545bccSGerrit Uitslag        $infoexpected = parseChangelogLine($this->logline);
12155545bccSGerrit Uitslag
122047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
123047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
12455545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
12559cce2d9SGerrit Uitslag
12655545bccSGerrit Uitslag        //checked info returned from cache
127047bad06SGerrit Uitslag        $info = $pagelog->getRevisionInfo($revfound);
12855545bccSGerrit Uitslag        $this->assertEquals($infoexpected, $info);
12955545bccSGerrit Uitslag    }
13055545bccSGerrit Uitslag
13155545bccSGerrit Uitslag    /**
13259cce2d9SGerrit Uitslag     * request existing rev
13359cce2d9SGerrit Uitslag     */
13459cce2d9SGerrit Uitslag    function test_requestnextrev() {
13559cce2d9SGerrit Uitslag        $rev = 1362525899;
13659cce2d9SGerrit Uitslag
13759cce2d9SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
13859cce2d9SGerrit Uitslag
13959cce2d9SGerrit Uitslag        $dir = 1;
14059cce2d9SGerrit Uitslag        $revexpected = 1362525926;
14159cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
14259cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
14359cce2d9SGerrit Uitslag
14459cce2d9SGerrit Uitslag        $dir = 2;
14559cce2d9SGerrit Uitslag        $revexpected = 1362526039;
14659cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
14759cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
14859cce2d9SGerrit Uitslag
14959cce2d9SGerrit Uitslag        $dir = -1;
15059cce2d9SGerrit Uitslag        $revexpected = 1362525359;
15159cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
15259cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
15359cce2d9SGerrit Uitslag
15459cce2d9SGerrit Uitslag        $dir = -2;
15559cce2d9SGerrit Uitslag        $revexpected = 1362525145;
15659cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
15759cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
15859cce2d9SGerrit Uitslag    }
15959cce2d9SGerrit Uitslag
16059cce2d9SGerrit Uitslag    /**
16155545bccSGerrit Uitslag     * request existing rev with chucked reading
16255545bccSGerrit Uitslag     */
16355545bccSGerrit Uitslag    function test_requestnextrev_chuncked() {
16455545bccSGerrit Uitslag        $rev = 1362525899;
16555545bccSGerrit Uitslag
166047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512);
16759cce2d9SGerrit Uitslag
16859cce2d9SGerrit Uitslag        $dir = 1;
16959cce2d9SGerrit Uitslag        $revexpected = 1362525926;
17059cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
17159cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
17259cce2d9SGerrit Uitslag
17359cce2d9SGerrit Uitslag        $dir = 2;
17459cce2d9SGerrit Uitslag        $revexpected = 1362526039;
17559cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
17659cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
17759cce2d9SGerrit Uitslag
17859cce2d9SGerrit Uitslag        $dir = -1;
17959cce2d9SGerrit Uitslag        $revexpected = 1362525359;
18059cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
18159cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
18259cce2d9SGerrit Uitslag
18359cce2d9SGerrit Uitslag        $dir = -2;
18459cce2d9SGerrit Uitslag        $revexpected = 1362525145;
18559cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
18659cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
18759cce2d9SGerrit Uitslag    }
18859cce2d9SGerrit Uitslag
18959cce2d9SGerrit Uitslag
19059cce2d9SGerrit Uitslag    /**
19159cce2d9SGerrit Uitslag     * request existing rev with chucked reading, chunk size smaller than line length
19259cce2d9SGerrit Uitslag     */
19359cce2d9SGerrit Uitslag    function test_requestnextrev_chunkshorterthanlines() {
19459cce2d9SGerrit Uitslag        $rev = 1362525899;
19559cce2d9SGerrit Uitslag
19659cce2d9SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20);
19759cce2d9SGerrit Uitslag
19859cce2d9SGerrit Uitslag        $dir = 1;
19959cce2d9SGerrit Uitslag        $revexpected = 1362525926;
20059cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
20159cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
20259cce2d9SGerrit Uitslag
20359cce2d9SGerrit Uitslag        $dir = 2;
20459cce2d9SGerrit Uitslag        $revexpected = 1362526039;
20559cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
20659cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
20759cce2d9SGerrit Uitslag
20859cce2d9SGerrit Uitslag        $dir = -1;
20959cce2d9SGerrit Uitslag        $revexpected = 1362525359;
21059cce2d9SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
21159cce2d9SGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
21259cce2d9SGerrit Uitslag
21359cce2d9SGerrit Uitslag        $dir = -2;
21459cce2d9SGerrit Uitslag        $revexpected = 1362525145;
215047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
21655545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
21755545bccSGerrit Uitslag    }
21855545bccSGerrit Uitslag
21955545bccSGerrit Uitslag    /**
22055545bccSGerrit Uitslag     * request existing rev
22155545bccSGerrit Uitslag     */
22255545bccSGerrit Uitslag    function test_requestnextfifthrev() {
22355545bccSGerrit Uitslag        $rev = 1362525899;
22455545bccSGerrit Uitslag        $dir = 5;
22555545bccSGerrit Uitslag        $revexpected = 1362526767;
22655545bccSGerrit Uitslag
227047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
228047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
22955545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
23055545bccSGerrit Uitslag    }
23155545bccSGerrit Uitslag
23255545bccSGerrit Uitslag    /**
23355545bccSGerrit Uitslag     * request existing rev with chucked reading
23455545bccSGerrit Uitslag     */
23555545bccSGerrit Uitslag    function test_requestnextfifthrev_chuncked() {
23655545bccSGerrit Uitslag        $rev = 1362525899;
23755545bccSGerrit Uitslag        $dir = 5;
23855545bccSGerrit Uitslag        $revexpected = 1362526767;
23955545bccSGerrit Uitslag
240047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512);
241047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
24255545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
24355545bccSGerrit Uitslag    }
24455545bccSGerrit Uitslag
24555545bccSGerrit Uitslag    /**
24655545bccSGerrit Uitslag     * request existing rev
24755545bccSGerrit Uitslag     */
24855545bccSGerrit Uitslag    function test_requestprevrev() {
24955545bccSGerrit Uitslag        $rev = 1362525899;
25055545bccSGerrit Uitslag        $dir1 = -1;
25155545bccSGerrit Uitslag        $dir5 = -5;
25255545bccSGerrit Uitslag        $revexpected1 = 1362525359;
25355545bccSGerrit Uitslag        $revexpected5 = 1360110636;
25455545bccSGerrit Uitslag
255047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
256047bad06SGerrit Uitslag        $revfound1 = $pagelog->getRelativeRevision($rev, $dir1);
25755545bccSGerrit Uitslag        $this->assertEquals($revexpected1, $revfound1);
25855545bccSGerrit Uitslag
259047bad06SGerrit Uitslag        $revfound5 = $pagelog->getRelativeRevision($rev, $dir5);
26055545bccSGerrit Uitslag        $this->assertEquals($revexpected5, $revfound5);
26155545bccSGerrit Uitslag    }
26255545bccSGerrit Uitslag
26355545bccSGerrit Uitslag    /**
26455545bccSGerrit Uitslag     * request existing rev with chucked reading
26555545bccSGerrit Uitslag     */
26655545bccSGerrit Uitslag    function test_requestprevrev_chuncked() {
26755545bccSGerrit Uitslag        $rev = 1362525899;
26855545bccSGerrit Uitslag        $dir1 = -1;
26955545bccSGerrit Uitslag        $dir5 = -5;
27055545bccSGerrit Uitslag        $revexpected1 = 1362525359;
27155545bccSGerrit Uitslag        $revexpected5 = 1360110636;
27255545bccSGerrit Uitslag
273047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512);
274047bad06SGerrit Uitslag        $revfound1 = $pagelog->getRelativeRevision($rev, $dir1);
27555545bccSGerrit Uitslag        $this->assertEquals($revexpected1, $revfound1);
27655545bccSGerrit Uitslag
277047bad06SGerrit Uitslag        $revfound5 = $pagelog->getRelativeRevision($rev, $dir5);
27855545bccSGerrit Uitslag        $this->assertEquals($revexpected5, $revfound5);
27955545bccSGerrit Uitslag    }
28055545bccSGerrit Uitslag
28155545bccSGerrit Uitslag    /**
28255545bccSGerrit Uitslag     * request after recentest version in changelog
28355545bccSGerrit Uitslag     */
28455545bccSGerrit Uitslag    function test_requestrecentestlogline_next() {
28555545bccSGerrit Uitslag        $rev = 1374261194;
28655545bccSGerrit Uitslag        $dir = 1;
28755545bccSGerrit Uitslag        $revexpected = false;
28855545bccSGerrit Uitslag
289047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
290047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
29155545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
29255545bccSGerrit Uitslag    }
29355545bccSGerrit Uitslag
29455545bccSGerrit Uitslag    /**
29555545bccSGerrit Uitslag     * request after recentest version in changelog, with chuncked reading
29655545bccSGerrit Uitslag     */
29755545bccSGerrit Uitslag    function test_requestrecentestlogline_next_chuncked() {
29855545bccSGerrit Uitslag        $rev = 1374261194;
29955545bccSGerrit Uitslag        $dir = 1;
30055545bccSGerrit Uitslag        $revexpected = false;
30155545bccSGerrit Uitslag
302047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512);
303047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
30455545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
30555545bccSGerrit Uitslag    }
30655545bccSGerrit Uitslag
30755545bccSGerrit Uitslag    /**
30855545bccSGerrit Uitslag     * request before current version
30955545bccSGerrit Uitslag     */
31055545bccSGerrit Uitslag    function test_requestrecentestlogline_prev() {
31155545bccSGerrit Uitslag        $rev = 1374261194;
31255545bccSGerrit Uitslag        $dir = -1;
31355545bccSGerrit Uitslag        $revexpected = 1371579614;
31455545bccSGerrit Uitslag
315047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
316047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
31755545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
31855545bccSGerrit Uitslag    }
31955545bccSGerrit Uitslag
32055545bccSGerrit Uitslag    /**
32155545bccSGerrit Uitslag     * request before current version, with chuncked reading
32255545bccSGerrit Uitslag     */
32355545bccSGerrit Uitslag    function test_requestrecentestlogline_prev_chuncked() {
32455545bccSGerrit Uitslag        $rev = 1374261194;
32555545bccSGerrit Uitslag        $dir = -1;
32655545bccSGerrit Uitslag        $revexpected = 1371579614;
32755545bccSGerrit Uitslag
328047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512);
329047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
33055545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
33155545bccSGerrit Uitslag    }
33255545bccSGerrit Uitslag
33355545bccSGerrit Uitslag    /**
33455545bccSGerrit Uitslag     * Request negative revision
33555545bccSGerrit Uitslag     * looks in positive direction, so it catches the oldest revision
33655545bccSGerrit Uitslag     */
33755545bccSGerrit Uitslag    function test_negativerev_posdir() {
33855545bccSGerrit Uitslag        $rev = -10;
33955545bccSGerrit Uitslag        $dir = 1;
34055545bccSGerrit Uitslag        $revexpected = 1360110636;
34155545bccSGerrit Uitslag
342047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
343047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
34455545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
34555545bccSGerrit Uitslag    }
34655545bccSGerrit Uitslag
34755545bccSGerrit Uitslag    /**
34855545bccSGerrit Uitslag     * Request negative revision
34955545bccSGerrit Uitslag     * looks in negative direction, but there is nothing
35055545bccSGerrit Uitslag     */
35155545bccSGerrit Uitslag    function test_negativerev_negdir() {
35255545bccSGerrit Uitslag        $rev = -10;
35355545bccSGerrit Uitslag        $dir = -1;
35455545bccSGerrit Uitslag        $revexpected = false;
35555545bccSGerrit Uitslag
356047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
357047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
35855545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
35955545bccSGerrit Uitslag    }
36055545bccSGerrit Uitslag
36155545bccSGerrit Uitslag    /**
36255545bccSGerrit Uitslag     * Start at non existing revision somewhere between existing revisions
36355545bccSGerrit Uitslag     */
36455545bccSGerrit Uitslag    function test_startatnotexistingrev_next() {
36555545bccSGerrit Uitslag        $rev = 1362525890;
36655545bccSGerrit Uitslag        $dir = 1;
36755545bccSGerrit Uitslag        $revexpected = 1362525899;
36855545bccSGerrit Uitslag
369047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
370047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
37155545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
37255545bccSGerrit Uitslag    }
37355545bccSGerrit Uitslag
37455545bccSGerrit Uitslag    /**
37555545bccSGerrit Uitslag     * Start at non existing revision somewhere between existing revisions
37655545bccSGerrit Uitslag     */
37755545bccSGerrit Uitslag    function test_startatnotexistingrev_prev() {
37855545bccSGerrit Uitslag        $rev = 1362525890;
37955545bccSGerrit Uitslag        $dir = -1;
38055545bccSGerrit Uitslag        $revexpected = 1362525359;
38155545bccSGerrit Uitslag
382047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
383047bad06SGerrit Uitslag        $revfound = $pagelog->getRelativeRevision($rev, $dir);
38455545bccSGerrit Uitslag        $this->assertEquals($revexpected, $revfound);
38555545bccSGerrit Uitslag    }
3860f13c836SGerrit Uitslag
3870f13c836SGerrit Uitslag    function test_iscurrentpagerevision() {
3880f13c836SGerrit Uitslag        $rev = 1385051947;
3890f13c836SGerrit Uitslag        $currentexpected = true;
3900f13c836SGerrit Uitslag
3910f13c836SGerrit Uitslag        //set a known timestamp
3920f13c836SGerrit Uitslag        touch(wikiFN($this->pageid), $rev);
3930f13c836SGerrit Uitslag
394047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
395047bad06SGerrit Uitslag        $current = $pagelog->isCurrentRevision($rev);
3960f13c836SGerrit Uitslag        $this->assertEquals($currentexpected, $current);
3970f13c836SGerrit Uitslag    }
3980f13c836SGerrit Uitslag
3990f13c836SGerrit Uitslag    function test_isnotcurrentpagerevision() {
4000f13c836SGerrit Uitslag        $rev = 1385051947;
4010f13c836SGerrit Uitslag        $not_current_rev = $rev - 1;
4020f13c836SGerrit Uitslag        $currentexpected = false;
4030f13c836SGerrit Uitslag
4040f13c836SGerrit Uitslag        //set a known timestamp
4050f13c836SGerrit Uitslag        touch(wikiFN($this->pageid), $rev);
4060f13c836SGerrit Uitslag
407047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
408047bad06SGerrit Uitslag        $current = $pagelog->isCurrentRevision($not_current_rev);
4090f13c836SGerrit Uitslag        $this->assertEquals($currentexpected, $current);
4100f13c836SGerrit Uitslag    }
4110f13c836SGerrit Uitslag
4120f13c836SGerrit Uitslag    function test_notexistingcurrentpage() {
4130f13c836SGerrit Uitslag        $rev = 1385051947;
4140f13c836SGerrit Uitslag        $currentexpected = false;
4150f13c836SGerrit Uitslag
416047bad06SGerrit Uitslag        $pagelog = new PageChangeLog('nonexistingpage', $chunk_size = 8192);
417047bad06SGerrit Uitslag        $current = $pagelog->isCurrentRevision($rev);
4180f13c836SGerrit Uitslag        $this->assertEquals($currentexpected, $current);
4190f13c836SGerrit Uitslag    }
42055545bccSGerrit Uitslag}
421