Bugzilla – Attachment 30633 Details for
Bug 12738
Search behaviour inconsistent with QueryParser on Perl 5.18
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
[SIGNED OFF] Bug 12738: (regression tests) C4::Context should set keyword search as default for QueryParser
SIGNED-OFF-Bug-12738-regression-tests-C4Context-sh.patch (text/plain), 5.19 KB, created by
Martin Renvoize (ashimema)
on 2014-08-08 16:07:46 UTC
(
hide
)
Description:
[SIGNED OFF] Bug 12738: (regression tests) C4::Context should set keyword search as default for QueryParser
Filename:
MIME Type:
Creator:
Martin Renvoize (ashimema)
Created:
2014-08-08 16:07:46 UTC
Size:
5.19 KB
patch
obsolete
>From 3e44e4759e5b16ae35b173b3867f62b4826e0689 Mon Sep 17 00:00:00 2001 >From: Tomas Cohen Arazi <tomascohen@gmail.com> >Date: Fri, 8 Aug 2014 11:59:43 -0300 >Subject: [PATCH] [SIGNED OFF] Bug 12738: (regression tests) C4::Context > should set keyword search as default for QueryParser > >This patch introduces tests for the QueryParser PQF driver usage in Koha. Specifically its >initialization on C4::Context, and initial setup. > >It also introduces a .pl script that is used to load C4::Context with different hash randomization >seeds on purpose, to verify the initialization result is deterministic and consistent between >runs. > >To test: > $ prove -v t/db_dependent/QueryParser.t > >It should fail because different default_search_class is set on each run, and it is not often the >one we expect. > >Sponsored-by: Universidad Nacional de Cordoba >Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> >--- > t/db_dependent/QueryParser.t | 70 ++++++++++++++++++++++++++++++++ > t/db_dependent/default_search_class.pl | 36 ++++++++++++++++ > 2 files changed, 106 insertions(+) > create mode 100644 t/db_dependent/QueryParser.t > create mode 100755 t/db_dependent/default_search_class.pl > >diff --git a/t/db_dependent/QueryParser.t b/t/db_dependent/QueryParser.t >new file mode 100644 >index 0000000..1e44b90 >--- /dev/null >+++ b/t/db_dependent/QueryParser.t >@@ -0,0 +1,70 @@ >+#!/usr/bin/perl >+ >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+ >+use Test::More tests => 7; >+ >+use File::Basename; >+use C4::Context; >+ >+C4::Context->set_preference( "UseQueryParser", 1 ); >+my $QParser = C4::Context->queryparser(); >+ >+# Check initialization correctly parsed the config file >+ok( defined $QParser && ref($QParser) eq "Koha::QueryParser::Driver::PQF" >+ , 'C4::Context successfully created a QP object' ); >+ >+is( $QParser->search_class_count, 4, >+ "Initialized 4 search classes" ); >+is( scalar(@{$QParser->search_fields()->{'keyword'}}), 111, >+ "Correct number of search fields for 'keyword' class"); >+is( scalar(@{$QParser->search_fields()->{'author'}}), 5, >+ "Correct number of search fields for 'author' class"); >+is( scalar(@{$QParser->search_fields()->{'subject'}}), 12, >+ "Correct number of search fields for 'subject' class"); >+is( scalar(@{$QParser->search_fields()->{'title'}}), 5, >+ "Correct number of search fields for 'title' class"); >+ >+# Load C4::Context 4 times with different randomization seeds >+$ENV{ PERL_PERTURB_KEYS } = "1"; >+my $hash_seed = "AB123"; >+my $default_search_class1 = get_default_search_class(); >+$hash_seed = "CD456"; >+my $default_search_class2 = get_default_search_class(); >+$hash_seed = "ABCDE"; >+my $default_search_class3 = get_default_search_class(); >+$hash_seed = "123456"; >+my $default_search_class4 = get_default_search_class(); >+ >+ok( $default_search_class1 eq 'keyword' && >+ $default_search_class2 eq 'keyword' && >+ $default_search_class3 eq 'keyword' && >+ $default_search_class4 eq 'keyword', >+ "C4::Context correctly sets the default search class to 'keyword' (Bug 12738)"); >+ >+sub get_default_search_class { >+ # get the default search class from a forked proccess >+ # that just loads C4::Context >+ $ENV{ PERL_HASH_SEED } = $hash_seed; >+ my $running_dir = dirname(__FILE__); >+ my $default_search_class = qx/$running_dir\/default_search_class.pl/; >+ >+ return $default_search_class; >+} >+ >+1; >diff --git a/t/db_dependent/default_search_class.pl b/t/db_dependent/default_search_class.pl >new file mode 100755 >index 0000000..905ae1d >--- /dev/null >+++ b/t/db_dependent/default_search_class.pl >@@ -0,0 +1,36 @@ >+#!/usr/bin/perl >+ >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+ >+=head1 default_search_class.pl >+ >+The only purpose of this script is to load C4::Context and print >+the default search class from the QueryParser object >+ >+=cut >+ >+use C4::Context; >+ >+C4::Context->set_preference("UseQueryParser","1"); >+ >+my $QParser = C4::Context->queryparser(); >+my $default_search_class = $QParser->default_search_class(); >+ >+print $default_search_class; >+ >+exit 0; >-- >1.7.10.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 12738
:
30630
|
30631
|
30633
|
30634
|
30658
|
30659