xref: /dokuwiki/_test/tests/inc/changelog_getrevisions.test.php (revision 51bd6f039e782dca456022514893aa80bd7c52b9)
1*51bd6f03SKlap-in<?php
2*51bd6f03SKlap-in/**
3*51bd6f03SKlap-in * Tests for requesting revisions of a page with getRevisions()
4*51bd6f03SKlap-in *
5*51bd6f03SKlap-in * This class uses the files:
6*51bd6f03SKlap-in * - data/pages/mailinglist.txt
7*51bd6f03SKlap-in * - data/meta/mailinglist.changes
8*51bd6f03SKlap-in */
9*51bd6f03SKlap-inclass changelog_getrevisions_test extends DokuWikiTest {
10*51bd6f03SKlap-in
11*51bd6f03SKlap-in    /**
12*51bd6f03SKlap-in     * $first counts inclusive zero, after the current page
13*51bd6f03SKlap-in     */
14*51bd6f03SKlap-in    private $revsexpected = array(
15*51bd6f03SKlap-in        1374261194, //current page
16*51bd6f03SKlap-in        1371579614, 1368622240, // revisions, corresponds to respectively $first = 0 and 1
17*51bd6f03SKlap-in        1368622195, 1368622152,
18*51bd6f03SKlap-in        1368612599, 1368612506,
19*51bd6f03SKlap-in        1368609772, 1368575634,
20*51bd6f03SKlap-in        1363436892, 1362527164,
21*51bd6f03SKlap-in        1362527046, 1362526861, //10 and 11
22*51bd6f03SKlap-in        1362526767, 1362526167,
23*51bd6f03SKlap-in        1362526119, 1362526039,
24*51bd6f03SKlap-in        1362525926, 1362525899,
25*51bd6f03SKlap-in        1362525359, 1362525145,
26*51bd6f03SKlap-in        1362524799, 1361901536, //20 and 21
27*51bd6f03SKlap-in        1360110636
28*51bd6f03SKlap-in    );
29*51bd6f03SKlap-in    private $pageid = 'mailinglist';
30*51bd6f03SKlap-in
31*51bd6f03SKlap-in    function setup() {
32*51bd6f03SKlap-in        parent::setup();
33*51bd6f03SKlap-in        global $cache_revinfo;
34*51bd6f03SKlap-in        $cache =& $cache_revinfo;
35*51bd6f03SKlap-in        if(isset($cache['nonexist'])) {
36*51bd6f03SKlap-in            unset($cache['nonexist']);
37*51bd6f03SKlap-in        }
38*51bd6f03SKlap-in        if(isset($cache['mailinglist'])) {
39*51bd6f03SKlap-in            unset($cache['nonexist']);
40*51bd6f03SKlap-in        }
41*51bd6f03SKlap-in    }
42*51bd6f03SKlap-in
43*51bd6f03SKlap-in    /**
44*51bd6f03SKlap-in     * no nonexist.changes meta file available
45*51bd6f03SKlap-in     */
46*51bd6f03SKlap-in    function test_changemetadatanotexists() {
47*51bd6f03SKlap-in        $first = 0;
48*51bd6f03SKlap-in        $num   = 1;
49*51bd6f03SKlap-in        $id    = 'nonexist';
50*51bd6f03SKlap-in
51*51bd6f03SKlap-in        $revs         = getRevisions($id, $first, $num, $chunk_size = 8192, $media = false);
52*51bd6f03SKlap-in        $revsexpected = array();
53*51bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
54*51bd6f03SKlap-in    }
55*51bd6f03SKlap-in
56*51bd6f03SKlap-in    /**
57*51bd6f03SKlap-in     * request first recentest revision
58*51bd6f03SKlap-in     * (so skips first line which belongs to the current existing page)
59*51bd6f03SKlap-in     */
60*51bd6f03SKlap-in    function test_requestlastrev() {
61*51bd6f03SKlap-in        $first        = 0;
62*51bd6f03SKlap-in        $num          = 1;
63*51bd6f03SKlap-in        $revsexpected = array($this->revsexpected[1]);
64*51bd6f03SKlap-in
65*51bd6f03SKlap-in        $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false);
66*51bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
67*51bd6f03SKlap-in
68*51bd6f03SKlap-in        $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false);
69*51bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
70*51bd6f03SKlap-in    }
71*51bd6f03SKlap-in
72*51bd6f03SKlap-in    /**
73*51bd6f03SKlap-in     * request first recentest revision
74*51bd6f03SKlap-in     * (so skips first line which belongs to the current existing page)
75*51bd6f03SKlap-in     */
76*51bd6f03SKlap-in    function test_requestonebutlastrev() {
77*51bd6f03SKlap-in        $first        = 1;
78*51bd6f03SKlap-in        $num          = 1;
79*51bd6f03SKlap-in        $revsexpected = array($this->revsexpected[2]);
80*51bd6f03SKlap-in
81*51bd6f03SKlap-in        $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false);
82*51bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
83*51bd6f03SKlap-in
84*51bd6f03SKlap-in        $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false);
85*51bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
86*51bd6f03SKlap-in    }
87*51bd6f03SKlap-in
88*51bd6f03SKlap-in    /**
89*51bd6f03SKlap-in     * request first recentest revision
90*51bd6f03SKlap-in     * (so skips first line of current existing page)
91*51bd6f03SKlap-in     */
92*51bd6f03SKlap-in    function test_requestrevswithoffset() {
93*51bd6f03SKlap-in        $first        = 10;
94*51bd6f03SKlap-in        $num          = 5;
95*51bd6f03SKlap-in        $revsexpected = array_slice($this->revsexpected, $first + 1, $num);
96*51bd6f03SKlap-in
97*51bd6f03SKlap-in        $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false);
98*51bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
99*51bd6f03SKlap-in
100*51bd6f03SKlap-in        $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false);
101*51bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
102*51bd6f03SKlap-in    }
103*51bd6f03SKlap-in
104*51bd6f03SKlap-in    /**
105*51bd6f03SKlap-in     * first = -1 requests recentest logline, without skipping
106*51bd6f03SKlap-in     */
107*51bd6f03SKlap-in    function test_requestrecentestlogline() {
108*51bd6f03SKlap-in        $first        = -1;
109*51bd6f03SKlap-in        $num          = 1;
110*51bd6f03SKlap-in        $revsexpected = array($this->revsexpected[0]);
111*51bd6f03SKlap-in
112*51bd6f03SKlap-in        $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false);
113*51bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
114*51bd6f03SKlap-in
115*51bd6f03SKlap-in        $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false);
116*51bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
117*51bd6f03SKlap-in    }
118*51bd6f03SKlap-in
119*51bd6f03SKlap-in    /**
120*51bd6f03SKlap-in     * chunck size = 0 skips chuncked loading
121*51bd6f03SKlap-in     */
122*51bd6f03SKlap-in    function test_wholefile() {
123*51bd6f03SKlap-in        $first        = 0;
124*51bd6f03SKlap-in        $num          = 1000;
125*51bd6f03SKlap-in        $revsexpected = array_slice($this->revsexpected, 1);
126*51bd6f03SKlap-in
127*51bd6f03SKlap-in        $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 0, $media = false);
128*51bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
129*51bd6f03SKlap-in    }
130*51bd6f03SKlap-in
131*51bd6f03SKlap-in    /**
132*51bd6f03SKlap-in     * Negative range returns no result
133*51bd6f03SKlap-in     */
134*51bd6f03SKlap-in    function test_negativenum() {
135*51bd6f03SKlap-in        $first        = 0;
136*51bd6f03SKlap-in        $num          = -10;
137*51bd6f03SKlap-in        $revsexpected = array();
138*51bd6f03SKlap-in
139*51bd6f03SKlap-in        $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false);
140*51bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
141*51bd6f03SKlap-in
142*51bd6f03SKlap-in        $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false);
143*51bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
144*51bd6f03SKlap-in    }
145*51bd6f03SKlap-in
146*51bd6f03SKlap-in    /**
147*51bd6f03SKlap-in     * Negative range returns no result
148*51bd6f03SKlap-in     */
149*51bd6f03SKlap-in    function test_negativennumoffset() {
150*51bd6f03SKlap-in        $first        = 2;
151*51bd6f03SKlap-in        $num          = -10;
152*51bd6f03SKlap-in        $revsexpected = array();
153*51bd6f03SKlap-in
154*51bd6f03SKlap-in        $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false);
155*51bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
156*51bd6f03SKlap-in
157*51bd6f03SKlap-in        $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false);
158*51bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
159*51bd6f03SKlap-in    }
160*51bd6f03SKlap-in
161*51bd6f03SKlap-in    /**
162*51bd6f03SKlap-in     * zero range returns no result
163*51bd6f03SKlap-in     */
164*51bd6f03SKlap-in    function test_zeronum() {
165*51bd6f03SKlap-in        $first        = 5;
166*51bd6f03SKlap-in        $num          = 0;
167*51bd6f03SKlap-in        $revsexpected = array();
168*51bd6f03SKlap-in
169*51bd6f03SKlap-in        $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false);
170*51bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
171*51bd6f03SKlap-in
172*51bd6f03SKlap-in        $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false);
173*51bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
174*51bd6f03SKlap-in    }
175*51bd6f03SKlap-in
176*51bd6f03SKlap-in    /**
177*51bd6f03SKlap-in     * get oldest revisions
178*51bd6f03SKlap-in     */
179*51bd6f03SKlap-in    function test_requestlargeoffset() {
180*51bd6f03SKlap-in        $first        = 22;
181*51bd6f03SKlap-in        $num          = 50;
182*51bd6f03SKlap-in        $revsexpected = array_slice($this->revsexpected, $first + 1);
183*51bd6f03SKlap-in
184*51bd6f03SKlap-in        $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false);
185*51bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
186*51bd6f03SKlap-in    }
187*51bd6f03SKlap-in
188*51bd6f03SKlap-in    /**
189*51bd6f03SKlap-in     * request with too large offset and range
190*51bd6f03SKlap-in     */
191*51bd6f03SKlap-in    function test_requesttoolargenumberrevs() {
192*51bd6f03SKlap-in        $first        = 50;
193*51bd6f03SKlap-in        $num          = 50;
194*51bd6f03SKlap-in        $revsexpected = array();
195*51bd6f03SKlap-in
196*51bd6f03SKlap-in        $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false);
197*51bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
198*51bd6f03SKlap-in    }
199*51bd6f03SKlap-in
200*51bd6f03SKlap-in}