public function testProcessorParentContext() { $handlers = new HandlerContainer(); $handlers->add('outer', function (ProcessedShortcode $s) { $name = $s->getParent() ? $s->getParent()->getName() : 'root'; return $name . '[' . $s->getContent() . ']'; }); $handlers->addAlias('inner', 'outer'); $handlers->addAlias('level', 'outer'); $processor = new Processor(new RegexParser(), $handlers); $text = 'x [outer]a [inner]c [level]x[/level] d[/inner] b[/outer] y'; $result = 'x root[a outer[c inner[x] d] b] y'; $this->assertSame($result, $processor->process($text)); $this->assertSame($result . $result, $processor->process($text . $text)); }