xref: /dokuwiki/_test/tests/inc/changelog_getlastrevisionat.test.php (revision aaaabded3c5cdb26721b979e50ed6b3824f535b1)
14eb5e174Slisps<?php
24eb5e174Slisps
34eb5e174Slisps/**
44eb5e174Slisps * Tests for requesting revisioninfo of a revision of a page with getRevisionInfo()
54eb5e174Slisps *
64eb5e174Slisps * This class uses the files:
74eb5e174Slisps * - data/pages/mailinglist.txt
84eb5e174Slisps * - data/meta/mailinglist.changes
94eb5e174Slisps */
1081e7bffeSlispsclass changelog_getlastrevisionat_test extends DokuWikiTest {
114eb5e174Slisps
124eb5e174Slisps    private $pageid = 'mailinglist';
134eb5e174Slisps
144eb5e174Slisps    function setup() {
154eb5e174Slisps        parent::setup();
164eb5e174Slisps        global $cache_revinfo;
174eb5e174Slisps        $cache =& $cache_revinfo;
184eb5e174Slisps        if(isset($cache['nonexist'])) {
194eb5e174Slisps            unset($cache['nonexist']);
204eb5e174Slisps        }
214eb5e174Slisps        if(isset($cache['mailinglist'])) {
224eb5e174Slisps            unset($cache['mailinglist']);
234eb5e174Slisps        }
244eb5e174Slisps    }
254eb5e174Slisps
264eb5e174Slisps
274eb5e174Slisps    /**
284eb5e174Slisps     * no nonexist.changes meta file available
294eb5e174Slisps     */
304eb5e174Slisps    function test_changemetadatanotexists() {
314eb5e174Slisps        $rev = 1362525899;
324eb5e174Slisps        $id = 'nonexist';
334eb5e174Slisps        $revsexpected = false;
344eb5e174Slisps
354eb5e174Slisps        $pagelog = new PageChangeLog($id, $chunk_size = 8192);
364eb5e174Slisps        $revs = $pagelog->getLastRevisionAt($rev);
374eb5e174Slisps        $this->assertEquals($revsexpected, $revs);
384eb5e174Slisps    }
394eb5e174Slisps
404eb5e174Slisps    /**
414eb5e174Slisps     * start at exact current revision of mailinglist page
424eb5e174Slisps     *
434eb5e174Slisps     */
444eb5e174Slisps    function test_startatexactcurrentrev() {
454eb5e174Slisps        $rev = 1385051947;
464eb5e174Slisps        $revsexpected = '';
474eb5e174Slisps
484eb5e174Slisps        //set a known timestamp
494eb5e174Slisps        touch(wikiFN($this->pageid), $rev);
504eb5e174Slisps
514eb5e174Slisps        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
524eb5e174Slisps        $revs = $pagelog->getLastRevisionAt($rev);
534eb5e174Slisps        $this->assertEquals($revsexpected, $revs);
544eb5e174Slisps
554eb5e174Slisps    }
564eb5e174Slisps
574eb5e174Slisps    /**
584eb5e174Slisps     * test a future revision
594eb5e174Slisps     *
604eb5e174Slisps     */
614eb5e174Slisps    function test_futurerev() {
624eb5e174Slisps        $rev = 1385051947;
634eb5e174Slisps        $revsexpected = '';
644eb5e174Slisps
654eb5e174Slisps        //set a known timestamp
664eb5e174Slisps        touch(wikiFN($this->pageid), $rev);
674eb5e174Slisps
684eb5e174Slisps        $rev +=1;
694eb5e174Slisps
704eb5e174Slisps        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
714eb5e174Slisps        $revs = $pagelog->getLastRevisionAt($rev);
724eb5e174Slisps        $this->assertEquals($revsexpected, $revs);
734eb5e174Slisps
744eb5e174Slisps    }
754eb5e174Slisps
764eb5e174Slisps    /**
774eb5e174Slisps     * start at exact last revision of mailinglist page
784eb5e174Slisps     *
794eb5e174Slisps     */
804eb5e174Slisps    function test_exactlastrev() {
814eb5e174Slisps        $rev = 1360110636;
824eb5e174Slisps        $revsexpected = 1360110636;
834eb5e174Slisps
844eb5e174Slisps        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
854eb5e174Slisps        $revs = $pagelog->getLastRevisionAt($rev);
864eb5e174Slisps        $this->assertEquals($revsexpected, $revs);
874eb5e174Slisps    }
884eb5e174Slisps
894eb5e174Slisps
904eb5e174Slisps    /**
914eb5e174Slisps     * Request not existing revision
924eb5e174Slisps     *
934eb5e174Slisps     */
944eb5e174Slisps    function test_olderrev() {
954eb5e174Slisps        $rev = 1;
964eb5e174Slisps        $revexpected = false;
974eb5e174Slisps
984eb5e174Slisps        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
994eb5e174Slisps        $revfound = $pagelog->getLastRevisionAt($rev);
1004eb5e174Slisps        $this->assertEquals($revexpected, $revfound);
1014eb5e174Slisps    }
1024eb5e174Slisps
1034eb5e174Slisps    /**
1044eb5e174Slisps     * Start at non existing revision somewhere between existing revisions
1054eb5e174Slisps     */
1064eb5e174Slisps    function test_notexistingrev() {
1074eb5e174Slisps        $rev = 1362525890;
1084eb5e174Slisps        $revexpected = 1362525359;
1094eb5e174Slisps
1104eb5e174Slisps        $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192);
1114eb5e174Slisps        $revfound = $pagelog->getLastRevisionAt($rev);
1124eb5e174Slisps        $this->assertEquals($revexpected, $revfound);
1134eb5e174Slisps    }
1144eb5e174Slisps
1154eb5e174Slisps    /**
1164eb5e174Slisps     * request nonexisting page
1174eb5e174Slisps     *
1184eb5e174Slisps     */
1194eb5e174Slisps    function test_notexistingpage() {
1204eb5e174Slisps        $rev = 1385051947;
1214eb5e174Slisps        $currentexpected = false;
1224eb5e174Slisps
1234eb5e174Slisps        $pagelog = new PageChangeLog('nonexistingpage', $chunk_size = 8192);
1244eb5e174Slisps        $current = $pagelog->getLastRevisionAt($rev);
1254eb5e174Slisps        $this->assertEquals($currentexpected, $current);
1264eb5e174Slisps    }
127*aaaabdedSlisps
128*aaaabdedSlisps    /**
129*aaaabdedSlisps     * test get correct revision on deleted media
130*aaaabdedSlisps     *
131*aaaabdedSlisps     */
132*aaaabdedSlisps    function test_deletedmedia() {
133*aaaabdedSlisps        $image = 'wiki:kind_zu_katze.png';
134*aaaabdedSlisps        $revexpected = @filemtime(mediaFn($image));
135*aaaabdedSlisps        $rev = $revexpected + 10;
136*aaaabdedSlisps
137*aaaabdedSlisps        media_delete('wiki:kind_zu_katze.png', 0);
138*aaaabdedSlisps
139*aaaabdedSlisps        $medialog = new MediaChangelog($image);
140*aaaabdedSlisps        $current = $medialog->getLastRevisionAt($rev);
141*aaaabdedSlisps        $this->assertEquals($revexpected, $current);
142*aaaabdedSlisps
143*aaaabdedSlisps        media_restore($image, $revexpected, AUTH_UPLOAD);
144*aaaabdedSlisps    }
1454eb5e174Slisps}
146