public function testInject() { $injector = new TextInjector(); $text = 'Good ' . $injector->newMarker('morning') . ' to ' . $injector->newMarker('you', 'all') . '!'; $expected = 'Good morning to you all!'; $actual = $injector->inject($text, function () { $args = func_get_args(); return implode(' ', $args); }); $this->assertEquals($expected, $actual); }
/** * @param OutputPage $out * @param string &$html * * @return bool */ public function doOutputPageBeforeHTML(OutputPage $out, &$html) { $placeholders = $out->getProperty('wikibase-view-chunks'); if (!empty($placeholders)) { $injector = new TextInjector($placeholders); $expander = $this->getEntityViewPlaceholderExpander($out); $html = $injector->inject($html, array($expander, 'getHtmlForPlaceholder')); $out->addJsConfigVars('wbUserSpecifiedLanguages', array_values(array_intersect($this->userLanguageLookup->getUserSpecifiedLanguages($out->getUser()), $this->termsLanguages->getLanguages()))); } }