/xt/locale_data_localize.t

http://github.com/gshank/html-formhandler · Raku · 56 lines · 49 code · 7 blank · 0 comment · 1 complexity · ca52d4d37991471723ee83d6ee45e612 MD5 · raw file

  1. use strict;
  2. use warnings;
  3. use Test::More;
  4. use Test::Exception;
  5. use HTML::FormHandler::Field::Text;
  6. BEGIN {
  7. eval "use Data::Localize";
  8. if ($@) {
  9. plan skip_all => "Data::Localize is not installed";
  10. }
  11. }
  12. {
  13. package MyApp::Test::I18N::en_US;
  14. our %Lexicon = (
  15. 'You lost, insert coin' => 'Not won, coin needed',
  16. 'Test field' => 'Grfg svryq',
  17. );
  18. }
  19. {
  20. package MyApp::Test::Form;
  21. use HTML::FormHandler::Moose;
  22. extends 'HTML::FormHandler';
  23. sub _build_language_handle {
  24. my $class = Moose::Meta::Class->create_anon_class(
  25. superclasses => [ 'Data::Localize' ],
  26. methods => {
  27. maketext => sub { shift->localize(@_) }
  28. }
  29. );
  30. my $loc = $class->new_object();
  31. $loc->set_languages('en_US');
  32. $loc->add_localizer(
  33. class => "Namespace",
  34. namespaces => [ "MyApp::Test::I18N" ],
  35. );
  36. return $loc;
  37. }
  38. has_field 'foo';
  39. has_field 'bar';
  40. sub validate_foo {
  41. my ( $self, $field ) = @_;
  42. $field->add_error('You lost, insert coin');
  43. }
  44. }
  45. my $form = MyApp::Test::Form->new;
  46. ok( $form, 'form built' );
  47. $form->process( params => { foo => 'test' } );
  48. is( $form->field('foo')->errors->[0], 'Not won, coin needed', 'right message' );
  49. done_testing;