xref: /plugin/bpmnio/_test/action_plugin_bpmnio_editor.test.php (revision 9ff8d41c7727ff9fa896ee8f49e170f6b8272716)
1242a8e5cSJaap de Haan<?php
2*9ff8d41cSJaap de Haan
3242a8e5cSJaap de Haan/**
4242a8e5cSJaap de Haan * @group plugin_bpmnio
5242a8e5cSJaap de Haan * @group plugins
6242a8e5cSJaap de Haan */
7*9ff8d41cSJaap de Haanclass action_plugin_bpmnio_editor_test extends DokuWikiTest
8*9ff8d41cSJaap de Haan{
9242a8e5cSJaap de Haan    protected $pluginsEnabled = array('bpmnio');
10242a8e5cSJaap de Haan
11242a8e5cSJaap de Haan    /**
12242a8e5cSJaap de Haan     * Test that the editor plugin can be loaded
13242a8e5cSJaap de Haan     */
14*9ff8d41cSJaap de Haan    public function test_plugin_load()
15*9ff8d41cSJaap de Haan    {
16242a8e5cSJaap de Haan        $plugin = plugin_load('action', 'bpmnio_editor');
17242a8e5cSJaap de Haan        $this->assertNotNull($plugin, 'Editor action plugin should be loadable');
18242a8e5cSJaap de Haan    }
19242a8e5cSJaap de Haan
20242a8e5cSJaap de Haan    /**
21242a8e5cSJaap de Haan     * Test section edit button for BPMN target
22242a8e5cSJaap de Haan     */
23*9ff8d41cSJaap de Haan    public function test_section_edit_button_bpmn()
24*9ff8d41cSJaap de Haan    {
25242a8e5cSJaap de Haan        $plugin = plugin_load('action', 'bpmnio_editor');
26242a8e5cSJaap de Haan
27242a8e5cSJaap de Haan        $data = ['target' => 'plugin_bpmnio_bpmn', 'name' => ''];
28242a8e5cSJaap de Haan        $event = new \dokuwiki\Extension\Event('HTML_SECEDIT_BUTTON', $data);
29242a8e5cSJaap de Haan
30242a8e5cSJaap de Haan        $plugin->sectionEditButton($event);
31242a8e5cSJaap de Haan
32242a8e5cSJaap de Haan        $this->assertNotEmpty($data['name'], 'Button name should be set for BPMN target');
33242a8e5cSJaap de Haan    }
34242a8e5cSJaap de Haan
35242a8e5cSJaap de Haan    /**
36242a8e5cSJaap de Haan     * Test section edit button for DMN target
37242a8e5cSJaap de Haan     */
38*9ff8d41cSJaap de Haan    public function test_section_edit_button_dmn()
39*9ff8d41cSJaap de Haan    {
40242a8e5cSJaap de Haan        $plugin = plugin_load('action', 'bpmnio_editor');
41242a8e5cSJaap de Haan
42242a8e5cSJaap de Haan        $data = ['target' => 'plugin_bpmnio_dmn', 'name' => ''];
43242a8e5cSJaap de Haan        $event = new \dokuwiki\Extension\Event('HTML_SECEDIT_BUTTON', $data);
44242a8e5cSJaap de Haan
45242a8e5cSJaap de Haan        $plugin->sectionEditButton($event);
46242a8e5cSJaap de Haan
47242a8e5cSJaap de Haan        $this->assertNotEmpty($data['name'], 'Button name should be set for DMN target');
48242a8e5cSJaap de Haan    }
49242a8e5cSJaap de Haan
50242a8e5cSJaap de Haan    /**
51242a8e5cSJaap de Haan     * Test section edit button ignores non-bpmnio targets
52242a8e5cSJaap de Haan     */
53*9ff8d41cSJaap de Haan    public function test_section_edit_button_ignores_other()
54*9ff8d41cSJaap de Haan    {
55242a8e5cSJaap de Haan        $plugin = plugin_load('action', 'bpmnio_editor');
56242a8e5cSJaap de Haan
57242a8e5cSJaap de Haan        $data = ['target' => 'section', 'name' => ''];
58242a8e5cSJaap de Haan        $event = new \dokuwiki\Extension\Event('HTML_SECEDIT_BUTTON', $data);
59242a8e5cSJaap de Haan
60242a8e5cSJaap de Haan        $plugin->sectionEditButton($event);
61242a8e5cSJaap de Haan
62242a8e5cSJaap de Haan        $this->assertEmpty($data['name'], 'Button name should not be set for non-bpmnio targets');
63242a8e5cSJaap de Haan    }
64242a8e5cSJaap de Haan
65242a8e5cSJaap de Haan    /**
66242a8e5cSJaap de Haan     * Test handlePost does nothing when plugin data not in POST
67242a8e5cSJaap de Haan     */
68*9ff8d41cSJaap de Haan    public function test_handle_post_noop_without_data()
69*9ff8d41cSJaap de Haan    {
70242a8e5cSJaap de Haan        $plugin = plugin_load('action', 'bpmnio_editor');
71242a8e5cSJaap de Haan
72242a8e5cSJaap de Haan        global $TEXT;
73242a8e5cSJaap de Haan        $TEXT = 'original';
74242a8e5cSJaap de Haan        global $INPUT;
75242a8e5cSJaap de Haan
76242a8e5cSJaap de Haan        $data = 'edit';
77242a8e5cSJaap de Haan        $event = new \dokuwiki\Extension\Event('ACTION_ACT_PREPROCESS', $data);
78242a8e5cSJaap de Haan
79242a8e5cSJaap de Haan        $plugin->handlePost($event);
80242a8e5cSJaap de Haan
81242a8e5cSJaap de Haan        $this->assertEquals('original', $TEXT, '$TEXT should not change when plugin data is not posted');
82242a8e5cSJaap de Haan    }
83242a8e5cSJaap de Haan}
84