/** * @dataProvider templateDataProvider */ public function testPreprocessTemplateAndParse($namespace, array $settings, $text, $tmplValue, array $expected) { $parserOutput = new ParserOutput(); $title = Title::newFromText(__METHOD__, $namespace); $outputText = $this->runTemplateTransclusion($title, $text, $tmplValue); $this->applicationFactory->registerObject('Settings', Settings::newFromArray($settings)); $parserData = new ParserData($title, $parserOutput); $instance = new InTextAnnotationParser($parserData, new MagicWordsFinder(), new RedirectTargetFinder()); $instance->parse($outputText); $this->assertContains($expected['resultText'], $outputText); $parserData = new ParserData($title, $parserOutput); $this->assertInstanceOf('\\SMW\\SemanticData', $parserData->getSemanticData()); $this->semanticDataValidator->assertThatPropertiesAreSet($expected, $parserData->getSemanticData()); }
public function testRedirectAnnotationFromInjectedRedirectTarget() { $namespace = NS_MAIN; $text = ''; $redirectTarget = Title::newFromText('Foo'); $expected = array('propertyCount' => 1, 'property' => new DIProperty('_REDI'), 'propertyValues' => array('Foo')); $settings = array('smwgNamespacesWithSemanticLinks' => array($namespace => true), 'smwgLinksInValues' => false, 'smwgInlineErrors' => true); $this->testEnvironment->registerObject('Settings', Settings::newFromArray($settings)); $parserData = new ParserData(Title::newFromText(__METHOD__, $namespace), new ParserOutput()); $redirectTargetFinder = new RedirectTargetFinder(); $instance = new InTextAnnotationParser($parserData, new MagicWordsFinder(), $redirectTargetFinder); $instance->setRedirectTarget($redirectTarget); $instance->parse($text); $this->semanticDataValidator->assertThatPropertiesAreSet($expected, $parserData->getSemanticData()); }