assertNotNull($plugin, 'Toolbar action plugin should be loadable'); } /** * Test that the toolbar handler adds the picker to event data */ public function test_toolbar_handler_adds_picker() { $plugin = plugin_load('action', 'bpmnio_toolbar'); $data = []; $event = new \dokuwiki\Extension\Event('TOOLBAR_DEFINE', $data); $plugin->handleToolbar($event); $this->assertCount(1, $data, 'Should add one toolbar entry'); $picker = $data[0]; $this->assertEquals('picker', $picker['type']); $this->assertArrayHasKey('list', $picker); $this->assertCount(2, $picker['list'], 'Picker should have BPMN and DMN entries'); // Check BPMN entry $bpmn = $picker['list'][0]; $this->assertEquals('format', $bpmn['type']); $this->assertNotEmpty($bpmn['open'], 'BPMN open template should not be empty'); $this->assertNotEmpty($bpmn['close'], 'BPMN close template should not be empty'); $this->assertStringContainsString('bpmnio', $bpmn['open']); // Check DMN entry $dmn = $picker['list'][1]; $this->assertEquals('format', $dmn['type']); $this->assertNotEmpty($dmn['open'], 'DMN open template should not be empty'); $this->assertNotEmpty($dmn['close'], 'DMN close template should not be empty'); $this->assertStringContainsString('bpmnio', $dmn['open']); } /** * Test that toolbar icons reference the correct directory */ public function test_toolbar_icon_paths() { $plugin = plugin_load('action', 'bpmnio_toolbar'); $data = []; $event = new \dokuwiki\Extension\Event('TOOLBAR_DEFINE', $data); $plugin->handleToolbar($event); $picker = $data[0]; $this->assertStringContainsString('bpmnio/images/toolbar/', $picker['icon']); $this->assertStringContainsString('bpmnio/images/toolbar/', $picker['list'][0]['icon']); $this->assertStringContainsString('bpmnio/images/toolbar/', $picker['list'][1]['icon']); } /** * Test that BPMN template contains valid XML structure */ public function test_bpmn_template_content() { $plugin = plugin_load('action', 'bpmnio_toolbar'); $data = []; $event = new \dokuwiki\Extension\Event('TOOLBAR_DEFINE', $data); $plugin->handleToolbar($event); $bpmn_open = $data[0]['list'][0]['open']; $bpmn_close = $data[0]['list'][0]['close']; $this->assertStringContainsString('', $bpmn_open); $this->assertStringContainsString('', $bpmn_close); } /** * Test that DMN template contains valid XML structure */ public function test_dmn_template_content() { $plugin = plugin_load('action', 'bpmnio_toolbar'); $data = []; $event = new \dokuwiki\Extension\Event('TOOLBAR_DEFINE', $data); $plugin->handleToolbar($event); $dmn_open = $data[0]['list'][1]['open']; $dmn_close = $data[0]['list'][1]['close']; $this->assertStringContainsString('', $dmn_open); $this->assertStringContainsString('', $dmn_close); } }