Bug 6679: (follow-up) fix 9 perlcritic violations in C4/TmplTokenType.pm
[koha.git] / t / db_dependent / Languages.t
1 #!/usr/bin/perl
2 #
3 # This Koha test module is a stub!  
4 # Add more tests here!!!
5
6 use strict;
7 use warnings;
8
9 use Test::More tests => 16;
10 use List::Util qw(first);
11 use Data::Dumper;
12 use Test::Warn;
13
14 BEGIN {
15     use_ok('C4::Languages');
16 }
17
18 my $dbh = C4::Context->dbh;
19 $dbh->{AutoCommit} = 0;
20 $dbh->{RaiseError} = 1;
21
22 isnt(C4::Languages::_get_themes(), undef, 'testing _get_themes doesnt return undef');
23
24 ok(C4::Languages::_get_language_dirs(), 'test getting _get_language_dirs');
25
26 is(C4::Languages::accept_language(),undef, 'test that accept_languages returns undef when nothing is entered');
27
28 ok(C4::Languages::getAllLanguages(), 'test get all languages');
29
30 C4::Context->set_preference('AdvancedSearchLanguages', '');
31 my $all_languages = C4::Languages::getAllLanguages('eng');
32 ok(@$all_languages > 10, 'retrieved a bunch of languges');
33
34 my $languages = C4::Languages::getLanguages('eng');
35 is_deeply($languages, $all_languages, 'getLanguages() and getAllLanguages() return the same list');
36
37 $languages = C4::Languages::getLanguages('eng', 1);
38 is_deeply($languages, $all_languages, 'getLanguages() and getAllLanguages() with filtering selected but AdvancedSearchLanguages blank return the same list');
39
40 C4::Context->set_preference('AdvancedSearchLanguages', 'ita|eng');
41 $languages = C4::Languages::getLanguages('eng', 1);
42 is(scalar(@$languages), 2, 'getLanguages() filtering using AdvancedSearchLanguages works');
43
44 my $translatedlanguages1;
45 warnings_are { $translatedlanguages1 = C4::Languages::getTranslatedLanguages('opac','prog',undef,'') }
46              [],
47              'no warnings for calling getTranslatedLanguages';
48 my @currentcheck1 = map { $_->{current} } @$translatedlanguages1;
49 my $onlyzeros = first { $_ != 0 } @currentcheck1;
50 ok(! $onlyzeros, "Everything was zeros.\n");
51
52 my $translatedlanguages2;
53 warnings_are { $translatedlanguages2 = C4::Languages::getTranslatedLanguages('opac','prog','en','') }
54              [],
55              'no warnings for calling getTranslatedLanguages';
56 my @currentcheck2 = map { $_->{current} } @$translatedlanguages2;
57 $onlyzeros = first { $_ != 0 } @currentcheck2;
58 ok($onlyzeros, "There is a $onlyzeros\n");
59
60 # Language Descriptions
61 my $sth = $dbh->prepare("SELECT DISTINCT subtag,type,lang,description from language_descriptions;");
62 $sth->execute();
63 my $DistinctLangDesc = $sth->fetchall_arrayref({});
64
65 $sth = $dbh->prepare("SELECT subtag,type,lang,description from language_descriptions;");
66 $sth->execute();
67 my $LangDesc = $sth->fetchall_arrayref({});
68
69 is(scalar(@$LangDesc),scalar(@$DistinctLangDesc),"No unexpected language_description duplicates.");
70
71 # Language_subtag_registry
72 $sth = $dbh->prepare("SELECT DISTINCT subtag,type,description,added FROM language_subtag_registry;");
73 $sth->execute();
74 my $DistinctLangReg = $sth->fetchall_arrayref({});
75
76 $sth = $dbh->prepare("SELECT subtag,type,description,added FROM language_subtag_registry;");
77 $sth->execute();
78 my $LangReg = $sth->fetchall_arrayref({});
79
80 is(scalar(@$LangReg),scalar(@$DistinctLangReg),"No unexpected language_subtag_registry duplicates.");
81
82 # Language RFC4646 to ISO639
83 $sth = $dbh->prepare("SELECT DISTINCT rfc4646_subtag,iso639_2_code FROM language_rfc4646_to_iso639;");
84 $sth->execute();
85 my $DistinctLangRfc4646 = $sth->fetchall_arrayref({});
86
87 $sth = $dbh->prepare("SELECT rfc4646_subtag,iso639_2_code FROM language_rfc4646_to_iso639;");
88 $sth->execute();
89 my $LangRfc4646 = $sth->fetchall_arrayref({});
90
91 is(scalar(@$LangRfc4646),scalar(@$DistinctLangRfc4646),"No unexpected language_rfc4646_to_iso639 duplicates.");
92
93 $dbh->rollback;