|
Lines 12-18
use YAML;
Link Here
|
| 12 |
use C4::Debug; |
12 |
use C4::Debug; |
| 13 |
use C4::Context; |
13 |
use 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 499-502
is($newresults[0]->{'alternateholdings_count'}, 1, 'Alternate holdings filled in
Link Here
|
| 499 |
|
499 |
|
| 500 |
kill 9, $child; |
500 |
kill 9, $child; |
| 501 |
|
501 |
|
|
|
502 |
# Testing exploding indexes |
| 503 |
my $term; |
| 504 |
my $searchmodule = new Test::MockModule('C4::Search'); |
| 505 |
$searchmodule->mock('SimpleSearch', sub { |
| 506 |
my $query = shift; |
| 507 |
|
| 508 |
is($query, "Heading,wrdl=$term", "Searching for expected term '$term' for exploding") or return '', [], 0; |
| 509 |
|
| 510 |
my $record = MARC::Record->new; |
| 511 |
if ($query =~ m/Arizona/) { |
| 512 |
$record->add_fields( |
| 513 |
[ '001', '1234' ], |
| 514 |
[ '151', ' ', ' ', a => 'Arizona' ], |
| 515 |
[ '551', ' ', ' ', a => 'United States', w => 'g' ], |
| 516 |
[ '551', ' ', ' ', a => 'Maricopa County', w => 'h' ], |
| 517 |
[ '551', ' ', ' ', a => 'Navajo County', w => 'h' ], |
| 518 |
[ '551', ' ', ' ', a => 'Pima County', w => 'h' ], |
| 519 |
[ '551', ' ', ' ', a => 'New Mexico' ], |
| 520 |
); |
| 521 |
} |
| 522 |
return '', [ $record->as_usmarc() ], 1; |
| 523 |
}); |
| 524 |
|
| 525 |
$term = 'Arizona'; |
| 526 |
( $error, $query, $simple_query, $query_cgi, |
| 527 |
$query_desc, $limit, $limit_cgi, $limit_desc, |
| 528 |
$stopwords_removed, $query_type ) = buildQuery([], [ $term ], [ 'su-br' ], [ ], [], 0, 'en'); |
| 529 |
matchesExplodedTerms("Advanced search for broader subjects", $query, 'Arizona', 'United States'); |
| 530 |
|
| 531 |
( $error, $query, $simple_query, $query_cgi, |
| 532 |
$query_desc, $limit, $limit_cgi, $limit_desc, |
| 533 |
$stopwords_removed, $query_type ) = buildQuery([], [ $term ], [ 'su-na' ], [ ], [], 0, 'en'); |
| 534 |
matchesExplodedTerms("Advanced search for narrower subjects", $query, 'Arizona', 'Maricopa County', 'Navajo County', 'Pima County'); |
| 535 |
|
| 536 |
( $error, $query, $simple_query, $query_cgi, |
| 537 |
$query_desc, $limit, $limit_cgi, $limit_desc, |
| 538 |
$stopwords_removed, $query_type ) = buildQuery([], [ $term ], [ 'su-rl' ], [ ], [], 0, 'en'); |
| 539 |
matchesExplodedTerms("Advanced search for related subjects", $query, 'Arizona', 'United States', 'Maricopa County', 'Navajo County', 'Pima County'); |
| 540 |
|
| 541 |
( $error, $query, $simple_query, $query_cgi, |
| 542 |
$query_desc, $limit, $limit_cgi, $limit_desc, |
| 543 |
$stopwords_removed, $query_type ) = buildQuery([], [ "$term", 'history' ], [ 'su-rl', 'kw' ], [ ], [], 0, 'en'); |
| 544 |
matchesExplodedTerms("Advanced search for related subjects and keyword 'history' searches related subjects", $query, 'Arizona', 'United States', 'Maricopa County', 'Navajo County', 'Pima County'); |
| 545 |
like($query, qr/history/, "Advanced search for related subjects and keyword 'history' searches for 'history'"); |
| 546 |
|
| 547 |
( $error, $query, $simple_query, $query_cgi, |
| 548 |
$query_desc, $limit, $limit_cgi, $limit_desc, |
| 549 |
$stopwords_removed, $query_type ) = buildQuery([], [ 'history', "$term" ], [ 'kw', 'su-rl' ], [ ], [], 0, 'en'); |
| 550 |
matchesExplodedTerms("Order of terms doesn't matter for advanced search", $query, 'Arizona', 'United States', 'Maricopa County', 'Navajo County', 'Pima County'); |
| 551 |
like($query, qr/history/, "Order of terms doesn't matter for advanced search"); |
| 552 |
|
| 553 |
( $error, $query, $simple_query, $query_cgi, |
| 554 |
$query_desc, $limit, $limit_cgi, $limit_desc, |
| 555 |
$stopwords_removed, $query_type ) = buildQuery([], [ "su-br:$term" ], [ ], [ ], [], 0, 'en'); |
| 556 |
matchesExplodedTerms("Simple search for broader subjects", $query, 'Arizona', 'United States'); |
| 557 |
|
| 558 |
( $error, $query, $simple_query, $query_cgi, |
| 559 |
$query_desc, $limit, $limit_cgi, $limit_desc, |
| 560 |
$stopwords_removed, $query_type ) = buildQuery([], [ "su-na:$term" ], [ ], [ ], [], 0, 'en'); |
| 561 |
matchesExplodedTerms("Simple search for narrower subjects", $query, 'Arizona', 'Maricopa County', 'Navajo County', 'Pima County'); |
| 562 |
|
| 563 |
( $error, $query, $simple_query, $query_cgi, |
| 564 |
$query_desc, $limit, $limit_cgi, $limit_desc, |
| 565 |
$stopwords_removed, $query_type ) = buildQuery([], [ "su-rl:$term" ], [ ], [ ], [], 0, 'en'); |
| 566 |
matchesExplodedTerms("Simple search for related subjects", $query, 'Arizona', 'United States', 'Maricopa County', 'Navajo County', 'Pima County'); |
| 567 |
|
| 568 |
( $error, $query, $simple_query, $query_cgi, |
| 569 |
$query_desc, $limit, $limit_cgi, $limit_desc, |
| 570 |
$stopwords_removed, $query_type ) = buildQuery([], [ "history and su-rl:$term" ], [ ], [ ], [], 0, 'en'); |
| 571 |
matchesExplodedTerms("Simple search for related subjects and keyword 'history' searches related subjects", $query, 'Arizona', 'United States', 'Maricopa County', 'Navajo County', 'Pima County'); |
| 572 |
like($query, qr/history/, "Simple search for related subjects and keyword 'history' searches for 'history'"); |
| 573 |
|
| 574 |
sub matchesExplodedTerms { |
| 575 |
my ($message, $query, @terms) = @_; |
| 576 |
my $match = "(( or )?\\((" . join ('|', map { "su=\"$_\"" } @terms) . ")\\)){" . scalar(@terms) . "}"; |
| 577 |
like($query, qr/$match/, $message); |
| 578 |
} |
| 579 |
|
| 502 |
1; |
580 |
1; |
| 503 |
- |
|
|