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