From 701f7fa1aa583d38af3c9d3a888ee488858aeaeb Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Thu, 16 Jan 2014 20:36:02 +0000 Subject: [PATCH] Bug 11533: fix authority searching with no sorting when QueryParser is enabled This patch fixes an issue where chosing 'None' as the sort order for an authority search would result in zero hits if QueryParser is eanbled. This patch also adds some additional test cases. To test: [1] Enable QueryParser. [2] Perform an authority search in the staff interface that uses 'Heading A-Z' as the sort order and returns hits. [3] Run the same search, but with the sort order set to 'None'. No hits are returned. [4] Apply the patch. [5] Do step 3 again. This time, hits should be returned. [6] Verify that prove -v t/db_dependent/Search.t passes. Signed-off-by: Galen Charlton Signed-off-by: Tomas Cohen Arazi --- C4/AuthoritiesMarc.pm | 2 +- t/db_dependent/Search.t | 22 +++++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm index f7eb122..1c87285 100644 --- a/C4/AuthoritiesMarc.pm +++ b/C4/AuthoritiesMarc.pm @@ -221,7 +221,7 @@ sub SearchAuthorities { $qpquery = $1; } - $qpquery .= " #$sortby"; + $qpquery .= " #$sortby" unless $sortby eq ''; $QParser->parse( $qpquery ); $query = $QParser->target_syntax('authorityserver'); diff --git a/t/db_dependent/Search.t b/t/db_dependent/Search.t index d358e98..1233c97 100644 --- a/t/db_dependent/Search.t +++ b/t/db_dependent/Search.t @@ -12,7 +12,7 @@ use YAML; use C4::Debug; require C4::Context; -use Test::More tests => 216; +use Test::More tests => 224; use Test::MockModule; use MARC::Record; use File::Spec; @@ -737,6 +737,16 @@ sub run_marc21_search_tests { ); is($count, 1, 'MARC21 authorities: one hit on mainentry starts with "shakespeare"'); ($auths, $count) = SearchAuthorities( + ['mainentry'], ['and'], [''], ['starts'], + ['shakespeare'], 0, 10, '', 'HeadingAsc', 1 + ); + is($count, 1, 'MARC21 authorities: one hit on mainentry starts with "shakespeare" sorted by heading ascending'); + ($auths, $count) = SearchAuthorities( + ['mainentry'], ['and'], [''], ['starts'], + ['shakespeare'], 0, 10, '', 'HeadingDsc', 1 + ); + is($count, 1, 'MARC21 authorities: one hit on mainentry starts with "shakespeare" sorted by heading descending'); + ($auths, $count) = SearchAuthorities( ['match'], ['and'], [''], ['contains'], ['沙士北亞威廉姆'], 0, 10, '', '', 1 ); @@ -750,6 +760,16 @@ sub run_marc21_search_tests { ); is($count, 1, 'MARC21 authorities: one hit on mainentry starts with "shakespeare" (QP)'); ($auths, $count) = SearchAuthorities( + ['mainentry'], ['and'], [''], ['starts'], + ['shakespeare'], 0, 10, '', 'HeadingAsc', 1 + ); + is($count, 1, 'MARC21 authorities: one hit on mainentry starts with "shakespeare" sorted by heading ascending (QP)'); + ($auths, $count) = SearchAuthorities( + ['mainentry'], ['and'], [''], ['starts'], + ['shakespeare'], 0, 10, '', 'HeadingDsc', 1 + ); + is($count, 1, 'MARC21 authorities: one hit on mainentry starts with "shakespeare" sorted by heading descending (QP)'); + ($auths, $count) = SearchAuthorities( ['match'], ['and'], [''], ['contains'], ['沙士北亞威廉姆'], 0, 10, '', '', 1 ); -- 1.8.3.2