#! /usr/local/bin/perl -w
# vim: syntax=perl
# vim: tabstop=4
use strict;
use Test;
use constant NUM_TESTS => 7;
use Locale::Messages qw (LC_MESSAGES textdomain bind_textdomain_filter
gettext dgettext dcgettext
ngettext dngettext dcngettext);
BEGIN {
my $package;
if ($0 =~ /_pp\.t$/) {
$package = 'gettext_pp';
} else {
$package = 'gettext_xs';
}
my $selected = Locale::Messages->select_package ($package);
if ($selected ne $package && 'gettext_xs' eq $package) {
print "1..0 # Skip: Locale::$package not available here.\n";
exit 0;
}
plan tests => NUM_TESTS;
}
textdomain 'bogus';
my $gettext = gettext ('foobar');
my $dgettext = dgettext (bogus => 'foobar');
my $dcgettext = dcgettext (bogus => 'foobar', LC_MESSAGES);
my $ngettext = ngettext ('foobar', 'barbaz', 1);
my $dngettext = dngettext (bogus => 'foobar', 'barbaz', 1);
my $dcngettext = dcngettext (bogus => 'foobar', 'barbaz', 1, LC_MESSAGES);
package MyPackage;
use strict;
sub new {
bless {}, shift;
}
sub filterMethod {
my ($self, $string) = @_;
return 'prefix - ' . $string;
};
package main;
sub wrapper {
my ($string, $obj) = @_;
$obj->filterMethod ($string);
}
my $obj = MyPackage->new;
ok (bind_textdomain_filter ('bogus', \&wrapper, $obj));
my $prefix = 'prefix - ';
ok "$prefix$gettext", gettext ('foobar');
ok "$prefix$dgettext", dgettext (bogus => 'foobar');
ok "$prefix$dcgettext", dcgettext (bogus => 'foobar', LC_MESSAGES);
ok "$prefix$ngettext", ngettext ('foobar', 'barbaz', 1);
ok "$prefix$dngettext", dngettext (bogus => 'foobar', 'barbaz', 1);
ok "$prefix$dcngettext",
dcngettext (bogus => 'foobar', 'barbaz', 1, LC_MESSAGES);
__END__
Local Variables:
mode: perl
perl-indent-level: 4
perl-continued-statement-offset: 4
perl-continued-brace-offset: 0
perl-brace-offset: -4
perl-brace-imaginary-offset: 0
perl-label-offset: -4
cperl-indent-level: 4
cperl-continued-statement-offset: 2
tab-width: 4
End: