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

(-)a/t/Search/buildQuery.t (-2 / +76 lines)
Lines 24-30 use Module::Load::Conditional qw/check_install/; Link Here
24
24
25
BEGIN {
25
BEGIN {
26
    if ( check_install( module => 'Test::DBIx::Class' ) ) {
26
    if ( check_install( module => 'Test::DBIx::Class' ) ) {
27
        plan tests => 10;
27
        plan tests => 12;
28
    } else {
28
    } else {
29
        plan skip_all => "Need Test::DBIx::Class"
29
        plan skip_all => "Need Test::DBIx::Class"
30
    }
30
    }
Lines 62-67 sub _get_ccl_properties { Link Here
62
        phr 4=1
62
        phr 4=1
63
        fuzzy 5=103
63
        fuzzy 5=103
64
        ccode 1=8009
64
        ccode 1=8009
65
        nb 1=7
66
        ns 1=8
65
    );
67
    );
66
    return $config;
68
    return $config;
67
}
69
}
Lines 148-153 subtest "test weighted not-autotruncated" => sub { Link Here
148
150
149
    t::lib::Mocks::mock_preference('QueryWeightFields', '1');
151
    t::lib::Mocks::mock_preference('QueryWeightFields', '1');
150
    t::lib::Mocks::mock_preference('QueryAutoTruncate', '0');
152
    t::lib::Mocks::mock_preference('QueryAutoTruncate', '0');
153
    t::lib::Mocks::mock_preference('QueryFuzzy', '1');
151
154
152
    my $config = _get_ccl_properties();
155
    my $config = _get_ccl_properties();
153
    my $operators = [""];
156
    my $operators = [""];
Lines 328-330 subtest "one and two weighted autotruncated" => sub { Link Here
328
    is($ccl_errpos,0);
331
    is($ccl_errpos,0);
329
    Net::Z3950::ZOOM::query_destroy($q);
332
    Net::Z3950::ZOOM::query_destroy($q);
330
};
333
};
331
- 
334
335
subtest "test with ISBN variations" => sub {
336
    plan tests => 12;
337
338
    my $config = _get_ccl_properties();
339
    my $operators = [""];
340
    my $operands = ["1565926994"];
341
    my $indexes = ["nb"];
342
    my $limits = [""];
343
    my $sort_by = [""];
344
    my ($scan,$lang);
345
346
    foreach my $sample (
347
        { state => 0, query => 'nb=(rk=(1565926994)) ' },
348
        { state => 1, query => 'kw,wrdl=(rk=((nb=1-56592-699-4 OR nb=1-56592-699-4 OR nb=978-1-56592-699-8 OR nb=1565926994 OR nb=9781565926998))) ' })
349
    {
350
        t::lib::Mocks::mock_preference('SearchWithISBNVariations', $sample->{state});
351
        # Test with disabled variatioms
352
        my ($error,$query,$simple_query,$query_cgi,$query_desc,$limit,$limit_cgi,$limit_desc,$query_type) =
353
            C4::Search::buildQuery($operators,$operands,$indexes,$limits,$sort_by,$scan,$lang);
354
            say 'Q: > ', $query;
355
        is($error,undef,"Error is correct");
356
        is($query,$sample->{query},'Search ISBN when variations is '.$sample->{state});
357
        my $q = Net::Z3950::ZOOM::query_create();
358
        my ($ccl_errcode, $ccl_errstr, $ccl_errpos) = (0,"",0);
359
        my $res = Net::Z3950::ZOOM::query_ccl2rpn($q, $query, $config,
360
            $ccl_errcode, $ccl_errstr, $ccl_errpos
361
        );
362
        is($res,0,"created CCL2RPN query");
363
        is($ccl_errcode,0);
364
        is($ccl_errstr,"");
365
        is($ccl_errpos,0);
366
        Net::Z3950::ZOOM::query_destroy($q);
367
    }
368
369
};
370
371
subtest "test with ISSN variations" => sub {
372
    plan tests => 12;
373
374
    my $config = _get_ccl_properties();
375
    my $operators = [""];
376
    my $operands = ["2434561X"];
377
    my $indexes = ["ns"];
378
    my $limits = [""];
379
    my $sort_by = [""];
380
    my ($scan,$lang);
381
382
    foreach my $sample (
383
        { state => 0, query => 'ns=(rk=(2434561X)) ' },
384
        { state => 1, query => 'kw,wrdl=(rk=((ns=2434-561X OR ns=2434561X))) ' })
385
    {
386
        t::lib::Mocks::mock_preference('SearchWithISSNVariations', $sample->{state});
387
        # Test with disabled variatioms
388
        my ($error,$query,$simple_query,$query_cgi,$query_desc,$limit,$limit_cgi,$limit_desc,$query_type) =
389
            C4::Search::buildQuery($operators,$operands,$indexes,$limits,$sort_by,$scan,$lang);
390
            say 'Q: > ', $query;
391
        is($error,undef,"Error is correct");
392
        is($query,$sample->{query},'Search ISSN when variations is '.$sample->{state});
393
        my $q = Net::Z3950::ZOOM::query_create();
394
        my ($ccl_errcode, $ccl_errstr, $ccl_errpos) = (0,"",0);
395
        my $res = Net::Z3950::ZOOM::query_ccl2rpn($q, $query, $config,
396
            $ccl_errcode, $ccl_errstr, $ccl_errpos
397
        );
398
        is($res,0,"created CCL2RPN query");
399
        is($ccl_errcode,0);
400
        is($ccl_errstr,"");
401
        is($ccl_errpos,0);
402
        Net::Z3950::ZOOM::query_destroy($q);
403
    }
404
405
};

Return to bug 23919