/** * Test the listener with preset fq-parameters * if the conditional filter is granted * * @return void */ public function testConditionalFilterWithFQ() { $params = new ParamBag(['fq' => ['fulltext:Vufind', 'field2:novalue']]); $listener = new InjectConditionalFilterListener(self::$searchConfig); $mockAuth = $this->getMockBuilder('ZfcRbac\\Service\\AuthorizationService')->disableOriginalConstructor()->getMock(); $mockAuth->expects($this->any())->method('isGranted')->with($this->equalTo('conditionalFilter.sample'))->will($this->returnValue(true)); $listener->setAuthorizationService($mockAuth); $event = new Event('pre', $this->backend, ['params' => $params]); $listener->onSearchPre($event); $fq = $params->get('fq'); $this->assertEquals([0 => 'fulltext:Vufind', 1 => 'field2:novalue', 2 => 'institution:"MyInst"'], $fq); }
/** * Get a Conditional Filter Listener * * @param Config $search Search configuration * * @return InjectConditionalFilterListener */ protected function getInjectConditionalFilterListener(Config $search) { $listener = new InjectConditionalFilterListener($search->ConditionalHiddenFilters->toArray()); $listener->setAuthorizationService($this->serviceLocator->get('ZfcRbac\\Service\\AuthorizationService')); return $listener; }