Rose-HTML-Objects
view release on metacpan or search on metacpan
t/object-l10n.t view on Meta::CPAN
eval { $o->localizer->add_localized_message(name => 'MY_MSG', text => 'foo') };
ok($@ =~ /MY_MSG already exists/, 'localized message - name exists');
$id = $o->localizer->get_message_id('MY_MSG');
eval { $o->localizer->add_localized_message(id => $id, text => 'foo') };
ok($@ =~ /Missing name for new localized message/i, 'localized message - missing name');
eval { $o->localizer->add_localized_message(name => 'FOO') };
ok($@ =~ /Missing new localized message text/i, 'localized message - missing text');
# Errors
eval { $o->localizer->add_localized_error(name => 'MY_ERROR', text => 'foo') };
ok($@, 'localized error - name exists');
$id = $o->localizer->get_error_id('MY_ERROR');
eval { $o->localizer->add_localized_error(id => $id, text => 'foo') };
ok($@ =~ /Missing localized error name/i, 'localized error - missing name');
#
# Subclass with custom messages
#
eval 'require MyObject::BadMessages';
ok($@ =~ /a message with the id 2 already exists/, 'bad messages 1');
eval 'require MyObject::BadErrors';
ok($@ =~ /a message with the id 3 already exists/, 'bad errors 1');
use MyObject::Errors qw(:all);
use MyObject::Messages qw(:all);
is($MyObject::MYOBJ_MSG1, MYOBJ_MSG1, 'MyObject::MYOBJ_MSG1');
is($MyObject::MYOBJ_ERR1, MYOBJ_ERR1, 'MyObject::MYOBJ_ERR1');
BEGIN
{
use MyObject2;
BEGIN
{
MyObject2->localizer->import_message_ids('MYOBJ_MSG2');
MyObject2->localizer->import_error_ids(':all');
}
is($MyObject2::MYOBJ_MSG2, MYOBJ_MSG2, 'MyObject2::MYOBJ_MSG2');
is($MyObject2::MYOBJ_ERR2, MYOBJ_ERR2, 'MyObject2::MYOBJ_ERR2');
}
# MyObject
$o = MyObject->new;
$o->error_id(MYOBJ_ERR1, { a => 'A', b => 'B' });
is($o->error->as_string, 'This is my object msg 1: B, A', 'MYOBJ_ERR1 en');
$o->locale('xx');
is($o->error->as_string, "C'est mon object\nmsg 1: B, A", 'MYOBJ_ERR1 xx');
MyObject->localizer->locale_cascade(
{
'en-us' => [ 'en' ],
'en-uk' => [ 'en' ],
'default' => [ 'en' ],
});
$o->locale('en-us');
is($o->error . '', 'This is my object msg 1: B, A', 'MYOBJ_ERR1 en-us');
# MyObject2
MyObject2->localizer->locale_cascade(
{
'en-us' => [ 'en' ],
'en-uk' => [ 'en' ],
'default' => [ 'en' ],
});
$o = MyObject2->new;
$o->error_id('MYOBJ_ERR2', { a => 'A', b => 'B' });
is($o->error->as_string, 'my msg 2: B, A', 'MYOBJ_ERR2 en');
$o->locale('xx');
is($o->error->as_string, "mon\nmsg 2: B, A", 'MYOBJ_ERR2 xx');
$o->locale('en-us');
is($o->error . '', 'my msg 2: B, A', 'MYOBJ_ERR2 en-us');
$o->error_id(MYOBJ_ERR2, [ 'A','B' ]);
is($o->error->as_string, 'my msg 2: B, A', 'MYOBJ_ERR2 en 2');
$o->error_id(MYOBJ_ERR3(), { a => 'A', b => 'B' });
is($o->error->as_string, 'my msg 3: B, A', 'MYOBJ_ERR3 en');
$o->locale('xx');
is($o->error->as_string, "mon\nmsg 3: B, A", 'MYOBJ_ERR3 xx');
( run in 0.670 second using v1.01-cache-2.11-cpan-13bb782fe5a )