public function testPrependHtmlForViewActionOnly()
 {
     $context = new \RequestContext();
     $context->setRequest(new \FauxRequest(array('action' => 'view'), true));
     $htmlBreadcrumbLinksBuilder = $this->getMockBuilder('\\SBL\\HtmlBreadcrumbLinksBuilder')->disableOriginalConstructor()->getMock();
     $htmlBreadcrumbLinksBuilder->expects($this->once())->method('buildBreadcrumbs')->will($this->returnSelf());
     $language = $this->getMockBuilder('\\Language')->disableOriginalConstructor()->getMock();
     $title = $this->getMockBuilder('\\Title')->disableOriginalConstructor()->getMock();
     $title->expects($this->once())->method('isKnown')->will($this->returnValue(true));
     $title->expects($this->once())->method('isSpecialPage')->will($this->returnValue(false));
     $title->expects($this->once())->method('getPageLanguage')->will($this->returnValue($language));
     $output = $this->getMockBuilder('\\OutputPage')->disableOriginalConstructor()->getMock();
     $output->expects($this->once())->method('prependHTML');
     $output->expects($this->once())->method('getContext')->will($this->returnValue($context));
     $output->expects($this->atLeastOnce())->method('getTitle')->will($this->returnValue($title));
     $instance = new SkinTemplateOutputModifier($htmlBreadcrumbLinksBuilder);
     $this->assertTrue($instance->modifyOutput($output));
     $template = new \stdClass();
     $template->data = array();
     $instance->modifyTemplate($template);
     $this->assertEmpty($template->data['subtitle']);
 }
Example #2
0
 private function addCallbackHandlers($store, $configuration)
 {
     $propertyRegistry = new PropertyRegistry();
     /**
      * @see https://github.com/SemanticMediaWiki/SemanticMediaWiki/blob/master/docs/technical/hooks.md
      */
     $this->handlers['SMW::Property::initProperties'] = function () use($propertyRegistry) {
         return $propertyRegistry->register();
     };
     /**
      * @see https://www.mediawiki.org/wiki/Manual:Hooks/SkinTemplateOutputPageBeforeExec
      */
     $this->handlers['SkinTemplateOutputPageBeforeExec'] = function (&$skin, &$template) use($store, $configuration) {
         $bySubpageLinksFinder = new BySubpageLinksFinder();
         $bySubpageLinksFinder->setSubpageDiscoverySupportState($configuration['useSubpageFinderFallback']);
         $byPropertyHierarchicalLinksFinder = new ByPropertyHierarchicalLinksFinder($store);
         $byPropertyHierarchicalLinksFinder->setFindClosestDescendantState($configuration['tryToFindClosestDescendant']);
         $byPropertyHierarchicalLinksFinder->setPropertySearchPatternByNamespace($configuration['propertySearchPatternByNamespace']);
         $htmlBreadcrumbLinksBuilder = new HtmlBreadcrumbLinksBuilder($byPropertyHierarchicalLinksFinder, $bySubpageLinksFinder);
         $htmlBreadcrumbLinksBuilder->setLinker(new DummyLinker());
         $htmlBreadcrumbLinksBuilder->setBreadcrumbTrailStyleClass($configuration['breadcrumbTrailStyleClass']);
         $htmlBreadcrumbLinksBuilder->setBreadcrumbDividerStyleClass($configuration['breadcrumbDividerStyleClass']);
         $skinTemplateOutputModifier = new SkinTemplateOutputModifier($htmlBreadcrumbLinksBuilder);
         $skinTemplateOutputModifier->modifyTemplate($template);
         $skinTemplateOutputModifier->modifyOutput($skin->getOutput());
         return true;
     };
     /**
      * @see https://www.mediawiki.org/wiki/Manual:Hooks/BeforePageDisplay
      */
     $this->handlers['BeforePageDisplay'] = function (&$output, &$skin) use($configuration) {
         $pageDisplayOutputModifier = new PageDisplayOutputModifier();
         $pageDisplayOutputModifier->setHideSubpageParentState($configuration['hideSubpageParent']);
         $pageDisplayOutputModifier->setSubpageByNamespace($configuration['wgNamespacesWithSubpages']);
         $pageDisplayOutputModifier->modifyOutput($output);
         return true;
     };
 }