public function testHandle()
 {
     $parser = new Parser();
     $parser->startExternalParse(null, new ParserOptions(), Parser::OT_HTML);
     NoLangLinkHandler::handle($parser, '*');
     $actual = NoLangLinkHandler::getNoExternalLangLinks($parser->getOutput());
     $this->assertEquals(array('*'), $actual);
 }
 /**
  * Get the noexternallanglinks page property from the ParserOutput,
  * which is set by the {{#noexternallanglinks}} parser function.
  *
  * @see NoLangLinkHandler::getNoExternalLangLinks
  *
  * @param ParserOutput $out
  *
  * @return string[] A list of language codes, identifying which repository links to ignore.
  *         Empty if {{#noexternallanglinks}} was not used on the page.
  */
 public function getNoExternalLangLinks(ParserOutput $out)
 {
     return NoLangLinkHandler::getNoExternalLangLinks($out);
 }
 /**
  * Add output page property if repo links are suppressed, and property for item id
  *
  * @param OutputPage &$out
  * @param ParserOutput $parserOutput
  *
  * @return bool
  */
 public function doOutputPageParserOutput(OutputPage &$out, ParserOutput $parserOutput)
 {
     if (!$this->namespaceChecker->isWikibaseEnabled($out->getTitle()->getNamespace())) {
         // shorten out
         return true;
     }
     $noExternalLangLinks = NoLangLinkHandler::getNoExternalLangLinks($parserOutput);
     if (!empty($noExternalLangLinks)) {
         $out->setProperty('noexternallanglinks', $noExternalLangLinks);
     }
     $itemId = $parserOutput->getProperty('wikibase_item');
     if ($itemId !== false) {
         $out->setProperty('wikibase_item', $itemId);
     }
     $otherProjects = $parserOutput->getExtensionData('wikibase-otherprojects-sidebar');
     if ($otherProjects !== null) {
         $out->setProperty('wikibase-otherprojects-sidebar', $otherProjects);
     }
     $badges = $parserOutput->getExtensionData('wikibase_badges');
     if ($badges !== null) {
         $out->setProperty('wikibase_badges', $badges);
     }
     return true;
 }