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())));
     }
 }