lemonldap-ng/modules/lemonldap-ng-manager/t/20-Manager-i18n.t
2008-06-06 03:53:14 +00:00

77 lines
1.7 KiB
Perl

# Lemonldap::NG::Manager translation test
#
# Here, we test :
# 1) each keyword is translated in each language
# 2) display functions in english language
BEGIN {
our %lang = (
en => 'English',
fr => 'French',
);
}
use Test::More tests => ( keys(%lang) + 4 );
use_ok('Lemonldap::NG::Manager');
my $win = 0;
$win ++ unless( -e '/dev/null' );
if($win) {
open STDOUT, '>test_stdout.txt';
}
else {
open STDOUT, '>/dev/null';
}
foreach ( keys %lang ) {
ok( &compare( "en", $_ ),
"Compare English and $lang{$_} translation coverage" )
unless ( $_ eq 'en' );
}
$ENV{SCRIPT_NAME} = "__SCRIPTNAME__";
$ENV{SCRIPT_FILENAME} = $0;
$ENV{HTTP_ACCEPT_LANGUAGE} = 'en';
my $h;
@ARGV = ("help=groups");
ok(
$h = new Lemonldap::NG::Manager(
{
configStorage => {
type => 'File',
dirName => ".",
},
dhtmlXTreeImageLocation => "/imgs/",
jsFile => 'example/lemonldap-ng-manager.js',
}
),
'New manager object'
);
ok( $h->main(), "HTML code" );
ok( $h->print_help(), "Help page" );
ok( $h->buildTree(), "XML tree" );
unlink('test_stdout.txt') if($win);
sub compare {
my ( $l1, $l2 ) = @_;
$r1 = &{ "Lemonldap::NG::Manager::_i18n::" . $l1 };
$r2 = &{ "Lemonldap::NG::Manager::_i18n::" . $l2 };
my $r = 1;
foreach ( keys %$r1 ) {
unless ( $r2->{$_} ) {
print STDERR "$_ is present in $l1 but miss in $l2";
$r = 0;
}
}
foreach ( keys %$r2 ) {
unless ( $r1->{$_} ) {
print STDERR "$_ is present in $l2 but miss in $l1";
$r = 0;
}
}
return $r;
}