| 
      
            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 | 
              -   | 
               | 
               |