diff --git a/module/VuFindSearch/src/VuFindSearch/Backend/Solr/HandlerMap.php b/module/VuFindSearch/src/VuFindSearch/Backend/Solr/HandlerMap.php index 491289567ebe643c765ab5c4129028d08723745b..0e824774976796a627d08607ba09ee69002cb97d 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 60286c72a27d9a2c1b55dda31b5879d50e8db8d7..df8e4d3d2df04e1e9c078ae1bcdf717c56d99ca6 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