public function testOnOutputPageParserOutput()
 {
     $altLinks = array(array('a' => 'b'), array('c', 'd'));
     $context = new DerivativeContext(RequestContext::getMain());
     $out = new OutputPage($context);
     $parserOutput = $this->getMock('ParserOutput');
     $parserOutput->expects($this->exactly(3))->method('getExtensionData')->will($this->returnCallback(function ($key) use($altLinks) {
         if ($key === 'wikibase-alternate-links') {
             return $altLinks;
         } else {
             return $key;
         }
     }));
     RepoHooks::onOutputPageParserOutput($out, $parserOutput);
     $this->assertSame('wikibase-view-chunks', $out->getProperty('wikibase-view-chunks'));
     $this->assertSame('wikibase-titletext', $out->getProperty('wikibase-titletext'));
     $this->assertSame($altLinks, $out->getLinkTags());
 }
 /**
  * Tests the FormatAutocomment hook provided by RepoHooks.
  *
  * @todo move to RepoHooksTest
  *
  * @dataProvider providerOnFormat
  */
 public function testOnFormat($model, $root, $pre, $auto, $post, $title, $local, $expected)
 {
     $itemTitle = $this->getMock($title);
     $itemTitle->expects($this->once())->method('getContentModel')->will($this->returnValue($model));
     $comment = null;
     RepoHooks::onFormat(array($model, $root), $comment, $pre, $auto, $post, $itemTitle, $local);
     if (is_null($expected)) {
         $this->assertEquals($expected, $comment, "Didn't find the expected null");
     } else {
         $this->assertRegExp($expected, $comment, "Didn't find the expected final comment");
     }
 }