Bug 9827: remove 'insecure' system preference
[koha.git] / t / db_dependent / Search.t
index 6d3d7a3..d1f76a4 100644 (file)
@@ -32,6 +32,7 @@ my $QueryAutoTruncate = 0;
 my $QueryWeightFields = 0;
 my $QueryFuzzy = 0;
 my $QueryRemoveStopwords = 0;
+my $UseQueryParser = 0;
 my $contextmodule = new Test::MockModule('C4::Context');
 $contextmodule->mock('_new_dbh', sub {
     my $dbh = DBI->connect( 'DBI:Mock:', '', '' )
@@ -39,9 +40,7 @@ $contextmodule->mock('_new_dbh', sub {
     return $dbh });
 $contextmodule->mock('preference', sub {
     my ($self, $pref) = @_;
-    if ($pref eq 'NoZebra') {
-        return 0;
-    } elsif ($pref eq 'marcflavour') {
+    if ($pref eq 'marcflavour') {
         return 'MARC21';
     } elsif ($pref eq 'QueryStemming') {
         return $QueryStemming;
@@ -53,6 +52,8 @@ $contextmodule->mock('preference', sub {
         return $QueryFuzzy;
     } elsif ($pref eq 'QueryRemoveStopwords') {
         return $QueryRemoveStopwords;
+    } elsif ($pref eq 'UseQueryParser') {
+        return $UseQueryParser;
     } elsif ($pref eq 'maxRecordsForFacets') {
         return 20;
     } elsif ($pref eq 'FacetLabelTruncationLength') {
@@ -63,7 +64,7 @@ $contextmodule->mock('preference', sub {
         return '490av';
     } else {
         warn "The syspref $pref was requested but I don't know what to say; this indicates that the test requires updating"
-            unless $pref =~ m/(XSLT|item|branch|holding|image|insecure)/i;
+            unless $pref =~ m/(XSLT|item|branch|holding|image)/i;
         return 0;
     }
 });
@@ -109,6 +110,11 @@ $contextmodule->mock('marcfromkohafield', sub {
         );
         return \%hash;
 });
+$contextmodule->mock('queryparser', sub {
+    my $QParser     = Koha::QueryParser::Driver::PQF->new();
+    $QParser->load_config("$datadir/etc/searchengine/queryparser.yaml");
+    return $QParser;
+});
 my $context = new C4::Context("$datadir/etc/koha-conf.xml");
 $context->set_context();
 
@@ -521,7 +527,7 @@ my $searchmodule = new Test::MockModule('C4::Search');
 $searchmodule->mock('SimpleSearch', sub {
     my $query = shift;
 
-    is($query, "Heading,wrdl=$term", "Searching for expected term '$term' for exploding") or return '', [], 0;
+    is($query, "he:$term", "Searching for expected term '$term' for exploding") or return '', [], 0;
 
     my $record = MARC::Record->new;
     if ($query =~ m/Arizona/) {
@@ -538,6 +544,7 @@ $searchmodule->mock('SimpleSearch', sub {
     return '', [ $record->as_usmarc() ], 1;
 });
 
+$UseQueryParser = 1;
 $term = 'Arizona';
 ( $error, $query, $simple_query, $query_cgi,
 $query_desc, $limit, $limit_cgi, $limit_desc,
@@ -568,28 +575,28 @@ like($query, qr/history/, "Order of terms doesn't matter for advanced search");
 
 ( $error, $query, $simple_query, $query_cgi,
 $query_desc, $limit, $limit_cgi, $limit_desc,
-$stopwords_removed, $query_type ) = buildQuery([], [ "su-br:$term" ], [  ], [  ], [], 0, 'en');
+$stopwords_removed, $query_type ) = buildQuery([], [ "su-br($term)" ], [  ], [  ], [], 0, 'en');
 matchesExplodedTerms("Simple search for broader subjects", $query, 'Arizona', 'United States');
 
 ( $error, $query, $simple_query, $query_cgi,
 $query_desc, $limit, $limit_cgi, $limit_desc,
-$stopwords_removed, $query_type ) = buildQuery([], [ "su-na:$term" ], [  ], [  ], [], 0, 'en');
+$stopwords_removed, $query_type ) = buildQuery([], [ "su-na($term)" ], [  ], [  ], [], 0, 'en');
 matchesExplodedTerms("Simple search for narrower subjects", $query, 'Arizona', 'Maricopa County', 'Navajo County', 'Pima County');
 
 ( $error, $query, $simple_query, $query_cgi,
 $query_desc, $limit, $limit_cgi, $limit_desc,
-$stopwords_removed, $query_type ) = buildQuery([], [ "su-rl:$term" ], [  ], [  ], [], 0, 'en');
+$stopwords_removed, $query_type ) = buildQuery([], [ "su-rl($term)" ], [  ], [  ], [], 0, 'en');
 matchesExplodedTerms("Simple search for related subjects", $query, 'Arizona', 'United States', 'Maricopa County', 'Navajo County', 'Pima County');
 
 ( $error, $query, $simple_query, $query_cgi,
 $query_desc, $limit, $limit_cgi, $limit_desc,
-$stopwords_removed, $query_type ) = buildQuery([], [ "history and su-rl:$term" ], [  ], [  ], [], 0, 'en');
+$stopwords_removed, $query_type ) = buildQuery([], [ "history && su-rl($term)" ], [  ], [  ], [], 0, 'en');
 matchesExplodedTerms("Simple search for related subjects and keyword 'history' searches related subjects", $query, 'Arizona', 'United States', 'Maricopa County', 'Navajo County', 'Pima County');
 like($query, qr/history/, "Simple search for related subjects and keyword 'history' searches for 'history'");
 
 sub matchesExplodedTerms {
     my ($message, $query, @terms) = @_;
-    my $match = "(( or )?\\((" . join ('|', map { "su=\"$_\"" } @terms) . ")\\)){" . scalar(@terms) . "}";
+    my $match = '(' . join ('|', map { " \@attr 1=Subject \@attr 4=1 \"$_\"" } @terms) . "){" . scalar(@terms) . "}";
     like($query, qr/$match/, $message);
 }