File: init.t

package info (click to toggle)
libhtml-formhandler-perl 0.40067-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 2,432 kB
  • ctags: 697
  • sloc: perl: 9,312; makefile: 2
file content (51 lines) | stat: -rw-r--r-- 1,753 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
use strict;
use warnings;
use Test::More;

{
    package My::Default;
    use Moose::Role;

    sub build_default_over_obj {
        return 'From Method';
    }
}

{
   package My::Other::Form;
   use HTML::FormHandler::Moose;
   extends 'HTML::FormHandler';

   has '+name' => ( default => 'testform_' );
   has_field 'optname' => ( temp => 'First' );
   has_field 'reqname' => ( required => 1, default_over_obj => 'From Attribute' );
   has_field 'altname' => ( traits => ['My::Default'] );
   has_field 'somename';
   has_field 'extraname' => ( default_over_obj => '' );

   sub default_somename {
      my $self = shift;
      return 'SN from meth';
   }
}

my $init_object = { reqname => 'Starting Perl', optname => 'Over Again', altname => 'test',
    extraname => 'not_empty',
};
my $form = My::Other::Form->new;
ok( $form, 'get form' );
my $params = { reqname => 'Sweet', optname => 'Charity', somename => 'Exists' };

$form->process( init_object => $init_object, params => $params );
ok( $form->validated, 'form with init_obj & params validated' );
is( $form->field('reqname')->init_value, 'From Attribute', 'correct init_value');
is(  $form->field('optname')->init_value, 'Over Again', 'correct init_value no meth');
is( $form->field('altname')->init_value, 'From Method', 'correct init_value from trait');
is( $form->field('somename')->init_value, 'SN from meth', 'correct for init_obj undef');
is( $form->field('somename')->value, 'Exists', 'correct value for init_obj undef');
is( $form->field('extraname')->init_value, '', 'correct value for empty string default');

$form = My::Other::Form->new( init_object => $init_object );
is( $form->field('somename')->init_value, 'SN from meth', 'correct init_value new w init_obj');

done_testing;