From f2bb1dc0dbcc40bbb5afc3e260b58c7b8582f6e0 Mon Sep 17 00:00:00 2001 From: David Maus <maus@hab.de> Date: Wed, 5 Jun 2013 09:58:46 +0200 Subject: [PATCH] Fix VUFIND-820: Ignored query D/I/A in SOLR HandlerMap * VuFindSearch/Backend/Solr/HandlerMap.php (setHandlerMap): Set D/I/A if handler definition does not contain functions. --- .../VuFindSearch/Backend/Solr/HandlerMap.php | 30 ++++++++--------- .../Backend/Solr/HandlerMapTest.php | 33 +++++++++++++++++++ 2 files changed, 48 insertions(+), 15 deletions(-) diff --git a/module/VuFindSearch/src/VuFindSearch/Backend/Solr/HandlerMap.php b/module/VuFindSearch/src/VuFindSearch/Backend/Solr/HandlerMap.php index 491289567eb..0e824774976 100644 --- a/module/VuFindSearch/src/VuFindSearch/Backend/Solr/HandlerMap.php +++ b/module/VuFindSearch/src/VuFindSearch/Backend/Solr/HandlerMap.php @@ -118,21 +118,21 @@ class HandlerMap extends AbstractHandlerMap } $this->handlers[$function] = $handler; } - if (isset($definition['invariants'])) { - $this->setParameters( - $handler, 'invariants', (array)$definition['invariants'] - ); - } - if (isset($definition['defaults'])) { - $this->setParameters( - $handler, 'defaults', (array)$definition['defaults'] - ); - } - if (isset($definition['appends'])) { - $this->setParameters( - $handler, 'appends', (array)$definition['appends'] - ); - } + } + if (isset($definition['invariants'])) { + $this->setParameters( + $handler, 'invariants', (array)$definition['invariants'] + ); + } + if (isset($definition['defaults'])) { + $this->setParameters( + $handler, 'defaults', (array)$definition['defaults'] + ); + } + if (isset($definition['appends'])) { + $this->setParameters( + $handler, 'appends', (array)$definition['appends'] + ); } } $this->fallback = $fallback; diff --git a/module/VuFindSearch/tests/unit-tests/src/VuFindTest/Backend/Solr/HandlerMapTest.php b/module/VuFindSearch/tests/unit-tests/src/VuFindTest/Backend/Solr/HandlerMapTest.php index 60286c72a27..df8e4d3d2df 100644 --- a/module/VuFindSearch/tests/unit-tests/src/VuFindTest/Backend/Solr/HandlerMapTest.php +++ b/module/VuFindSearch/tests/unit-tests/src/VuFindTest/Backend/Solr/HandlerMapTest.php @@ -125,4 +125,37 @@ class HandlerMapTest extends TestCase $map->getAppends('search')->getArrayCopy() ); } + + /** + * Test defaults, appends, invariants for pure fallback definitions. + * + * @return void + * + * @see http://vufind.org/jira/browse/VUFIND-820 VUFIND-820 + */ + public function testGetDefaultsAppendsInvariantsPureFallback () + { + $map = new HandlerMap( + array( + 'search' => array( + 'fallback' => true, + 'invariants' => array('p1' => 'v1'), + 'defaults' => array('p2' => 'v2'), + 'appends' => array('p3' => 'v3'), + ) + ) + ); + $this->assertEquals( + array('p1' => array('v1')), + $map->getInvariants('search')->getArrayCopy() + ); + $this->assertEquals( + array('p2' => array('v2')), + $map->getDefaults('search')->getArrayCopy() + ); + $this->assertEquals( + array('p3' => array('v3')), + $map->getAppends('search')->getArrayCopy() + ); + } } \ No newline at end of file -- GitLab