1*242a8e5cSJaap de Haan<?php 2*242a8e5cSJaap de Haan/** 3*242a8e5cSJaap de Haan * @group plugin_bpmnio 4*242a8e5cSJaap de Haan * @group plugins 5*242a8e5cSJaap de Haan */ 6*242a8e5cSJaap de Haanclass action_plugin_bpmnio_editor_test extends DokuWikiTest { 7*242a8e5cSJaap de Haan 8*242a8e5cSJaap de Haan protected $pluginsEnabled = array('bpmnio'); 9*242a8e5cSJaap de Haan 10*242a8e5cSJaap de Haan /** 11*242a8e5cSJaap de Haan * Test that the editor plugin can be loaded 12*242a8e5cSJaap de Haan */ 13*242a8e5cSJaap de Haan public function test_plugin_load() { 14*242a8e5cSJaap de Haan $plugin = plugin_load('action', 'bpmnio_editor'); 15*242a8e5cSJaap de Haan $this->assertNotNull($plugin, 'Editor action plugin should be loadable'); 16*242a8e5cSJaap de Haan } 17*242a8e5cSJaap de Haan 18*242a8e5cSJaap de Haan /** 19*242a8e5cSJaap de Haan * Test section edit button for BPMN target 20*242a8e5cSJaap de Haan */ 21*242a8e5cSJaap de Haan public function test_section_edit_button_bpmn() { 22*242a8e5cSJaap de Haan $plugin = plugin_load('action', 'bpmnio_editor'); 23*242a8e5cSJaap de Haan 24*242a8e5cSJaap de Haan $data = ['target' => 'plugin_bpmnio_bpmn', 'name' => '']; 25*242a8e5cSJaap de Haan $event = new \dokuwiki\Extension\Event('HTML_SECEDIT_BUTTON', $data); 26*242a8e5cSJaap de Haan 27*242a8e5cSJaap de Haan $plugin->sectionEditButton($event); 28*242a8e5cSJaap de Haan 29*242a8e5cSJaap de Haan $this->assertNotEmpty($data['name'], 'Button name should be set for BPMN target'); 30*242a8e5cSJaap de Haan } 31*242a8e5cSJaap de Haan 32*242a8e5cSJaap de Haan /** 33*242a8e5cSJaap de Haan * Test section edit button for DMN target 34*242a8e5cSJaap de Haan */ 35*242a8e5cSJaap de Haan public function test_section_edit_button_dmn() { 36*242a8e5cSJaap de Haan $plugin = plugin_load('action', 'bpmnio_editor'); 37*242a8e5cSJaap de Haan 38*242a8e5cSJaap de Haan $data = ['target' => 'plugin_bpmnio_dmn', 'name' => '']; 39*242a8e5cSJaap de Haan $event = new \dokuwiki\Extension\Event('HTML_SECEDIT_BUTTON', $data); 40*242a8e5cSJaap de Haan 41*242a8e5cSJaap de Haan $plugin->sectionEditButton($event); 42*242a8e5cSJaap de Haan 43*242a8e5cSJaap de Haan $this->assertNotEmpty($data['name'], 'Button name should be set for DMN target'); 44*242a8e5cSJaap de Haan } 45*242a8e5cSJaap de Haan 46*242a8e5cSJaap de Haan /** 47*242a8e5cSJaap de Haan * Test section edit button ignores non-bpmnio targets 48*242a8e5cSJaap de Haan */ 49*242a8e5cSJaap de Haan public function test_section_edit_button_ignores_other() { 50*242a8e5cSJaap de Haan $plugin = plugin_load('action', 'bpmnio_editor'); 51*242a8e5cSJaap de Haan 52*242a8e5cSJaap de Haan $data = ['target' => 'section', 'name' => '']; 53*242a8e5cSJaap de Haan $event = new \dokuwiki\Extension\Event('HTML_SECEDIT_BUTTON', $data); 54*242a8e5cSJaap de Haan 55*242a8e5cSJaap de Haan $plugin->sectionEditButton($event); 56*242a8e5cSJaap de Haan 57*242a8e5cSJaap de Haan $this->assertEmpty($data['name'], 'Button name should not be set for non-bpmnio targets'); 58*242a8e5cSJaap de Haan } 59*242a8e5cSJaap de Haan 60*242a8e5cSJaap de Haan /** 61*242a8e5cSJaap de Haan * Test handlePost does nothing when plugin data not in POST 62*242a8e5cSJaap de Haan */ 63*242a8e5cSJaap de Haan public function test_handle_post_noop_without_data() { 64*242a8e5cSJaap de Haan $plugin = plugin_load('action', 'bpmnio_editor'); 65*242a8e5cSJaap de Haan 66*242a8e5cSJaap de Haan global $TEXT; 67*242a8e5cSJaap de Haan $TEXT = 'original'; 68*242a8e5cSJaap de Haan global $INPUT; 69*242a8e5cSJaap de Haan 70*242a8e5cSJaap de Haan $data = 'edit'; 71*242a8e5cSJaap de Haan $event = new \dokuwiki\Extension\Event('ACTION_ACT_PREPROCESS', $data); 72*242a8e5cSJaap de Haan 73*242a8e5cSJaap de Haan $plugin->handlePost($event); 74*242a8e5cSJaap de Haan 75*242a8e5cSJaap de Haan $this->assertEquals('original', $TEXT, '$TEXT should not change when plugin data is not posted'); 76*242a8e5cSJaap de Haan } 77*242a8e5cSJaap de Haan} 78