1*364fb00aSAnna Dabrowska<?php 2*364fb00aSAnna Dabrowska 3*364fb00aSAnna Dabrowskause dokuwiki\plugin\structpublish\meta\Constants; 4*364fb00aSAnna Dabrowskause dokuwiki\plugin\structpublish\meta\Revision; 5*364fb00aSAnna Dabrowska 6*364fb00aSAnna Dabrowska/** 7*364fb00aSAnna Dabrowska * Revision tests for the structpublish plugin 8*364fb00aSAnna Dabrowska * 9*364fb00aSAnna Dabrowska * @group plugin_structpublishh 10*364fb00aSAnna Dabrowska * @group plugins 11*364fb00aSAnna Dabrowska */ 12*364fb00aSAnna Dabrowskaclass revision_plugin_structpublish_test extends DokuWikiTest 13*364fb00aSAnna Dabrowska{ 14*364fb00aSAnna Dabrowska /** @inheritdoc **/ 15*364fb00aSAnna Dabrowska protected $pluginsEnabled = ['sqlite', 'struct', 'structpublish']; 16*364fb00aSAnna Dabrowska 17*364fb00aSAnna Dabrowska /** 18*364fb00aSAnna Dabrowska * @var \helper_plugin_sqlite 19*364fb00aSAnna Dabrowska */ 20*364fb00aSAnna Dabrowska protected $sqlite; 21*364fb00aSAnna Dabrowska 22*364fb00aSAnna Dabrowska public function setUp(): void 23*364fb00aSAnna Dabrowska { 24*364fb00aSAnna Dabrowska parent::setUp(); 25*364fb00aSAnna Dabrowska 26*364fb00aSAnna Dabrowska global $USERINFO; 27*364fb00aSAnna Dabrowska 28*364fb00aSAnna Dabrowska // user 29*364fb00aSAnna Dabrowska $_SERVER['REMOTE_USER'] = 'publisher'; 30*364fb00aSAnna Dabrowska $USERINFO['grps'] = ['user, approver, publisher']; 31*364fb00aSAnna Dabrowska 32*364fb00aSAnna Dabrowska // our database migrations 33*364fb00aSAnna Dabrowska /** @var action_plugin_structpublish_migration $migration */ 34*364fb00aSAnna Dabrowska $migration = plugin_load('action', 'structpublish_migration'); 35*364fb00aSAnna Dabrowska $data = ''; 36*364fb00aSAnna Dabrowska $migration->handleMigrations(new Doku_Event('DUMMY_EVENT', $data)); 37*364fb00aSAnna Dabrowska 38*364fb00aSAnna Dabrowska // assignments 39*364fb00aSAnna Dabrowska $assignments = \dokuwiki\plugin\structpublish\meta\Assignments::getInstance(true); 40*364fb00aSAnna Dabrowska $this->sqlite = $assignments->getSqlite(); 41*364fb00aSAnna Dabrowska $assignments->addPattern('public', '@approver', 'approve'); 42*364fb00aSAnna Dabrowska $assignments->addPattern('public', '@publisher', 'publish'); 43*364fb00aSAnna Dabrowska } 44*364fb00aSAnna Dabrowska 45*364fb00aSAnna Dabrowska /** 46*364fb00aSAnna Dabrowska * Test draft creation 47*364fb00aSAnna Dabrowska * 48*364fb00aSAnna Dabrowska * @return void 49*364fb00aSAnna Dabrowska */ 50*364fb00aSAnna Dabrowska public function test_create_draft() 51*364fb00aSAnna Dabrowska { 52*364fb00aSAnna Dabrowska $pid = 'public:structpublish'; 53*364fb00aSAnna Dabrowska $text = 'lorem ipsum'; 54*364fb00aSAnna Dabrowska saveWikiText($pid, $text, 'Save first draft'); 55*364fb00aSAnna Dabrowska 56*364fb00aSAnna Dabrowska $revision = new Revision($this->sqlite, $pid, time()); 57*364fb00aSAnna Dabrowska 58*364fb00aSAnna Dabrowska $user = $revision->getUser(); 59*364fb00aSAnna Dabrowska $status = $revision->getStatus(); 60*364fb00aSAnna Dabrowska $version = $revision->getVersion(); 61*364fb00aSAnna Dabrowska 62*364fb00aSAnna Dabrowska $this->assertEquals('', $user); 63*364fb00aSAnna Dabrowska $this->assertEquals(Constants::STATUS_DRAFT, $status); 64*364fb00aSAnna Dabrowska $this->assertEquals('', $version); 65*364fb00aSAnna Dabrowska } 66*364fb00aSAnna Dabrowska} 67