xref: /dokuwiki/_test/tests/inc/changelog_getlastrevisionat.test.php (revision 4eb5e17453694b80e84a83a6960d02ac63cfa320)
1*4eb5e174Slisps<?php
2*4eb5e174Slisps
3*4eb5e174Slisps/**
4*4eb5e174Slisps * Tests for requesting revisioninfo of a revision of a page with getRevisionInfo()
5*4eb5e174Slisps *
6*4eb5e174Slisps * This class uses the files:
7*4eb5e174Slisps * - data/pages/mailinglist.txt
8*4eb5e174Slisps * - data/meta/mailinglist.changes
9*4eb5e174Slisps */
10*4eb5e174Slispsclass changelog_getrelativerevision_test extends DokuWikiTest {
11*4eb5e174Slisps
12*4eb5e174Slisps    private $pageid = 'mailinglist';
13*4eb5e174Slisps
14*4eb5e174Slisps    function setup() {
15*4eb5e174Slisps        parent::setup();
16*4eb5e174Slisps        global $cache_revinfo;
17*4eb5e174Slisps        $cache =& $cache_revinfo;
18*4eb5e174Slisps        if(isset($cache['nonexist'])) {
19*4eb5e174Slisps            unset($cache['nonexist']);
20*4eb5e174Slisps        }
21*4eb5e174Slisps        if(isset($cache['mailinglist'])) {
22*4eb5e174Slisps            unset($cache['mailinglist']);
23*4eb5e174Slisps        }
24*4eb5e174Slisps    }
25*4eb5e174Slisps
26*4eb5e174Slisps
27*4eb5e174Slisps    /**
28*4eb5e174Slisps     * no nonexist.changes meta file available
29*4eb5e174Slisps     */
30*4eb5e174Slisps    function test_changemetadatanotexists() {
31*4eb5e174Slisps        $rev = 1362525899;
32*4eb5e174Slisps        $id = 'nonexist';
33*4eb5e174Slisps        $revsexpected = false;
34*4eb5e174Slisps
35*4eb5e174Slisps        $pagelog = new PageChangeLog($id, $chunk_size = 8192);
36*4eb5e174Slisps        $revs = $pagelog->getLastRevisionAt($rev);
37*4eb5e174Slisps        $this->assertEquals($revsexpected, $revs);
38*4eb5e174Slisps    }
39*4eb5e174Slisps
40*4eb5e174Slisps    /**
41*4eb5e174Slisps     * start at exact current revision of mailinglist page
42*4eb5e174Slisps     *
43*4eb5e174Slisps     */
44*4eb5e174Slisps    function test_startatexactcurrentrev() {
45*4eb5e174Slisps        $rev = 1385051947;
46*4eb5e174Slisps        $revsexpected = '';
47*4eb5e174Slisps
48*4eb5e174Slisps        //set a known timestamp
49*4eb5e174Slisps        touch(wikiFN($this->pageid), $rev);
50*4eb5e174Slisps
51*4eb5e174Slisps        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
52*4eb5e174Slisps        $revs = $pagelog->getLastRevisionAt($rev);
53*4eb5e174Slisps        $this->assertEquals($revsexpected, $revs);
54*4eb5e174Slisps
55*4eb5e174Slisps    }
56*4eb5e174Slisps
57*4eb5e174Slisps    /**
58*4eb5e174Slisps     * test a future revision
59*4eb5e174Slisps     *
60*4eb5e174Slisps     */
61*4eb5e174Slisps    function test_futurerev() {
62*4eb5e174Slisps        $rev = 1385051947;
63*4eb5e174Slisps        $revsexpected = '';
64*4eb5e174Slisps
65*4eb5e174Slisps        //set a known timestamp
66*4eb5e174Slisps        touch(wikiFN($this->pageid), $rev);
67*4eb5e174Slisps
68*4eb5e174Slisps        $rev +=1;
69*4eb5e174Slisps
70*4eb5e174Slisps        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
71*4eb5e174Slisps        $revs = $pagelog->getLastRevisionAt($rev);
72*4eb5e174Slisps        $this->assertEquals($revsexpected, $revs);
73*4eb5e174Slisps
74*4eb5e174Slisps    }
75*4eb5e174Slisps
76*4eb5e174Slisps    /**
77*4eb5e174Slisps     * start at exact last revision of mailinglist page
78*4eb5e174Slisps     *
79*4eb5e174Slisps     */
80*4eb5e174Slisps    function test_exactlastrev() {
81*4eb5e174Slisps        $rev = 1360110636;
82*4eb5e174Slisps        $revsexpected = 1360110636;
83*4eb5e174Slisps
84*4eb5e174Slisps        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
85*4eb5e174Slisps        $revs = $pagelog->getLastRevisionAt($rev);
86*4eb5e174Slisps        $this->assertEquals($revsexpected, $revs);
87*4eb5e174Slisps    }
88*4eb5e174Slisps
89*4eb5e174Slisps
90*4eb5e174Slisps    /**
91*4eb5e174Slisps     * Request not existing revision
92*4eb5e174Slisps     *
93*4eb5e174Slisps     */
94*4eb5e174Slisps    function test_olderrev() {
95*4eb5e174Slisps        $rev = 1;
96*4eb5e174Slisps        $revexpected = false;
97*4eb5e174Slisps
98*4eb5e174Slisps        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
99*4eb5e174Slisps        $revfound = $pagelog->getLastRevisionAt($rev);
100*4eb5e174Slisps        $this->assertEquals($revexpected, $revfound);
101*4eb5e174Slisps    }
102*4eb5e174Slisps
103*4eb5e174Slisps    /**
104*4eb5e174Slisps     * Start at non existing revision somewhere between existing revisions
105*4eb5e174Slisps     */
106*4eb5e174Slisps    function test_notexistingrev() {
107*4eb5e174Slisps        $rev = 1362525890;
108*4eb5e174Slisps        $revexpected = 1362525359;
109*4eb5e174Slisps
110*4eb5e174Slisps        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
111*4eb5e174Slisps        $revfound = $pagelog->getLastRevisionAt($rev);
112*4eb5e174Slisps        $this->assertEquals($revexpected, $revfound);
113*4eb5e174Slisps    }
114*4eb5e174Slisps
115*4eb5e174Slisps    /**
116*4eb5e174Slisps     * request nonexisting page
117*4eb5e174Slisps     *
118*4eb5e174Slisps     */
119*4eb5e174Slisps    function test_notexistingpage() {
120*4eb5e174Slisps        $rev = 1385051947;
121*4eb5e174Slisps        $currentexpected = false;
122*4eb5e174Slisps
123*4eb5e174Slisps        $pagelog = new PageChangeLog('nonexistingpage', $chunk_size = 8192);
124*4eb5e174Slisps        $current = $pagelog->getLastRevisionAt($rev);
125*4eb5e174Slisps        $this->assertEquals($currentexpected, $current);
126*4eb5e174Slisps    }
127*4eb5e174Slisps}