Esempio n. 1
0
 /**
  * @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);
 }
Esempio n. 4
0
 /**
  * @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);
 }