View | Details | Raw Unified | Return to bug 12347
Collapse All | Expand All

(-)a/t/db_dependent/Search.t (-64 / +24 lines)
Lines 17-22 use open ':std', ':encoding(utf8)'; Link Here
17
17
18
use Test::More tests => 4;
18
use Test::More tests => 4;
19
use Test::MockModule;
19
use Test::MockModule;
20
use Test::Deep;
20
use MARC::Record;
21
use MARC::Record;
21
use File::Spec;
22
use File::Spec;
22
use File::Basename;
23
use File::Basename;
Lines 349-356 sub run_marc21_search_tests { Link Here
349
        !defined $results_hashref->{biblioserver}->{RECORDS}->[1] &&
350
        !defined $results_hashref->{biblioserver}->{RECORDS}->[1] &&
350
        !defined $results_hashref->{biblioserver}->{RECORDS}->[2] &&
351
        !defined $results_hashref->{biblioserver}->{RECORDS}->[2] &&
351
        !defined $results_hashref->{biblioserver}->{RECORDS}->[3] &&
352
        !defined $results_hashref->{biblioserver}->{RECORDS}->[3] &&
352
        !defined $results_hashref->{biblioserver}->{RECORDS}->[4] &&
353
        !defined $results_hashref->{biblioserver}->{RECORDS}->[4],
353
        $results_hashref->{biblioserver}->{RECORDS}->[5] eq $record5, "getRecords cursor works");
354
        "getRecords cursor works (undef first 5 results)");
355
    cmp_deeply( $results_hashref->{biblioserver}->{RECORDS}->[5],
356
                $record5, "getRecords cursor works");
354
357
355
    ( undef, $results_hashref, $facets_loop ) =
358
    ( undef, $results_hashref, $facets_loop ) =
356
        getRecords('ti:book', 'ti:book', [], [ 'biblioserver' ], '20', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
359
        getRecords('ti:book', 'ti:book', [], [ 'biblioserver' ], '20', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
Lines 360-441 sub run_marc21_search_tests { Link Here
360
        getRecords('au:Lessig', 'au:Lessig', [], [ 'biblioserver' ], '20', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
363
        getRecords('au:Lessig', 'au:Lessig', [], [ 'biblioserver' ], '20', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
361
    is($results_hashref->{biblioserver}->{hits}, 4, "getRecords title search for 'Australia' matched right number of records");
364
    is($results_hashref->{biblioserver}->{hits}, 4, "getRecords title search for 'Australia' matched right number of records");
362
365
363
if ( $indexing_mode eq 'dom' ) {
364
    ( undef, $results_hashref, $facets_loop ) =
366
    ( undef, $results_hashref, $facets_loop ) =
365
        getRecords('salud', 'salud', [], [ 'biblioserver' ], '19', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
367
        getRecords('salud', 'salud', [], [ 'biblioserver' ], '19', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
366
    ok(MARC::Record::new_from_xml($results_hashref->{biblioserver}->{RECORDS}->[0],'UTF-8')->title_proper() =~ m/^Efectos del ambiente/ &&
368
    ok($results_hashref->{biblioserver}->{RECORDS}->[0]->title_proper() =~ m/^Efectos del ambiente/ &&
367
        MARC::Record::new_from_xml($results_hashref->{biblioserver}->{RECORDS}->[7],'UTF-8')->title_proper() eq 'Salud y seguridad de los trabajadores del sector salud: manual para gerentes y administradores^ies' &&
369
       $results_hashref->{biblioserver}->{RECORDS}->[7]->title_proper() eq 'Salud y seguridad de los trabajadores del sector salud: manual para gerentes y administradores^ies' &&
368
        MARC::Record::new_from_xml($results_hashref->{biblioserver}->{RECORDS}->[18],'UTF-8')->title_proper() =~ m/^Indicadores de resultados identificados/
370
       $results_hashref->{biblioserver}->{RECORDS}->[18]->title_proper() =~ m/^Indicadores de resultados identificados/
369
        , "Simple relevance sorting in getRecords matches old behavior");
371
        , "Simple relevance sorting in getRecords matches old behavior");
370
372
371
    ( undef, $results_hashref, $facets_loop ) =
373
    ( undef, $results_hashref, $facets_loop ) =
372
        getRecords('salud', 'salud', [ 'author_az' ], [ 'biblioserver' ], '38', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
374
        getRecords('salud', 'salud', [ 'author_az' ], [ 'biblioserver' ], '38', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
373
    ok(MARC::Record::new_from_xml($results_hashref->{biblioserver}->{RECORDS}->[0],'UTF-8')->title_proper() =~ m/la enfermedad laboral\^ies$/ &&
375
    ok($results_hashref->{biblioserver}->{RECORDS}->[0]->title_proper() =~ m/la enfermedad laboral\^ies$/ &&
374
        MARC::Record::new_from_xml($results_hashref->{biblioserver}->{RECORDS}->[6],'UTF-8')->title_proper() =~ m/^Indicadores de resultados identificados/ &&
376
       $results_hashref->{biblioserver}->{RECORDS}->[6]->title_proper() =~ m/^Indicadores de resultados identificados/ &&
375
        MARC::Record::new_from_xml($results_hashref->{biblioserver}->{RECORDS}->[18],'UTF-8')->title_proper() eq 'World health statistics 2009^ien'
377
       $results_hashref->{biblioserver}->{RECORDS}->[18]->title_proper() eq 'World health statistics 2009^ien'
376
        , "Simple ascending author sorting in getRecords matches old behavior");
378
        , "Simple ascending author sorting in getRecords matches old behavior");
377
379
378
    ( undef, $results_hashref, $facets_loop ) =
380
    ( undef, $results_hashref, $facets_loop ) =
379
        getRecords('salud', 'salud', [ 'author_za' ], [ 'biblioserver' ], '38', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
381
        getRecords('salud', 'salud', [ 'author_za' ], [ 'biblioserver' ], '38', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
380
    ok(MARC::Record::new_from_xml($results_hashref->{biblioserver}->{RECORDS}->[0],'UTF-8')->title_proper() eq 'World health statistics 2009^ien' &&
382
    ok($results_hashref->{biblioserver}->{RECORDS}->[0]->title_proper() eq 'World health statistics 2009^ien' &&
381
        MARC::Record::new_from_xml($results_hashref->{biblioserver}->{RECORDS}->[12],'UTF-8')->title_proper() =~ m/^Indicadores de resultados identificados/ &&
383
       $results_hashref->{biblioserver}->{RECORDS}->[12]->title_proper() =~ m/^Indicadores de resultados identificados/ &&
382
        MARC::Record::new_from_xml($results_hashref->{biblioserver}->{RECORDS}->[18],'UTF-8')->title_proper() =~ m/la enfermedad laboral\^ies$/
384
       $results_hashref->{biblioserver}->{RECORDS}->[18]->title_proper() =~ m/la enfermedad laboral\^ies$/
383
        , "Simple descending author sorting in getRecords matches old behavior");
385
        , "Simple descending author sorting in getRecords matches old behavior");
384
386
385
    ( undef, $results_hashref, $facets_loop ) =
387
    ( undef, $results_hashref, $facets_loop ) =
386
        getRecords('salud', 'salud', [ 'pubdate_asc' ], [ 'biblioserver' ], '38', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
388
        getRecords('salud', 'salud', [ 'pubdate_asc' ], [ 'biblioserver' ], '38', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
387
    ok(MARC::Record::new_from_xml($results_hashref->{biblioserver}->{RECORDS}->[0],'UTF-8')->title_proper() eq 'Manual de higiene industrial^ies' &&
389
    ok($results_hashref->{biblioserver}->{RECORDS}->[0]->title_proper() eq 'Manual de higiene industrial^ies' &&
388
        MARC::Record::new_from_xml($results_hashref->{biblioserver}->{RECORDS}->[7],'UTF-8')->title_proper() =~ m/seguridad e higiene del trabajo\^ies$/ &&
390
       $results_hashref->{biblioserver}->{RECORDS}->[7]->title_proper() =~ m/seguridad e higiene del trabajo\^ies$/ &&
389
        MARC::Record::new_from_xml($results_hashref->{biblioserver}->{RECORDS}->[18],'UTF-8')->title_proper() =~ m/^Indicadores de resultados identificados/
391
       $results_hashref->{biblioserver}->{RECORDS}->[18]->title_proper() =~ m/^Indicadores de resultados identificados/
390
        , "Simple ascending publication date sorting in getRecords matches old behavior");
392
        , "Simple ascending publication date sorting in getRecords matches old behavior");
391
393
392
    ( undef, $results_hashref, $facets_loop ) =
394
    ( undef, $results_hashref, $facets_loop ) =
393
        getRecords('salud', 'salud', [ 'pubdate_dsc' ], [ 'biblioserver' ], '38', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
395
        getRecords('salud', 'salud', [ 'pubdate_dsc' ], [ 'biblioserver' ], '38', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
394
    ok(MARC::Record::new_from_xml($results_hashref->{biblioserver}->{RECORDS}->[0],'UTF-8')->title_proper() =~ m/^Estado de salud/ &&
396
    ok($results_hashref->{biblioserver}->{RECORDS}->[0]->title_proper() =~ m/^Estado de salud/ &&
395
        MARC::Record::new_from_xml($results_hashref->{biblioserver}->{RECORDS}->[7],'UTF-8')->title_proper() eq 'World health statistics 2009^ien' &&
397
       $results_hashref->{biblioserver}->{RECORDS}->[7]->title_proper() eq 'World health statistics 2009^ien' &&
396
        MARC::Record::new_from_xml($results_hashref->{biblioserver}->{RECORDS}->[18],'UTF-8')->title_proper() eq 'Manual de higiene industrial^ies'
398
       $results_hashref->{biblioserver}->{RECORDS}->[18]->title_proper() eq 'Manual de higiene industrial^ies'
397
        , "Simple descending publication date sorting in getRecords matches old behavior");
399
        , "Simple descending publication date sorting in getRecords matches old behavior");
398
400
399
} elsif ( $indexing_mode eq 'grs1' ){
400
    ( undef, $results_hashref, $facets_loop ) =
401
        getRecords('salud', 'salud', [], [ 'biblioserver' ], '19', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
402
    ok(MARC::Record::new_from_usmarc($results_hashref->{biblioserver}->{RECORDS}->[0])->title_proper() =~ m/^Efectos del ambiente/ &&
403
        MARC::Record::new_from_usmarc($results_hashref->{biblioserver}->{RECORDS}->[7])->title_proper() eq 'Salud y seguridad de los trabajadores del sector salud: manual para gerentes y administradores^ies' &&
404
        MARC::Record::new_from_usmarc($results_hashref->{biblioserver}->{RECORDS}->[18])->title_proper() =~ m/^Indicadores de resultados identificados/
405
        , "Simple relevance sorting in getRecords matches old behavior");
406
407
    ( undef, $results_hashref, $facets_loop ) =
408
        getRecords('salud', 'salud', [ 'author_az' ], [ 'biblioserver' ], '38', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
409
    ok(MARC::Record::new_from_usmarc($results_hashref->{biblioserver}->{RECORDS}->[0])->title_proper() =~ m/la enfermedad laboral\^ies$/ &&
410
        MARC::Record::new_from_usmarc($results_hashref->{biblioserver}->{RECORDS}->[6])->title_proper() =~ m/^Indicadores de resultados identificados/ &&
411
        MARC::Record::new_from_usmarc($results_hashref->{biblioserver}->{RECORDS}->[18])->title_proper() eq 'World health statistics 2009^ien'
412
        , "Simple ascending author sorting in getRecords matches old behavior");
413
414
    ( undef, $results_hashref, $facets_loop ) =
415
        getRecords('salud', 'salud', [ 'author_za' ], [ 'biblioserver' ], '38', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
416
    ok(MARC::Record::new_from_usmarc($results_hashref->{biblioserver}->{RECORDS}->[0])->title_proper() eq 'World health statistics 2009^ien' &&
417
        MARC::Record::new_from_usmarc($results_hashref->{biblioserver}->{RECORDS}->[12])->title_proper() =~ m/^Indicadores de resultados identificados/ &&
418
        MARC::Record::new_from_usmarc($results_hashref->{biblioserver}->{RECORDS}->[18])->title_proper() =~ m/la enfermedad laboral\^ies$/
419
        , "Simple descending author sorting in getRecords matches old behavior");
420
421
    ( undef, $results_hashref, $facets_loop ) =
422
        getRecords('salud', 'salud', [ 'pubdate_asc' ], [ 'biblioserver' ], '38', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
423
    ok(MARC::Record::new_from_usmarc($results_hashref->{biblioserver}->{RECORDS}->[0])->title_proper() eq 'Manual de higiene industrial^ies' &&
424
        MARC::Record::new_from_usmarc($results_hashref->{biblioserver}->{RECORDS}->[7])->title_proper() =~ m/seguridad e higiene del trabajo\^ies$/ &&
425
        MARC::Record::new_from_usmarc($results_hashref->{biblioserver}->{RECORDS}->[18])->title_proper() =~ m/^Indicadores de resultados identificados/
426
        , "Simple ascending publication date sorting in getRecords matches old behavior");
427
428
    ( undef, $results_hashref, $facets_loop ) =
429
        getRecords('salud', 'salud', [ 'pubdate_dsc' ], [ 'biblioserver' ], '38', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
430
    ok(MARC::Record::new_from_usmarc($results_hashref->{biblioserver}->{RECORDS}->[0])->title_proper() =~ m/^Estado de salud/ &&
431
        MARC::Record::new_from_usmarc($results_hashref->{biblioserver}->{RECORDS}->[7])->title_proper() eq 'World health statistics 2009^ien' &&
432
        MARC::Record::new_from_usmarc($results_hashref->{biblioserver}->{RECORDS}->[18])->title_proper() eq 'Manual de higiene industrial^ies'
433
        , "Simple descending publication date sorting in getRecords matches old behavior");
434
}
435
401
436
    ( undef, $results_hashref, $facets_loop ) =
402
    ( undef, $results_hashref, $facets_loop ) =
437
        getRecords('books', 'books', [ 'relevance' ], [ 'biblioserver' ], '20', 0, undef, \%branches, \%itemtypes, undef, 1);
403
        getRecords('books', 'books', [ 'relevance' ], [ 'biblioserver' ], '20', 0, undef, \%branches, \%itemtypes, undef, 1);
438
    $record = MARC::Record::new_from_usmarc($results_hashref->{biblioserver}->{RECORDS}->[0]);
404
    $record = $results_hashref->{biblioserver}->{RECORDS}->[0];
439
    is($record->title_proper(), 'Books', "Scan returned requested item");
405
    is($record->title_proper(), 'Books', "Scan returned requested item");
440
    is($record->subfield('100', 'a'), 2, "Scan returned correct number of records matching term");
406
    is($record->subfield('100', 'a'), 2, "Scan returned correct number of records matching term");
441
    # Time to test buildQuery and searchResults too.
407
    # Time to test buildQuery and searchResults too.
Lines 578-589 if ( $indexing_mode eq 'dom' ) { Link Here
578
544
579
    ($error, $results_hashref, $facets_loop) = getRecords($query,$simple_query,[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
545
    ($error, $results_hashref, $facets_loop) = getRecords($query,$simple_query,[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
580
    is($results_hashref->{biblioserver}->{hits}, 19, "Weighted query returned correct number of results");
546
    is($results_hashref->{biblioserver}->{hits}, 19, "Weighted query returned correct number of results");
581
    if ($indexing_mode eq 'grs1') {
547
    is($results_hashref->{biblioserver}->{RECORDS}->[0]->title_proper(), 'Salud y seguridad de los trabajadores del sector salud: manual para gerentes y administradores^ies', "Weighted query returns best match first");
582
        is(MARC::Record::new_from_usmarc($results_hashref->{biblioserver}->{RECORDS}->[0])->title_proper(), 'Salud y seguridad de los trabajadores del sector salud: manual para gerentes y administradores^ies', "Weighted query returns best match first");
583
    } else {
584
        local $TODO = "Query weighting does not behave exactly the same in DOM vs. GRS";
585
        is(MARC::Record::new_from_xml($results_hashref->{biblioserver}->{RECORDS}->[0],'UTF-8')->title_proper(), 'Salud y seguridad de los trabajadores del sector salud: manual para gerentes y administradores^ies', "Weighted query returns best match first");
586
    }
587
548
588
    $QueryStemming = $QueryWeightFields = $QueryFuzzy = $QueryRemoveStopwords = 0;
549
    $QueryStemming = $QueryWeightFields = $QueryFuzzy = $QueryRemoveStopwords = 0;
589
    $QueryAutoTruncate = 1;
550
    $QueryAutoTruncate = 1;
Lines 914-925 sub run_unimarc_search_tests { Link Here
914
}
875
}
915
876
916
subtest 'MARC21 + GRS-1' => sub {
877
subtest 'MARC21 + GRS-1' => sub {
917
    plan tests => 104;
878
    plan tests => 105;
918
    run_marc21_search_tests('grs1');
879
    run_marc21_search_tests('grs1');
919
};
880
};
920
881
921
subtest 'MARC21 + DOM' => sub {
882
subtest 'MARC21 + DOM' => sub {
922
    plan tests => 104;
883
    plan tests => 105;
923
    run_marc21_search_tests('dom');
884
    run_marc21_search_tests('dom');
924
};
885
};
925
886
926
- 

Return to bug 12347