Bug 10986: (follow-up) add unit tests for getLanguages() and language filter
authorGalen Charlton <gmc@esilibrary.com>
Sat, 19 Apr 2014 17:34:34 +0000 (17:34 +0000)
committerGalen Charlton <gmc@esilibrary.com>
Sat, 19 Apr 2014 17:34:34 +0000 (17:34 +0000)
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
t/db_dependent/Languages.t

index f3bac39..b3c82bc 100755 (executable)
@@ -6,12 +6,16 @@
 use strict;
 use warnings;
 
-use Test::More tests => 5;
+use Test::More tests => 9;
 
 BEGIN {
-        use_ok('C4::Languages');
+    use_ok('C4::Languages');
 }
 
+my $dbh = C4::Context->dbh;
+$dbh->{AutoCommit} = 0;
+$dbh->{RaiseError} = 1;
+
 isnt(C4::Languages::_get_themes(), undef, 'testing _get_themes doesnt return undef');
 
 ok(C4::Languages::_get_language_dirs(), 'test getting _get_language_dirs');
@@ -19,3 +23,19 @@ ok(C4::Languages::_get_language_dirs(), 'test getting _get_language_dirs');
 is(C4::Languages::accept_language(),undef, 'test that accept_languages returns undef when nothing is entered');
 
 ok(C4::Languages::getAllLanguages(), 'test get all languages');
+
+C4::Context->set_preference('AdvancedSearchLanguages', '');
+my $all_languages = C4::Languages::getAllLanguages('eng');
+ok(@$all_languages > 10, 'retrieved a bunch of languges');
+
+my $languages = C4::Languages::getLanguages('eng');
+is_deeply($languages, $all_languages, 'getLanguages() and getAllLanguages() return the same list');
+
+$languages = C4::Languages::getLanguages('eng', 1);
+is_deeply($languages, $all_languages, 'getLanguages() and getAllLanguages() with filtering selected but AdvancedSearchLanguages blank return the same list');
+
+C4::Context->set_preference('AdvancedSearchLanguages', 'ita|eng');
+$languages = C4::Languages::getLanguages('eng', 1);
+is(scalar(@$languages), 2, 'getLanguages() filtering using AdvancedSearchLanguages works');
+
+$dbh->rollback;