[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