Lines 12-18
use YAML;
Link Here
|
12 |
use C4::Debug; |
12 |
use C4::Debug; |
13 |
require C4::Context; |
13 |
require C4::Context; |
14 |
|
14 |
|
15 |
use Test::More tests => 57; |
15 |
use Test::More tests => 78; |
16 |
use Test::MockModule; |
16 |
use Test::MockModule; |
17 |
use MARC::Record; |
17 |
use MARC::Record; |
18 |
use File::Spec; |
18 |
use File::Spec; |
Lines 515-518
END {
Link Here
|
515 |
} |
515 |
} |
516 |
} |
516 |
} |
517 |
|
517 |
|
|
|
518 |
# Testing exploding indexes |
519 |
my $term; |
520 |
my $searchmodule = new Test::MockModule('C4::Search'); |
521 |
$searchmodule->mock('SimpleSearch', sub { |
522 |
my $query = shift; |
523 |
|
524 |
is($query, "Heading,wrdl=$term", "Searching for expected term '$term' for exploding") or return '', [], 0; |
525 |
|
526 |
my $record = MARC::Record->new; |
527 |
if ($query =~ m/Arizona/) { |
528 |
$record->add_fields( |
529 |
[ '001', '1234' ], |
530 |
[ '151', ' ', ' ', a => 'Arizona' ], |
531 |
[ '551', ' ', ' ', a => 'United States', w => 'g' ], |
532 |
[ '551', ' ', ' ', a => 'Maricopa County', w => 'h' ], |
533 |
[ '551', ' ', ' ', a => 'Navajo County', w => 'h' ], |
534 |
[ '551', ' ', ' ', a => 'Pima County', w => 'h' ], |
535 |
[ '551', ' ', ' ', a => 'New Mexico' ], |
536 |
); |
537 |
} |
538 |
return '', [ $record->as_usmarc() ], 1; |
539 |
}); |
540 |
|
541 |
$term = 'Arizona'; |
542 |
( $error, $query, $simple_query, $query_cgi, |
543 |
$query_desc, $limit, $limit_cgi, $limit_desc, |
544 |
$stopwords_removed, $query_type ) = buildQuery([], [ $term ], [ 'su-br' ], [ ], [], 0, 'en'); |
545 |
matchesExplodedTerms("Advanced search for broader subjects", $query, 'Arizona', 'United States'); |
546 |
|
547 |
( $error, $query, $simple_query, $query_cgi, |
548 |
$query_desc, $limit, $limit_cgi, $limit_desc, |
549 |
$stopwords_removed, $query_type ) = buildQuery([], [ $term ], [ 'su-na' ], [ ], [], 0, 'en'); |
550 |
matchesExplodedTerms("Advanced search for narrower subjects", $query, 'Arizona', 'Maricopa County', 'Navajo County', 'Pima County'); |
551 |
|
552 |
( $error, $query, $simple_query, $query_cgi, |
553 |
$query_desc, $limit, $limit_cgi, $limit_desc, |
554 |
$stopwords_removed, $query_type ) = buildQuery([], [ $term ], [ 'su-rl' ], [ ], [], 0, 'en'); |
555 |
matchesExplodedTerms("Advanced search for related subjects", $query, 'Arizona', 'United States', 'Maricopa County', 'Navajo County', 'Pima County'); |
556 |
|
557 |
( $error, $query, $simple_query, $query_cgi, |
558 |
$query_desc, $limit, $limit_cgi, $limit_desc, |
559 |
$stopwords_removed, $query_type ) = buildQuery([], [ "$term", 'history' ], [ 'su-rl', 'kw' ], [ ], [], 0, 'en'); |
560 |
matchesExplodedTerms("Advanced search for related subjects and keyword 'history' searches related subjects", $query, 'Arizona', 'United States', 'Maricopa County', 'Navajo County', 'Pima County'); |
561 |
like($query, qr/history/, "Advanced search for related subjects and keyword 'history' searches for 'history'"); |
562 |
|
563 |
( $error, $query, $simple_query, $query_cgi, |
564 |
$query_desc, $limit, $limit_cgi, $limit_desc, |
565 |
$stopwords_removed, $query_type ) = buildQuery([], [ 'history', "$term" ], [ 'kw', 'su-rl' ], [ ], [], 0, 'en'); |
566 |
matchesExplodedTerms("Order of terms doesn't matter for advanced search", $query, 'Arizona', 'United States', 'Maricopa County', 'Navajo County', 'Pima County'); |
567 |
like($query, qr/history/, "Order of terms doesn't matter for advanced search"); |
568 |
|
569 |
( $error, $query, $simple_query, $query_cgi, |
570 |
$query_desc, $limit, $limit_cgi, $limit_desc, |
571 |
$stopwords_removed, $query_type ) = buildQuery([], [ "su-br:$term" ], [ ], [ ], [], 0, 'en'); |
572 |
matchesExplodedTerms("Simple search for broader subjects", $query, 'Arizona', 'United States'); |
573 |
|
574 |
( $error, $query, $simple_query, $query_cgi, |
575 |
$query_desc, $limit, $limit_cgi, $limit_desc, |
576 |
$stopwords_removed, $query_type ) = buildQuery([], [ "su-na:$term" ], [ ], [ ], [], 0, 'en'); |
577 |
matchesExplodedTerms("Simple search for narrower subjects", $query, 'Arizona', 'Maricopa County', 'Navajo County', 'Pima County'); |
578 |
|
579 |
( $error, $query, $simple_query, $query_cgi, |
580 |
$query_desc, $limit, $limit_cgi, $limit_desc, |
581 |
$stopwords_removed, $query_type ) = buildQuery([], [ "su-rl:$term" ], [ ], [ ], [], 0, 'en'); |
582 |
matchesExplodedTerms("Simple search for related subjects", $query, 'Arizona', 'United States', 'Maricopa County', 'Navajo County', 'Pima County'); |
583 |
|
584 |
( $error, $query, $simple_query, $query_cgi, |
585 |
$query_desc, $limit, $limit_cgi, $limit_desc, |
586 |
$stopwords_removed, $query_type ) = buildQuery([], [ "history and su-rl:$term" ], [ ], [ ], [], 0, 'en'); |
587 |
matchesExplodedTerms("Simple search for related subjects and keyword 'history' searches related subjects", $query, 'Arizona', 'United States', 'Maricopa County', 'Navajo County', 'Pima County'); |
588 |
like($query, qr/history/, "Simple search for related subjects and keyword 'history' searches for 'history'"); |
589 |
|
590 |
sub matchesExplodedTerms { |
591 |
my ($message, $query, @terms) = @_; |
592 |
my $match = "(( or )?\\((" . join ('|', map { "su=\"$_\"" } @terms) . ")\\)){" . scalar(@terms) . "}"; |
593 |
like($query, qr/$match/, $message); |
594 |
} |
595 |
|
518 |
1; |
596 |
1; |
519 |
- |
|
|