use File::Spec;
use Test::More;
use Test::MockModule;
+use Test::Warn;
-BEGIN {
- use_ok('Koha::SuggestionEngine');
+my $contextModule = new Test::MockModule('C4::Context');
+$contextModule->mock('preference', sub {
+ return '';
+});
+$contextModule->mock('config', sub {
+ my ($self,$key) = @_;
+ if ($key eq 'opachtdocs') {
+ return get_where() . '/koha-tmpl/opac-tmpl';
+ } elsif ($key eq 'intrahtdocs') {
+ return get_where() . '/koha-tmpl/intranet-tmpl';
+ } else {
+ return '';
+ }
+});
+
+use_ok('Koha::SuggestionEngine');
+
+sub get_where {
+ my $location = File::Spec->rel2abs(dirname(__FILE__));
+ if ($location =~ /db_dependent/) {
+ $location .= '/../..';
+ }
+ else {
+ $location .= '/..';
+ }
+ return $location;
}
-my $langModule = new Test::MockModule('C4::Languages');
+my $langModule;
+if (! defined $ENV{KOHA_CONF}) {
+ warning_like { $langModule = new Test::MockModule('C4::Languages'); }
+ qr /unable to locate Koha configuration file koha-conf.xml/,
+ 'Expected warning for unset $KOHA_CONF';
+}
+else {
+ $langModule = new Test::MockModule('C4::Languages');
+}
$langModule->mock('regex_lang_subtags', sub {
return {
'extension' => undef,
}
];
});
-my $tmplModule = new Test::MockModule('C4::Templates');
+my $tmplModule;
+if (! defined $ENV{KOHA_CONF}) {
+ warning_like { $tmplModule = new Test::MockModule('C4::Templates'); }
+ qr /unable to locate Koha configuration file koha-conf.xml/,
+ 'Expected warning for unset $KOHA_CONF';
+}
+else {
+ $tmplModule = new Test::MockModule('C4::Templates');
+}
$tmplModule->mock('_get_template_file', sub {
my ($tmplbase, $interface, $query) = @_;
- my $opactmpl = File::Spec->rel2abs(dirname(__FILE__) . '/../koha-tmpl/opac-tmpl');
- return ($opactmpl, 'prog', 'en', "$opactmpl/prog/en/modules/$tmplbase");
-});
-my $contextModule = new Test::MockModule('C4::Context');
-$contextModule->mock('preference', sub {
- return '';
+ my $opactmpl = get_where() . '/koha-tmpl/opac-tmpl';
+ return ($opactmpl, 'bootstrap', 'en', "$opactmpl/bootstrap/en/modules/$tmplbase");
});
-$contextModule->mock('config', sub {
- return '';
-});
-
my $suggestor = Koha::SuggestionEngine->new( { plugins => [ 'ExplodedTerms' ] } );
is(ref($suggestor), 'Koha::SuggestionEngine', 'Created suggestion engine');
my $result = $suggestor->get_suggestions({search => 'Cookery'});
-ok((grep { $_->{'search'} eq 'su-na=Cookery' } @$result) && (grep { $_->{'search'} eq 'su-br=Cookery' } @$result) && (grep { $_->{'search'} eq 'su-rl=Cookery' } @$result), "Suggested correct alternatives for keyword search 'Cookery'");
+ok((grep { $_->{'search'} eq 'su-na:Cookery' } @$result) && (grep { $_->{'search'} eq 'su-br:Cookery' } @$result) && (grep { $_->{'search'} eq 'su-rl:Cookery' } @$result), "Suggested correct alternatives for keyword search 'Cookery'");
$result = $suggestor->get_suggestions({search => 'su:Cookery'});
-ok((grep { $_->{'search'} eq 'su-na=Cookery' } @$result) && (grep { $_->{'search'} eq 'su-br=Cookery' } @$result) && (grep { $_->{'search'} eq 'su-rl=Cookery' } @$result), "Suggested correct alternatives for subject search 'Cookery'");
+ok((grep { $_->{'search'} eq 'su-na:Cookery' } @$result) && (grep { $_->{'search'} eq 'su-br:Cookery' } @$result) && (grep { $_->{'search'} eq 'su-rl:Cookery' } @$result), "Suggested correct alternatives for subject search 'Cookery'");
$result = $suggestor->get_suggestions({search => 'nt:Cookery'});