Locale-Maketext-Gettext/t/07-f-basic.t

276 lines
6.1 KiB
Perl
Executable File
Raw Blame History

#! /usr/bin/perl -w
# Basic test suite for the functional interface
# Copyright (c) 2003-2008 imacat. All rights reserved. This program is free
# software; you can redistribute it and/or modify it under the same terms
# as Perl itself.
use 5.008;
use strict;
use warnings;
use Test;
BEGIN { plan tests => 41 }
use FindBin;
use File::Spec::Functions qw(catdir catfile);
use lib $FindBin::Bin;
use vars qw($LOCALEDIR $r);
$LOCALEDIR = catdir($FindBin::Bin, "locale");
delete $ENV{$_}
foreach qw(LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES LC_NUMERIC
LC_MONETARY LC_TIME LANG);
# Basic test suite
# bindtextdomain
$r = eval {
use Locale::Maketext::Gettext::Functions;
Locale::Maketext::Gettext::Functions::_reset();
$_ = bindtextdomain("test", $LOCALEDIR);
return 1;
};
# 1
ok($r, 1);
# 2
ok($_, $LOCALEDIR);
# textdomain
$r = eval {
use Locale::Maketext::Gettext::Functions;
Locale::Maketext::Gettext::Functions::_reset();
bindtextdomain("test", $LOCALEDIR);
$_ = textdomain("test");
return 1;
};
# 3
ok($r, 1);
# 4
ok($_, "test");
# get_handle
$r = eval {
use Locale::Maketext::Gettext::Functions;
Locale::Maketext::Gettext::Functions::_reset();
bindtextdomain("test", $LOCALEDIR);
textdomain("test");
get_handle("en");
return 1;
};
# 5
ok($r, 1);
# maketext
$r = eval {
use Locale::Maketext::Gettext::Functions;
Locale::Maketext::Gettext::Functions::_reset();
bindtextdomain("test", $LOCALEDIR);
textdomain("test");
get_handle("en");
$_ = maketext("Hello, world!");
return 1;
};
# 6
ok($r, 1);
# 7
ok($_, "Hiya :)");
# __ (shortcut to maketext)
$r = eval {
use Locale::Maketext::Gettext::Functions;
Locale::Maketext::Gettext::Functions::_reset();
bindtextdomain("test", $LOCALEDIR);
textdomain("test");
get_handle("en");
$_ = __("Hello, world!");
return 1;
};
# 8
ok($r, 1);
# 9
ok($_, "Hiya :)");
# N_ (do nothing)
$r = eval {
use Locale::Maketext::Gettext::Functions;
Locale::Maketext::Gettext::Functions::_reset();
bindtextdomain("test", $LOCALEDIR);
textdomain("test");
get_handle("en");
$_ = N_("Hello, world!");
return 1;
};
# 10
ok($r, 1);
# 11
ok($_, "Hello, world!");
# N_ (do nothing)
$r = eval {
use Locale::Maketext::Gettext::Functions;
Locale::Maketext::Gettext::Functions::_reset();
bindtextdomain("test", $LOCALEDIR);
textdomain("test");
get_handle("en");
# <20><><EFBFBD>l<EFBFBD><6C><EFBFBD>A<EFBFBD>o<EFBFBD>ɤj<C9A4><6A><EFBFBD>ʡI :p <20>]From: <20>x<EFBFBD>W<EFBFBD>R<EFBFBD>E<EFBFBD><45><EFBFBD>^
@_ = N_("Hello, world!", "Cool!", "Big watermelon");
return 1;
};
# 12
ok($r, 1);
# 13
ok($_[0], "Hello, world!");
# 14
ok($_[1], "Cool!");
# 15
ok($_[2], "Big watermelon");
$r = eval {
use Locale::Maketext::Gettext::Functions;
Locale::Maketext::Gettext::Functions::_reset();
bindtextdomain("test", $LOCALEDIR);
textdomain("test");
get_handle("en");
$_ = N_("Hello, world!");
return 1;
};
# 16
ok($r, 1);
# 17
ok($_, "Hello, world!");
# maketext
# English
$r = eval {
use Locale::Maketext::Gettext::Functions;
Locale::Maketext::Gettext::Functions::_reset();
@_ = qw();
bindtextdomain("test", $LOCALEDIR);
textdomain("test");
get_handle("en");
$_[0] = __("Hello, world!");
$_[1] = pmaketext("Menu|File|", "Hello, world!");
$_[2] = pmaketext("Menu|View|", "Hello, world!");
return 1;
};
# 18
ok($r, 1);
# 19
ok($_[0], "Hiya :)");
# 20
ok($_[1], "Hiya :) under the File menu");
# 21
ok($_[2], "Hiya :) under the View menu");
# Traditional Chinese
$r = eval {
use Locale::Maketext::Gettext::Functions;
Locale::Maketext::Gettext::Functions::_reset();
@_ = qw();
bindtextdomain("test", $LOCALEDIR);
textdomain("test");
get_handle("zh-tw");
$_[0] = __("Hello, world!");
$_[1] = pmaketext("Menu|File|", "Hello, world!");
$_[2] = pmaketext("Menu|View|", "Hello, world!");
return 1;
};
# 22
ok($r, 1);
# 23
ok($_[0], "<22>j<EFBFBD>a<EFBFBD>n<EFBFBD>C");
# 24
ok($_[1], "<22>ɮ׿<C9AE><D7BF><EFBFBD><EFBFBD>U<EFBFBD><55><EFBFBD>j<EFBFBD>a<EFBFBD>n<EFBFBD>C");
# 25
ok($_[2], "<22>s<EFBFBD><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>U<EFBFBD><55><EFBFBD>j<EFBFBD>a<EFBFBD>n<EFBFBD>C");
# Simplified Chinese
$r = eval {
use Locale::Maketext::Gettext::Functions;
Locale::Maketext::Gettext::Functions::_reset();
@_ = qw();
bindtextdomain("test", $LOCALEDIR);
textdomain("test");
get_handle("zh-cn");
$_[0] = __("Hello, world!");
$_[1] = pmaketext("Menu|File|", "Hello, world!");
$_[2] = pmaketext("Menu|View|", "Hello, world!");
return 1;
};
# 26
ok($r, 1);
# 27
ok($_[0], "<22><><EFBFBD>Һá<D2BA>");
# 28
ok($_[1], "<22><><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>µĴ<C2B5><C4B4>Һá<D2BA>");
# 29
ok($_[2], "<22><><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>µĴ<C2B5><C4B4>Һá<D2BA>");
# maketext - by environment
# English
$r = eval {
use Locale::Maketext::Gettext::Functions;
Locale::Maketext::Gettext::Functions::_reset();
@_ = qw();
bindtextdomain("test", $LOCALEDIR);
textdomain("test");
$ENV{"LANG"} = "en";
get_handle();
$_[0] = __("Hello, world!");
$_[1] = pmaketext("Menu|File|", "Hello, world!");
$_[2] = pmaketext("Menu|View|", "Hello, world!");
return 1;
};
# 30
ok($r, 1);
# 31
ok($_[0], "Hiya :)");
# 32
ok($_[1], "Hiya :) under the File menu");
# 33
ok($_[2], "Hiya :) under the View menu");
# Traditional Chinese
$r = eval {
use Locale::Maketext::Gettext::Functions;
Locale::Maketext::Gettext::Functions::_reset();
@_ = qw();
bindtextdomain("test", $LOCALEDIR);
textdomain("test");
$ENV{"LANG"} = "zh-tw";
get_handle();
$_[0] = __("Hello, world!");
$_[1] = pmaketext("Menu|File|", "Hello, world!");
$_[2] = pmaketext("Menu|View|", "Hello, world!");
return 1;
};
# 34
ok($r, 1);
# 35
ok($_[0], "<22>j<EFBFBD>a<EFBFBD>n<EFBFBD>C");
# 36
ok($_[1], "<22>ɮ׿<C9AE><D7BF><EFBFBD><EFBFBD>U<EFBFBD><55><EFBFBD>j<EFBFBD>a<EFBFBD>n<EFBFBD>C");
# 37
ok($_[2], "<22>s<EFBFBD><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>U<EFBFBD><55><EFBFBD>j<EFBFBD>a<EFBFBD>n<EFBFBD>C");
# Simplified Chinese
$r = eval {
use Locale::Maketext::Gettext::Functions;
Locale::Maketext::Gettext::Functions::_reset();
@_ = qw();
bindtextdomain("test", $LOCALEDIR);
textdomain("test");
$ENV{"LANG"} = "zh-cn";
get_handle();
$_[0] = __("Hello, world!");
$_[1] = pmaketext("Menu|File|", "Hello, world!");
$_[2] = pmaketext("Menu|View|", "Hello, world!");
return 1;
};
# 38
ok($r, 1);
# 39
ok($_[0], "<22><><EFBFBD>Һá<D2BA>");
# 40
ok($_[1], "<22><><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>µĴ<C2B5><C4B4>Һá<D2BA>");
# 41
ok($_[2], "<22><><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>µĴ<C2B5><C4B4>Һá<D2BA>");