1023953f0SAndreas Gohr<?php 2023953f0SAndreas Gohr 3023953f0SAndreas Gohrclass common_saveWikiText_test extends DokuWikiTest { 4023953f0SAndreas Gohr 5023953f0SAndreas Gohr /** 6023953f0SAndreas Gohr * Execute a whole bunch of saves on the same page and check the results 7023953f0SAndreas Gohr */ 8023953f0SAndreas Gohr function test_savesequence() { 9023953f0SAndreas Gohr global $REV; 10023953f0SAndreas Gohr 11023953f0SAndreas Gohr $page = 'page'; 12023953f0SAndreas Gohr $file = wikiFN($page); 13023953f0SAndreas Gohr 14023953f0SAndreas Gohr // create the page 15023953f0SAndreas Gohr $this->assertFileNotExists($file); 16023953f0SAndreas Gohr saveWikiText($page, 'teststring', 'first save', false); 17023953f0SAndreas Gohr $this->assertFileExists($file); 18023953f0SAndreas Gohr $lastmod = filemtime($file); 19023953f0SAndreas Gohr 20023953f0SAndreas Gohr $pagelog = new PageChangeLog($page); 21023953f0SAndreas Gohr $revisions = $pagelog->getRevisions(-1, 200); 22023953f0SAndreas Gohr $this->assertEquals(1, count($revisions)); 23023953f0SAndreas Gohr $revinfo = $pagelog->getRevisionInfo($revisions[0]); 24023953f0SAndreas Gohr $this->assertEquals('first save', $revinfo['sum']); 25023953f0SAndreas Gohr $this->assertEquals(DOKU_CHANGE_TYPE_CREATE, $revinfo['type']); 264b5aebc1SGerrit Uitslag $this->assertEquals(10, $revinfo['sizechange']); 27023953f0SAndreas Gohr 28*aaf4f55eSAndreas Gohr $this->waitForTick(true); // wait for new revision ID 29023953f0SAndreas Gohr 30023953f0SAndreas Gohr // save with same content should be ignored 31023953f0SAndreas Gohr saveWikiText($page, 'teststring', 'second save', false); 32023953f0SAndreas Gohr clearstatcache(false, $file); 33023953f0SAndreas Gohr $this->assertEquals($lastmod, filemtime($file)); 34023953f0SAndreas Gohr 35023953f0SAndreas Gohr $pagelog = new PageChangeLog($page); 36023953f0SAndreas Gohr $revisions = $pagelog->getRevisions(-1, 200); 37023953f0SAndreas Gohr $this->assertEquals(1, count($revisions)); 38023953f0SAndreas Gohr 39023953f0SAndreas Gohr // update the page with new text 404b5aebc1SGerrit Uitslag saveWikiText($page, 'teststring2long', 'third save', false); 41023953f0SAndreas Gohr clearstatcache(false, $file); 42023953f0SAndreas Gohr $newmod = filemtime($file); 43023953f0SAndreas Gohr $this->assertNotEquals($lastmod, $newmod); 44023953f0SAndreas Gohr $lastmod = $newmod; 45023953f0SAndreas Gohr 46023953f0SAndreas Gohr $pagelog = new PageChangeLog($page); 47023953f0SAndreas Gohr $revisions = $pagelog->getRevisions(-1, 200); 48023953f0SAndreas Gohr $this->assertEquals(2, count($revisions)); 49023953f0SAndreas Gohr $revinfo = $pagelog->getRevisionInfo($revisions[0]); 50023953f0SAndreas Gohr $this->assertEquals('third save', $revinfo['sum']); 51023953f0SAndreas Gohr $this->assertEquals(DOKU_CHANGE_TYPE_EDIT, $revinfo['type']); 524b5aebc1SGerrit Uitslag $this->assertEquals(5, $revinfo['sizechange']); 53023953f0SAndreas Gohr 54*aaf4f55eSAndreas Gohr $this->waitForTick(); // wait for new revision ID 55023953f0SAndreas Gohr 56023953f0SAndreas Gohr // add a minor edit (unauthenticated) 574b5aebc1SGerrit Uitslag saveWikiText($page, 'teststring3long', 'fourth save', true); 58023953f0SAndreas Gohr clearstatcache(false, $file); 59023953f0SAndreas Gohr $newmod = filemtime($file); 60023953f0SAndreas Gohr $this->assertNotEquals($lastmod, $newmod); 61023953f0SAndreas Gohr $lastmod = $newmod; 62023953f0SAndreas Gohr 63023953f0SAndreas Gohr $pagelog = new PageChangeLog($page); 64023953f0SAndreas Gohr $revisions = $pagelog->getRevisions(-1, 200); 65023953f0SAndreas Gohr $this->assertEquals(3, count($revisions)); 66023953f0SAndreas Gohr $revinfo = $pagelog->getRevisionInfo($revisions[0]); 67023953f0SAndreas Gohr $this->assertEquals('fourth save', $revinfo['sum']); 68023953f0SAndreas Gohr $this->assertEquals(DOKU_CHANGE_TYPE_EDIT, $revinfo['type']); 694b5aebc1SGerrit Uitslag $this->assertEquals(0, $revinfo['sizechange']); 70023953f0SAndreas Gohr 71*aaf4f55eSAndreas Gohr $this->waitForTick(); // wait for new revision ID 72023953f0SAndreas Gohr 73023953f0SAndreas Gohr // add a minor edit (authenticated) 74023953f0SAndreas Gohr $_SERVER['REMOTE_USER'] = 'user'; 75023953f0SAndreas Gohr saveWikiText($page, 'teststring4', 'fifth save', true); 76023953f0SAndreas Gohr clearstatcache(false, $file); 77023953f0SAndreas Gohr $newmod = filemtime($file); 78023953f0SAndreas Gohr $this->assertNotEquals($lastmod, $newmod); 79023953f0SAndreas Gohr $lastmod = $newmod; 80023953f0SAndreas Gohr 81023953f0SAndreas Gohr $pagelog = new PageChangeLog($page); 82023953f0SAndreas Gohr $revisions = $pagelog->getRevisions(-1, 200); 83023953f0SAndreas Gohr $this->assertEquals(4, count($revisions)); 84023953f0SAndreas Gohr $revinfo = $pagelog->getRevisionInfo($revisions[0]); 85023953f0SAndreas Gohr $this->assertEquals('fifth save', $revinfo['sum']); 86023953f0SAndreas Gohr $this->assertEquals(DOKU_CHANGE_TYPE_MINOR_EDIT, $revinfo['type']); 874b5aebc1SGerrit Uitslag $this->assertEquals(-4, $revinfo['sizechange']); 88023953f0SAndreas Gohr 89*aaf4f55eSAndreas Gohr $this->waitForTick(); // wait for new revision ID 90023953f0SAndreas Gohr 91023953f0SAndreas Gohr // delete 92023953f0SAndreas Gohr saveWikiText($page, '', 'sixth save', false); 93023953f0SAndreas Gohr clearstatcache(false, $file); 94023953f0SAndreas Gohr $this->assertFileNotExists($file); 95023953f0SAndreas Gohr 96023953f0SAndreas Gohr $pagelog = new PageChangeLog($page); 97023953f0SAndreas Gohr $revisions = $pagelog->getRevisions(-1, 200); 98023953f0SAndreas Gohr $this->assertEquals(5, count($revisions)); 99023953f0SAndreas Gohr $revinfo = $pagelog->getRevisionInfo($revisions[0]); 100023953f0SAndreas Gohr $this->assertEquals('sixth save', $revinfo['sum']); 101023953f0SAndreas Gohr $this->assertEquals(DOKU_CHANGE_TYPE_DELETE, $revinfo['type']); 1024b5aebc1SGerrit Uitslag $this->assertEquals(-11, $revinfo['sizechange']); 103023953f0SAndreas Gohr 104*aaf4f55eSAndreas Gohr $this->waitForTick(); // wait for new revision ID 105023953f0SAndreas Gohr 106023953f0SAndreas Gohr // restore 107023953f0SAndreas Gohr $REV = $lastmod; 108023953f0SAndreas Gohr saveWikiText($page, 'teststring4', 'seventh save', true); 109023953f0SAndreas Gohr clearstatcache(false, $file); 110023953f0SAndreas Gohr $this->assertFileExists($file); 111023953f0SAndreas Gohr $newmod = filemtime($file); 112023953f0SAndreas Gohr $this->assertNotEquals($lastmod, $newmod); 113023953f0SAndreas Gohr $lastmod = $newmod; 114023953f0SAndreas Gohr 115023953f0SAndreas Gohr $pagelog = new PageChangeLog($page); 116023953f0SAndreas Gohr $revisions = $pagelog->getRevisions(-1, 200); 117023953f0SAndreas Gohr $this->assertEquals(6, count($revisions)); 118023953f0SAndreas Gohr $revinfo = $pagelog->getRevisionInfo($revisions[0]); 119023953f0SAndreas Gohr $this->assertEquals('seventh save', $revinfo['sum']); 120023953f0SAndreas Gohr $this->assertEquals(DOKU_CHANGE_TYPE_REVERT, $revinfo['type']); 121023953f0SAndreas Gohr $this->assertEquals($REV, $revinfo['extra']); 1224b5aebc1SGerrit Uitslag $this->assertEquals(11, $revinfo['sizechange']); 123023953f0SAndreas Gohr $REV = ''; 124023953f0SAndreas Gohr 125*aaf4f55eSAndreas Gohr $this->waitForTick(); // wait for new revision ID 126023953f0SAndreas Gohr 127023953f0SAndreas Gohr // create external edit 128023953f0SAndreas Gohr file_put_contents($file, 'teststring5'); 129023953f0SAndreas Gohr 130*aaf4f55eSAndreas Gohr $this->waitForTick(); // wait for new revision ID 131023953f0SAndreas Gohr 132023953f0SAndreas Gohr // save on top of external edit 133023953f0SAndreas Gohr saveWikiText($page, 'teststring6', 'eigth save', false); 134023953f0SAndreas Gohr clearstatcache(false, $file); 135023953f0SAndreas Gohr $newmod = filemtime($file); 136023953f0SAndreas Gohr $this->assertNotEquals($lastmod, $newmod); 137023953f0SAndreas Gohr $lastmod = $newmod; 138023953f0SAndreas Gohr 139023953f0SAndreas Gohr $pagelog = new PageChangeLog($page); 140023953f0SAndreas Gohr $revisions = $pagelog->getRevisions(-1, 200); 141023953f0SAndreas Gohr $this->assertEquals(8, count($revisions)); // two more revisions now! 142023953f0SAndreas Gohr $revinfo = $pagelog->getRevisionInfo($revisions[0]); 143023953f0SAndreas Gohr $this->assertEquals('eigth save', $revinfo['sum']); 144023953f0SAndreas Gohr $this->assertEquals(DOKU_CHANGE_TYPE_EDIT, $revinfo['type']); 1454b5aebc1SGerrit Uitslag $this->assertEquals(0, $revinfo['sizechange']); 146023953f0SAndreas Gohr 147023953f0SAndreas Gohr $revinfo = $pagelog->getRevisionInfo($revisions[1]); 148023953f0SAndreas Gohr $this->assertEquals('external edit', $revinfo['sum']); 149023953f0SAndreas Gohr $this->assertEquals(DOKU_CHANGE_TYPE_EDIT, $revinfo['type']); 1504b5aebc1SGerrit Uitslag $this->assertEquals(0, $revinfo['sizechange']); 151023953f0SAndreas Gohr 152023953f0SAndreas Gohr } 1536072486dSGerrit Uitslag 1546072486dSGerrit Uitslag /** 1556072486dSGerrit Uitslag * Execute a whole bunch of saves on the same page and check the results 1566072486dSGerrit Uitslag */ 1576072486dSGerrit Uitslag function test_savesequencedeleteexternalrevision() { 1586072486dSGerrit Uitslag $page = 'page2'; 1596072486dSGerrit Uitslag $file = wikiFN($page); 1606072486dSGerrit Uitslag 1616072486dSGerrit Uitslag // create the page 1626072486dSGerrit Uitslag $this->assertFileNotExists($file); 1636072486dSGerrit Uitslag saveWikiText($page, 'teststring', 'first save', false); 1646072486dSGerrit Uitslag $this->assertFileExists($file); 1656072486dSGerrit Uitslag $lastmod = filemtime($file); 1666072486dSGerrit Uitslag 1676072486dSGerrit Uitslag $pagelog = new PageChangeLog($page); 1686072486dSGerrit Uitslag $revisions = $pagelog->getRevisions(-1, 200); 1696072486dSGerrit Uitslag $this->assertEquals(1, count($revisions)); 1706072486dSGerrit Uitslag $revinfo = $pagelog->getRevisionInfo($revisions[0]); 1716072486dSGerrit Uitslag $this->assertEquals('first save', $revinfo['sum']); 1726072486dSGerrit Uitslag $this->assertEquals(DOKU_CHANGE_TYPE_CREATE, $revinfo['type']); 1736072486dSGerrit Uitslag $this->assertEquals(10, $revinfo['sizechange']); 1746072486dSGerrit Uitslag 175*aaf4f55eSAndreas Gohr $this->waitForTick(true); // wait for new revision ID 1766072486dSGerrit Uitslag 1776072486dSGerrit Uitslag // delete 1786072486dSGerrit Uitslag saveWikiText($page, '', 'second save', false); 1796072486dSGerrit Uitslag clearstatcache(false, $file); 1806072486dSGerrit Uitslag $this->assertFileNotExists($file); 1816072486dSGerrit Uitslag 1826072486dSGerrit Uitslag $pagelog = new PageChangeLog($page); 1836072486dSGerrit Uitslag $revisions = $pagelog->getRevisions(-1, 200); 1846072486dSGerrit Uitslag $this->assertEquals(2, count($revisions)); 1856072486dSGerrit Uitslag $revinfo = $pagelog->getRevisionInfo($revisions[0]); 1866072486dSGerrit Uitslag $this->assertEquals('second save', $revinfo['sum']); 1876072486dSGerrit Uitslag $this->assertEquals(DOKU_CHANGE_TYPE_DELETE, $revinfo['type']); 1886072486dSGerrit Uitslag $this->assertEquals(-10, $revinfo['sizechange']); 1896072486dSGerrit Uitslag 190*aaf4f55eSAndreas Gohr $this->waitForTick(); // wait for new revision ID 1916072486dSGerrit Uitslag 1926072486dSGerrit Uitslag // create external edit 1936072486dSGerrit Uitslag file_put_contents($file, 'teststring5'); 1946072486dSGerrit Uitslag 195*aaf4f55eSAndreas Gohr $this->waitForTick(); // wait for new revision ID 1966072486dSGerrit Uitslag 1976072486dSGerrit Uitslag // save on top of external edit 1986072486dSGerrit Uitslag saveWikiText($page, 'teststring6', 'third save', false); 1996072486dSGerrit Uitslag clearstatcache(false, $file); 2006072486dSGerrit Uitslag 2016072486dSGerrit Uitslag $pagelog = new PageChangeLog($page); 2026072486dSGerrit Uitslag $revisions = $pagelog->getRevisions(-1, 200); 2036072486dSGerrit Uitslag $this->assertEquals(4, count($revisions)); // two more revisions now! 2046072486dSGerrit Uitslag $revinfo = $pagelog->getRevisionInfo($revisions[0]); 2056072486dSGerrit Uitslag $this->assertEquals('third save', $revinfo['sum']); 2066072486dSGerrit Uitslag $this->assertEquals(DOKU_CHANGE_TYPE_EDIT, $revinfo['type']); 2076072486dSGerrit Uitslag $this->assertEquals(0, $revinfo['sizechange']); 2086072486dSGerrit Uitslag 2096072486dSGerrit Uitslag $revinfo = $pagelog->getRevisionInfo($revisions[1]); 2106072486dSGerrit Uitslag $this->assertEquals('external edit', $revinfo['sum']); 2116072486dSGerrit Uitslag $this->assertEquals(DOKU_CHANGE_TYPE_EDIT, $revinfo['type']); 2126072486dSGerrit Uitslag $this->assertEquals(11, $revinfo['sizechange']); 2136072486dSGerrit Uitslag 2146072486dSGerrit Uitslag } 2156072486dSGerrit Uitslag 2166072486dSGerrit Uitslag /** 2176072486dSGerrit Uitslag * Execute a whole bunch of saves on the same page and check the results 2186072486dSGerrit Uitslag */ 2196072486dSGerrit Uitslag function test_saveexternalasfirst() { 2206072486dSGerrit Uitslag $page = 'page3'; 2216072486dSGerrit Uitslag $file = wikiFN($page); 2226072486dSGerrit Uitslag 2236072486dSGerrit Uitslag // create the page 2246072486dSGerrit Uitslag $this->assertFileNotExists($file); 2256072486dSGerrit Uitslag 2266072486dSGerrit Uitslag // create external edit 2276072486dSGerrit Uitslag file_put_contents($file, 'teststring'); 2286072486dSGerrit Uitslag 229*aaf4f55eSAndreas Gohr $this->waitForTick(true); // wait for new revision ID 2306072486dSGerrit Uitslag 2316072486dSGerrit Uitslag // save on top of external edit 2326072486dSGerrit Uitslag saveWikiText($page, 'teststring6', 'first save', false); 2336072486dSGerrit Uitslag clearstatcache(false, $file); 2346072486dSGerrit Uitslag 2356072486dSGerrit Uitslag $pagelog = new PageChangeLog($page); 2366072486dSGerrit Uitslag $revisions = $pagelog->getRevisions(-1, 200); 2376072486dSGerrit Uitslag $this->assertEquals(2, count($revisions)); // two more revisions now! 2386072486dSGerrit Uitslag $revinfo = $pagelog->getRevisionInfo($revisions[0]); 2396072486dSGerrit Uitslag $this->assertEquals('first save', $revinfo['sum']); 2406072486dSGerrit Uitslag $this->assertEquals(DOKU_CHANGE_TYPE_EDIT, $revinfo['type']); 2416072486dSGerrit Uitslag $this->assertEquals(1, $revinfo['sizechange']); 2426072486dSGerrit Uitslag 2436072486dSGerrit Uitslag $revinfo = $pagelog->getRevisionInfo($revisions[1]); 2446072486dSGerrit Uitslag $this->assertEquals('external edit', $revinfo['sum']); 2456072486dSGerrit Uitslag $this->assertEquals(DOKU_CHANGE_TYPE_EDIT, $revinfo['type']); 2466072486dSGerrit Uitslag $this->assertEquals(10, $revinfo['sizechange']); 2476072486dSGerrit Uitslag 2486072486dSGerrit Uitslag } 2496072486dSGerrit Uitslag 2506072486dSGerrit Uitslag /** 2516072486dSGerrit Uitslag * Execute a whole bunch of saves on the same page and check the results 2526072486dSGerrit Uitslag */ 2536072486dSGerrit Uitslag function test_savesequenceexternaldeleteedit() { 2546072486dSGerrit Uitslag $page = 'page4'; 2556072486dSGerrit Uitslag $file = wikiFN($page); 2566072486dSGerrit Uitslag 2576072486dSGerrit Uitslag // create the page 2586072486dSGerrit Uitslag $this->assertFileNotExists($file); 2596072486dSGerrit Uitslag saveWikiText($page, 'teststring', 'first save', false); 2606072486dSGerrit Uitslag $this->assertFileExists($file); 2616072486dSGerrit Uitslag $lastmod = filemtime($file); 2626072486dSGerrit Uitslag 2636072486dSGerrit Uitslag $pagelog = new PageChangeLog($page); 2646072486dSGerrit Uitslag $revisions = $pagelog->getRevisions(-1, 200); 2656072486dSGerrit Uitslag $this->assertEquals(1, count($revisions)); 2666072486dSGerrit Uitslag $revinfo = $pagelog->getRevisionInfo($revisions[0]); 2676072486dSGerrit Uitslag $this->assertEquals('first save', $revinfo['sum']); 2686072486dSGerrit Uitslag $this->assertEquals(DOKU_CHANGE_TYPE_CREATE, $revinfo['type']); 2696072486dSGerrit Uitslag $this->assertEquals(10, $revinfo['sizechange']); 2706072486dSGerrit Uitslag 271*aaf4f55eSAndreas Gohr $this->waitForTick(true); // wait for new revision ID 2726072486dSGerrit Uitslag 2736072486dSGerrit Uitslag 2746072486dSGerrit Uitslag // create external delete 2756072486dSGerrit Uitslag unlink($file); 2766072486dSGerrit Uitslag clearstatcache(false, $file); 2776072486dSGerrit Uitslag 278*aaf4f55eSAndreas Gohr $this->waitForTick(); // wait for new revision ID 2796072486dSGerrit Uitslag 2806072486dSGerrit Uitslag // save on top of external delete. save is seen as creation 2816072486dSGerrit Uitslag saveWikiText($page, 'teststring6', 'second save', false); 2826072486dSGerrit Uitslag clearstatcache(false, $file); 2836072486dSGerrit Uitslag 2846072486dSGerrit Uitslag $pagelog = new PageChangeLog($page); 2856072486dSGerrit Uitslag $revisions = $pagelog->getRevisions(-1, 200); 2866072486dSGerrit Uitslag $this->assertEquals(2, count($revisions)); // one more revisions now! 2876072486dSGerrit Uitslag $revinfo = $pagelog->getRevisionInfo($revisions[0]); 2886072486dSGerrit Uitslag $this->assertEquals('second save', $revinfo['sum']); 2896072486dSGerrit Uitslag $this->assertEquals(DOKU_CHANGE_TYPE_CREATE, $revinfo['type']); 2906072486dSGerrit Uitslag $this->assertEquals(11, $revinfo['sizechange']); 2916072486dSGerrit Uitslag 2926072486dSGerrit Uitslag $revinfo = $pagelog->getRevisionInfo($revisions[1]); 2936072486dSGerrit Uitslag $this->assertEquals('first save', $revinfo['sum']); 2946072486dSGerrit Uitslag 2956072486dSGerrit Uitslag } 2966072486dSGerrit Uitslag 2976072486dSGerrit Uitslag /** 2986072486dSGerrit Uitslag * Execute a whole bunch of saves on the same page and check the results 2996072486dSGerrit Uitslag */ 3006072486dSGerrit Uitslag function test_savesequencerevert() { 3016072486dSGerrit Uitslag global $REV; 3026072486dSGerrit Uitslag 3036072486dSGerrit Uitslag $page = 'page5'; 3046072486dSGerrit Uitslag $file = wikiFN($page); 3056072486dSGerrit Uitslag 3066072486dSGerrit Uitslag // create the page 3076072486dSGerrit Uitslag $this->assertFileNotExists($file); 3086072486dSGerrit Uitslag saveWikiText($page, 'teststring', 'first save', false); 3096072486dSGerrit Uitslag $this->assertFileExists($file); 3106072486dSGerrit Uitslag $lastmod = filemtime($file); 3116072486dSGerrit Uitslag 3126072486dSGerrit Uitslag $pagelog = new PageChangeLog($page); 3136072486dSGerrit Uitslag $revisions = $pagelog->getRevisions(-1, 200); 3146072486dSGerrit Uitslag $this->assertEquals(1, count($revisions)); 3156072486dSGerrit Uitslag $revinfo = $pagelog->getRevisionInfo($revisions[0]); 3166072486dSGerrit Uitslag $this->assertEquals('first save', $revinfo['sum']); 3176072486dSGerrit Uitslag $this->assertEquals(DOKU_CHANGE_TYPE_CREATE, $revinfo['type']); 3186072486dSGerrit Uitslag $this->assertEquals(10, $revinfo['sizechange']); 3196072486dSGerrit Uitslag 320*aaf4f55eSAndreas Gohr $this->waitForTick(true); // wait for new revision ID 3216072486dSGerrit Uitslag 3226072486dSGerrit Uitslag // save with same content should be ignored 3236072486dSGerrit Uitslag saveWikiText($page, 'teststring', 'second save', false); 3246072486dSGerrit Uitslag clearstatcache(false, $file); 3256072486dSGerrit Uitslag $this->assertEquals($lastmod, filemtime($file)); 3266072486dSGerrit Uitslag 3276072486dSGerrit Uitslag $pagelog = new PageChangeLog($page); 3286072486dSGerrit Uitslag $revisions = $pagelog->getRevisions(-1, 200); 3296072486dSGerrit Uitslag $this->assertEquals(1, count($revisions)); 3306072486dSGerrit Uitslag 3316072486dSGerrit Uitslag // update the page with new text 3326072486dSGerrit Uitslag saveWikiText($page, 'teststring2long', 'third save', false); 3336072486dSGerrit Uitslag clearstatcache(false, $file); 3346072486dSGerrit Uitslag $newmod = filemtime($file); 3356072486dSGerrit Uitslag $this->assertNotEquals($lastmod, $newmod); 3366072486dSGerrit Uitslag $lastmod = $newmod; 3376072486dSGerrit Uitslag $revertrev = $newmod; 3386072486dSGerrit Uitslag 3396072486dSGerrit Uitslag $pagelog = new PageChangeLog($page); 3406072486dSGerrit Uitslag $revisions = $pagelog->getRevisions(-1, 200); 3416072486dSGerrit Uitslag $this->assertEquals(2, count($revisions)); 3426072486dSGerrit Uitslag $revinfo = $pagelog->getRevisionInfo($revisions[0]); 3436072486dSGerrit Uitslag $this->assertEquals('third save', $revinfo['sum']); 3446072486dSGerrit Uitslag $this->assertEquals(DOKU_CHANGE_TYPE_EDIT, $revinfo['type']); 3456072486dSGerrit Uitslag $this->assertEquals(5, $revinfo['sizechange']); 3466072486dSGerrit Uitslag 347*aaf4f55eSAndreas Gohr $this->waitForTick(); // wait for new revision ID 3486072486dSGerrit Uitslag 3496072486dSGerrit Uitslag // add a minor edit (unauthenticated) 3506072486dSGerrit Uitslag saveWikiText($page, 'teststring3long', 'fourth save', true); 3516072486dSGerrit Uitslag clearstatcache(false, $file); 3526072486dSGerrit Uitslag $newmod = filemtime($file); 3536072486dSGerrit Uitslag $this->assertNotEquals($lastmod, $newmod); 3546072486dSGerrit Uitslag $lastmod = $newmod; 3556072486dSGerrit Uitslag 3566072486dSGerrit Uitslag $pagelog = new PageChangeLog($page); 3576072486dSGerrit Uitslag $revisions = $pagelog->getRevisions(-1, 200); 3586072486dSGerrit Uitslag $this->assertEquals(3, count($revisions)); 3596072486dSGerrit Uitslag $revinfo = $pagelog->getRevisionInfo($revisions[0]); 3606072486dSGerrit Uitslag $this->assertEquals('fourth save', $revinfo['sum']); 3616072486dSGerrit Uitslag $this->assertEquals(DOKU_CHANGE_TYPE_EDIT, $revinfo['type']); 3626072486dSGerrit Uitslag $this->assertEquals(0, $revinfo['sizechange']); 3636072486dSGerrit Uitslag 364*aaf4f55eSAndreas Gohr $this->waitForTick(); // wait for new revision ID 3656072486dSGerrit Uitslag 3666072486dSGerrit Uitslag // add a minor edit (authenticated) 3676072486dSGerrit Uitslag $_SERVER['REMOTE_USER'] = 'user'; 3686072486dSGerrit Uitslag saveWikiText($page, 'teststring4', 'fifth save', true); 3696072486dSGerrit Uitslag clearstatcache(false, $file); 3706072486dSGerrit Uitslag $newmod = filemtime($file); 3716072486dSGerrit Uitslag $this->assertNotEquals($lastmod, $newmod); 3726072486dSGerrit Uitslag $lastmod = $newmod; 3736072486dSGerrit Uitslag 3746072486dSGerrit Uitslag $pagelog = new PageChangeLog($page); 3756072486dSGerrit Uitslag $revisions = $pagelog->getRevisions(-1, 200); 3766072486dSGerrit Uitslag $this->assertEquals(4, count($revisions)); 3776072486dSGerrit Uitslag $revinfo = $pagelog->getRevisionInfo($revisions[0]); 3786072486dSGerrit Uitslag $this->assertEquals('fifth save', $revinfo['sum']); 3796072486dSGerrit Uitslag $this->assertEquals(DOKU_CHANGE_TYPE_MINOR_EDIT, $revinfo['type']); 3806072486dSGerrit Uitslag $this->assertEquals(-4, $revinfo['sizechange']); 3816072486dSGerrit Uitslag 382*aaf4f55eSAndreas Gohr $this->waitForTick(); // wait for new revision ID 3836072486dSGerrit Uitslag 3846072486dSGerrit Uitslag // restore 3856072486dSGerrit Uitslag $REV = $revertrev; 3866072486dSGerrit Uitslag saveWikiText($page, 'teststring2long', 'sixth save', true); 3876072486dSGerrit Uitslag clearstatcache(false, $file); 3886072486dSGerrit Uitslag $this->assertFileExists($file); 3896072486dSGerrit Uitslag $newmod = filemtime($file); 3906072486dSGerrit Uitslag $this->assertNotEquals($lastmod, $newmod); 3916072486dSGerrit Uitslag 3926072486dSGerrit Uitslag $pagelog = new PageChangeLog($page); 3936072486dSGerrit Uitslag $revisions = $pagelog->getRevisions(-1, 200); 3946072486dSGerrit Uitslag $this->assertEquals(5, count($revisions)); 3956072486dSGerrit Uitslag $revinfo = $pagelog->getRevisionInfo($revisions[0]); 3966072486dSGerrit Uitslag $this->assertEquals('sixth save', $revinfo['sum']); 3976072486dSGerrit Uitslag $this->assertEquals(DOKU_CHANGE_TYPE_REVERT, $revinfo['type']); 3986072486dSGerrit Uitslag $this->assertEquals($REV, $revinfo['extra']); 3996072486dSGerrit Uitslag $this->assertEquals(4, $revinfo['sizechange']); 4006072486dSGerrit Uitslag $REV = ''; 4016072486dSGerrit Uitslag } 4026072486dSGerrit Uitslag 403023953f0SAndreas Gohr} 404