@@ -, +, @@ --- t/Search.t | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) --- a/t/Search.t +++ a/t/Search.t @@ -24,7 +24,7 @@ use Module::Load::Conditional qw/check_install/; BEGIN { if ( check_install( module => 'Test::DBIx::Class' ) ) { - plan tests => 3; + plan tests => 6; } else { plan skip_all => "Need Test::DBIx::Class" } @@ -36,6 +36,60 @@ use Test::DBIx::Class; use_ok('C4::Search'); can_ok('C4::Search', qw/_build_initial_query/); +can_ok('C4::Search', + qw/buildQuery/); + +subtest "buildQuery basic search" => sub { + plan tests => 9; + t::lib::Mocks::mock_preference('QueryWeightFields', '1'); + t::lib::Mocks::mock_preference('QueryAutoTruncate', '1'); + t::lib::Mocks::mock_preference('UseQueryParser', '0'); + my $operators = []; + my $operands = ["test"]; + my $indexes = []; + my $limits = []; + my $sort_by = []; + my $scan; + my $lang; + + my ($error,$query,$simple_query,$query_cgi,$query_desc,$limit,$limit_cgi,$limit_desc,$query_type) = + C4::Search::buildQuery($operators,$operands,$indexes,$limits,$sort_by,$scan,$lang); + is($error,undef,"Error is correct"); + is($query,'(rk=(kw,wrdl,rtrn=test )) ','Query is correct'); + is($simple_query,'test',"Simple query is correct"); + is($query_cgi,'idx=kw&q=test','Query cgi is correct'); + is($query_desc,'kw,wrdl: test','Query desc is correct'); + is($limit,undef,"Limit is correct"); + is($limit_cgi,undef,"Limit cgi is correct"); + is($limit_desc,undef,"Limit desc is correct"); + is($query_type,undef,"Query type is correct"); +}; + +subtest "buildQuery truncated search" => sub { + plan tests => 9; + t::lib::Mocks::mock_preference('QueryWeightFields', '1'); + t::lib::Mocks::mock_preference('QueryAutoTruncate', '1'); + t::lib::Mocks::mock_preference('UseQueryParser', '0'); + my $operators = []; + my $operands = ["test*"]; + my $indexes = []; + my $limits = []; + my $sort_by = []; + my $scan; + my $lang; + + my ($error,$query,$simple_query,$query_cgi,$query_desc,$limit,$limit_cgi,$limit_desc,$query_type) = + C4::Search::buildQuery($operators,$operands,$indexes,$limits,$sort_by,$scan,$lang); + is($error,undef,"Error is correct"); + is($query,'(rk=(kw,wrdl,rtrn=test )) ','Query is correct'); + is($simple_query,'test*',"Simple query is correct"); + is($query_cgi,'idx=kw&q=test%2A','Query cgi is correct'); + is($query_desc,'kw,wrdl: test*','Query desc is correct'); + is($limit,undef,"Limit is correct"); + is($limit_cgi,undef,"Limit cgi is correct"); + is($limit_desc,undef,"Limit desc is correct"); + is($query_type,undef,"Query type is correct"); +}; subtest "_build_initial_query tests" => sub { --