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