xref: /dokuwiki/_test/tests/inc/changelog_getrevisions.test.php (revision 047bad06fab8157452aa0dd04379a7c507b1f39f)
151bd6f03SKlap-in<?php
251bd6f03SKlap-in/**
351bd6f03SKlap-in * Tests for requesting revisions of a page with getRevisions()
451bd6f03SKlap-in *
551bd6f03SKlap-in * This class uses the files:
651bd6f03SKlap-in * - data/pages/mailinglist.txt
751bd6f03SKlap-in * - data/meta/mailinglist.changes
851bd6f03SKlap-in */
951bd6f03SKlap-inclass changelog_getrevisions_test extends DokuWikiTest {
1051bd6f03SKlap-in
1151bd6f03SKlap-in    /**
1251bd6f03SKlap-in     * $first counts inclusive zero, after the current page
1351bd6f03SKlap-in     */
1451bd6f03SKlap-in    private $revsexpected = array(
1551bd6f03SKlap-in        1374261194, //current page
1651bd6f03SKlap-in        1371579614, 1368622240, // revisions, corresponds to respectively $first = 0 and 1
1751bd6f03SKlap-in        1368622195, 1368622152,
1851bd6f03SKlap-in        1368612599, 1368612506,
1951bd6f03SKlap-in        1368609772, 1368575634,
2051bd6f03SKlap-in        1363436892, 1362527164,
2151bd6f03SKlap-in        1362527046, 1362526861, //10 and 11
2251bd6f03SKlap-in        1362526767, 1362526167,
2351bd6f03SKlap-in        1362526119, 1362526039,
2451bd6f03SKlap-in        1362525926, 1362525899,
2551bd6f03SKlap-in        1362525359, 1362525145,
2651bd6f03SKlap-in        1362524799, 1361901536, //20 and 21
2751bd6f03SKlap-in        1360110636
2851bd6f03SKlap-in    );
2951bd6f03SKlap-in    private $pageid = 'mailinglist';
3051bd6f03SKlap-in
3151bd6f03SKlap-in    function setup() {
3251bd6f03SKlap-in        parent::setup();
3351bd6f03SKlap-in        global $cache_revinfo;
3451bd6f03SKlap-in        $cache =& $cache_revinfo;
3551bd6f03SKlap-in        if(isset($cache['nonexist'])) {
3651bd6f03SKlap-in            unset($cache['nonexist']);
3751bd6f03SKlap-in        }
3851bd6f03SKlap-in        if(isset($cache['mailinglist'])) {
396556cf69SGerrit Uitslag            unset($cache['mailinglist']);
4051bd6f03SKlap-in        }
4151bd6f03SKlap-in    }
4251bd6f03SKlap-in
4351bd6f03SKlap-in    /**
4451bd6f03SKlap-in     * no nonexist.changes meta file available
4551bd6f03SKlap-in     */
4651bd6f03SKlap-in    function test_changemetadatanotexists() {
4751bd6f03SKlap-in        $first = 0;
4851bd6f03SKlap-in        $num   = 1;
4951bd6f03SKlap-in        $id    = 'nonexist';
5051bd6f03SKlap-in
51*047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($id, $chunk_size = 8192);
52*047bad06SGerrit Uitslag        $revs         = $pagelog->getRevisions($first, $num);
5351bd6f03SKlap-in        $revsexpected = array();
5451bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
5551bd6f03SKlap-in    }
5651bd6f03SKlap-in
5751bd6f03SKlap-in    /**
5851bd6f03SKlap-in     * request first recentest revision
5951bd6f03SKlap-in     * (so skips first line which belongs to the current existing page)
6051bd6f03SKlap-in     */
6151bd6f03SKlap-in    function test_requestlastrev() {
6251bd6f03SKlap-in        $first        = 0;
6351bd6f03SKlap-in        $num          = 1;
6451bd6f03SKlap-in        $revsexpected = array($this->revsexpected[1]);
6551bd6f03SKlap-in
66*047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
67*047bad06SGerrit Uitslag        $revs = $pagelog->getRevisions($first, $num);
6851bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
6951bd6f03SKlap-in
70*047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512);
71*047bad06SGerrit Uitslag        $revs = $pagelog->getRevisions($first, $num);
7251bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
7351bd6f03SKlap-in    }
7451bd6f03SKlap-in
7551bd6f03SKlap-in    /**
7651bd6f03SKlap-in     * request first recentest revision
7751bd6f03SKlap-in     * (so skips first line which belongs to the current existing page)
7851bd6f03SKlap-in     */
7951bd6f03SKlap-in    function test_requestonebutlastrev() {
8051bd6f03SKlap-in        $first        = 1;
8151bd6f03SKlap-in        $num          = 1;
8251bd6f03SKlap-in        $revsexpected = array($this->revsexpected[2]);
8351bd6f03SKlap-in
84*047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
85*047bad06SGerrit Uitslag        $revs = $pagelog->getRevisions($first, $num);
8651bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
8751bd6f03SKlap-in
88*047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512);
89*047bad06SGerrit Uitslag        $revs = $pagelog->getRevisions($first, $num);
9051bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
9151bd6f03SKlap-in    }
9251bd6f03SKlap-in
9351bd6f03SKlap-in    /**
9451bd6f03SKlap-in     * request first recentest revision
9551bd6f03SKlap-in     * (so skips first line of current existing page)
9651bd6f03SKlap-in     */
9751bd6f03SKlap-in    function test_requestrevswithoffset() {
9851bd6f03SKlap-in        $first        = 10;
9951bd6f03SKlap-in        $num          = 5;
10051bd6f03SKlap-in        $revsexpected = array_slice($this->revsexpected, $first + 1, $num);
10151bd6f03SKlap-in
102*047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
103*047bad06SGerrit Uitslag        $revs = $pagelog->getRevisions($first, $num);
10451bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
10551bd6f03SKlap-in
106*047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512);
107*047bad06SGerrit Uitslag        $revs = $pagelog->getRevisions($first, $num);
10851bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
10951bd6f03SKlap-in    }
11051bd6f03SKlap-in
11151bd6f03SKlap-in    /**
11251bd6f03SKlap-in     * first = -1 requests recentest logline, without skipping
11351bd6f03SKlap-in     */
11451bd6f03SKlap-in    function test_requestrecentestlogline() {
11551bd6f03SKlap-in        $first        = -1;
11651bd6f03SKlap-in        $num          = 1;
11751bd6f03SKlap-in        $revsexpected = array($this->revsexpected[0]);
11851bd6f03SKlap-in
119*047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
120*047bad06SGerrit Uitslag        $revs = $pagelog->getRevisions($first, $num);
12151bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
12251bd6f03SKlap-in
123*047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512);
124*047bad06SGerrit Uitslag        $revs = $pagelog->getRevisions($first, $num);
12551bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
12651bd6f03SKlap-in    }
12751bd6f03SKlap-in
12851bd6f03SKlap-in    /**
12951bd6f03SKlap-in     * chunck size = 0 skips chuncked loading
13051bd6f03SKlap-in     */
13151bd6f03SKlap-in    function test_wholefile() {
13251bd6f03SKlap-in        $first        = 0;
13351bd6f03SKlap-in        $num          = 1000;
13451bd6f03SKlap-in        $revsexpected = array_slice($this->revsexpected, 1);
13551bd6f03SKlap-in
136*047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 0);
137*047bad06SGerrit Uitslag        $revs = $pagelog->getRevisions($first, $num);
13851bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
13951bd6f03SKlap-in    }
14051bd6f03SKlap-in
14151bd6f03SKlap-in    /**
14251bd6f03SKlap-in     * Negative range returns no result
14351bd6f03SKlap-in     */
14451bd6f03SKlap-in    function test_negativenum() {
14551bd6f03SKlap-in        $first        = 0;
14651bd6f03SKlap-in        $num          = -10;
14751bd6f03SKlap-in        $revsexpected = array();
14851bd6f03SKlap-in
149*047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
150*047bad06SGerrit Uitslag        $revs = $pagelog->getRevisions($first, $num);
15151bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
15251bd6f03SKlap-in
153*047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512);
154*047bad06SGerrit Uitslag        $revs = $pagelog->getRevisions($first, $num);
15551bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
15651bd6f03SKlap-in    }
15751bd6f03SKlap-in
15851bd6f03SKlap-in    /**
15951bd6f03SKlap-in     * Negative range returns no result
16051bd6f03SKlap-in     */
16151bd6f03SKlap-in    function test_negativennumoffset() {
16251bd6f03SKlap-in        $first        = 2;
16351bd6f03SKlap-in        $num          = -10;
16451bd6f03SKlap-in        $revsexpected = array();
16551bd6f03SKlap-in
166*047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
167*047bad06SGerrit Uitslag        $revs = $pagelog->getRevisions($this->pageid, $first, $num, $chunk_size = 8192);
16851bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
16951bd6f03SKlap-in
170*047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512);
171*047bad06SGerrit Uitslag        $revs = $pagelog->getRevisions($first, $num);
17251bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
17351bd6f03SKlap-in    }
17451bd6f03SKlap-in
17551bd6f03SKlap-in    /**
17651bd6f03SKlap-in     * zero range returns no result
17751bd6f03SKlap-in     */
17851bd6f03SKlap-in    function test_zeronum() {
17951bd6f03SKlap-in        $first        = 5;
18051bd6f03SKlap-in        $num          = 0;
18151bd6f03SKlap-in        $revsexpected = array();
18251bd6f03SKlap-in
183*047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
184*047bad06SGerrit Uitslag        $revs = $pagelog->getRevisions($first, $num);
18551bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
18651bd6f03SKlap-in
187*047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512);
188*047bad06SGerrit Uitslag        $revs = $pagelog->getRevisions($first, $num);
18951bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
19051bd6f03SKlap-in    }
19151bd6f03SKlap-in
19251bd6f03SKlap-in    /**
19351bd6f03SKlap-in     * get oldest revisions
19451bd6f03SKlap-in     */
19551bd6f03SKlap-in    function test_requestlargeoffset() {
19651bd6f03SKlap-in        $first        = 22;
19751bd6f03SKlap-in        $num          = 50;
19851bd6f03SKlap-in        $revsexpected = array_slice($this->revsexpected, $first + 1);
19951bd6f03SKlap-in
200*047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
201*047bad06SGerrit Uitslag        $revs = $pagelog->getRevisions($first, $num);
20251bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
20351bd6f03SKlap-in    }
20451bd6f03SKlap-in
20551bd6f03SKlap-in    /**
20651bd6f03SKlap-in     * request with too large offset and range
20751bd6f03SKlap-in     */
20851bd6f03SKlap-in    function test_requesttoolargenumberrevs() {
20951bd6f03SKlap-in        $first        = 50;
21051bd6f03SKlap-in        $num          = 50;
21151bd6f03SKlap-in        $revsexpected = array();
21251bd6f03SKlap-in
213*047bad06SGerrit Uitslag        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
214*047bad06SGerrit Uitslag        $revs = $pagelog->getRevisions($first, $num);
21551bd6f03SKlap-in        $this->assertEquals($revsexpected, $revs);
21651bd6f03SKlap-in    }
21751bd6f03SKlap-in
21851bd6f03SKlap-in}