1<?php 2 3namespace dokuwiki\test\Parsing; 4 5use dokuwiki\Parsing\Handler; 6use dokuwiki\Parsing\ParserMode\ModeInterface; 7 8class HandlerTest extends \DokuWikiTest 9{ 10 function testGetModeNameReturnsOriginalName() 11 { 12 $handler = new Handler(); 13 14 // create a simple mode that records what getModeName() returns 15 $mode = new class extends \dokuwiki\Parsing\ParserMode\AbstractMode { 16 public $receivedModeName = ''; 17 public function getSort() { return 0; } 18 public function handle($match, $state, $pos, Handler $handler) 19 { 20 $this->receivedModeName = $handler->getModeName(); 21 return true; 22 } 23 }; 24 25 $handler->registerModeObject('resolved', $mode); 26 27 // simulate dispatch with a remapped name (original differs from resolved) 28 $handler->handleToken('resolved', 'test', DOKU_LEXER_SPECIAL, 0, 'original'); 29 30 $this->assertSame('original', $mode->receivedModeName); 31 } 32 33 function testGetModeNameFallsBackToModeName() 34 { 35 $handler = new Handler(); 36 37 $mode = new class extends \dokuwiki\Parsing\ParserMode\AbstractMode { 38 public $receivedModeName = ''; 39 public function getSort() { return 0; } 40 public function handle($match, $state, $pos, Handler $handler) 41 { 42 $this->receivedModeName = $handler->getModeName(); 43 return true; 44 } 45 }; 46 47 $handler->registerModeObject('mymode', $mode); 48 49 // no original name passed — should fall back to the resolved name 50 $handler->handleToken('mymode', 'test', DOKU_LEXER_SPECIAL, 0); 51 52 $this->assertSame('mymode', $mode->receivedModeName); 53 } 54} 55