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