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