/** * @since 1.0 * * @param FunctionRunner $runner */ public function registerFunction(FunctionRunner $runner) { foreach ($runner->getDefinition()->getNames() as $name) { $this->parser->setFunctionHook($name, function (Parser $parser, PPFrame $frame, array $arguments) use($runner) { return $runner->run($parser, $arguments, $frame); }, SFH_OBJECT_ARGS); } }
private function getSubPageCountFor($pageName) { $extension = new Extension(Settings::newFromGlobals($GLOBALS)); $functionRunner = new FunctionRunner($extension->getCountHookDefinition(), $extension->getCountHookHandler()); $frame = $this->getMock('PPFrame'); $frame->expects($this->once())->method('expand')->will($this->returnArgument(0)); $result = $functionRunner->run($GLOBALS['wgParser'], array('page' => $pageName), $frame); return reset($result); }
private function getListForRawParams(array $params) { $extension = new Extension(Settings::newFromGlobals($GLOBALS)); $functionRunner = new FunctionRunner($extension->getListHookDefinition(), $extension->getListHookHandler()); $frame = $this->getMock('PPFrame'); $frame->expects($this->exactly(count($params)))->method('expand')->will($this->returnArgument(0)); $result = $functionRunner->run($GLOBALS['wgParser'], $params, $frame); return reset($result); }
/** * @dataProvider optionsProvider */ public function testRun(array $options) { $this->options = $options; $definition = new HookDefinition('someHook'); $this->parser = $this->getMock('Parser'); $inputParams = array('foo=bar', 'baz=42'); $processedParams = new ProcessingResult(array('foo' => new ProcessedParam('foo', 'bar', false))); $paramProcessor = $this->newMockParamProcessor($inputParams, $processedParams); $hookHandler = $this->newMockHookHandler($processedParams); $runner = new FunctionRunner($definition, $hookHandler, $this->options, $paramProcessor); $frame = $this->getMock('PPFrame'); $frame->expects($this->exactly(count($inputParams)))->method('expand')->will($this->returnArgument(0)); $result = $runner->run($this->parser, $inputParams, $frame); $this->assertResultIsValid($result); }