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 )