xref: /plugin/structpublish/_test/revision.test.php (revision b5c0ae7febc990942ee75e92fdd8f62e4ac0b1c6)
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