[Koha-patches] [PATCH] Bug 8846: Exploded Terms test sneakily uses database
Jared Camins-Esakov
jcamins at cpbibliography.com
Sat Sep 29 15:31:34 CEST 2012
Even though there is no need for anything stored in the database for the
test, C4::Templates requires the database. The solution is to mock all
database-using routines.
To test:
1) Stop MySQL
2) Run test
---
t/SuggestionEngine_ExplodedTerms.t | 56 ++++++++++++++++++++++++++++++++++++
1 files changed, 56 insertions(+), 0 deletions(-)
diff --git a/t/SuggestionEngine_ExplodedTerms.t b/t/SuggestionEngine_ExplodedTerms.t
index 52683b2..c43b562 100755
--- a/t/SuggestionEngine_ExplodedTerms.t
+++ b/t/SuggestionEngine_ExplodedTerms.t
@@ -3,12 +3,68 @@
use strict;
use warnings;
+use File::Basename;
+use File::Spec;
use Test::More;
+use Test::MockModule;
BEGIN {
use_ok('Koha::SuggestionEngine');
}
+my $langModule = new Test::MockModule('C4::Languages');
+$langModule->mock('regex_lang_subtags', sub {
+ return {
+ 'extension' => undef,
+ 'script' => undef,
+ 'privateuse' => undef,
+ 'variant' => undef,
+ 'language' => 'en',
+ 'region' => undef,
+ 'rfc4646_subtag' => 'en'
+ };
+});
+$langModule->mock('getTranslatedLanguages', sub {
+ return [
+ {
+ 'sublanguages_loop' => [
+ {
+ 'script' => undef,
+ 'extension' => undef,
+ 'language' => 'en',
+ 'region' => undef,
+ 'region_description' => undef,
+ 'sublanguage_current' => 1,
+ 'privateuse' => undef,
+ 'variant' => undef,
+ 'variant_description' => undef,
+ 'script_description' => undef,
+ 'rfc4646_subtag' => 'en',
+ 'native_description' => 'English',
+ 'enabled' => 1
+ },
+ ],
+ 'plural' => 1,
+ 'language' => 'en',
+ 'current' => 1,
+ 'native_description' => 'English',
+ 'rfc4646_subtag' => 'en',
+ 'group_enabled' => 1
+ }
+ ];
+});
+my $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 $suggestor = Koha::SuggestionEngine->new( { plugins => [ 'ExplodedTerms' ] } );
is(ref($suggestor), 'Koha::SuggestionEngine', 'Created suggestion engine');
--
1.7.2.5
More information about the Koha-patches
mailing list