File: 02_code_ref.t

package info (click to toggle)
libdata-formvalidator-perl 4.66-1%2Bsqueeze1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 588 kB
  • ctags: 127
  • sloc: perl: 2,756; makefile: 2
file content (57 lines) | stat: -rw-r--r-- 1,360 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
52
53
54
55
56
57

use strict;

$^W = 1;

use Test::More tests => 8;

use Data::FormValidator;

my $input_profile = {
		       required => [ qw( email phone likes ) ],
		       optional => [ qq( toppings ) ],
		       constraints => {
				       email => "email",
				       phone => "phone",
				      likes => { constraint => sub {return 1;},
						 params => [ qw( likes email ) ],
						},
				      },
               dependencies => {
                    animal => [qw( species no_legs )],
                    plant  => {
                        tree   => [qw( trunk root )],
                        flower => [qw( petals stem )],
                    },
               },
			field_filters => {
					email => sub {return $_[0];},
				},
			};

my $validator = new Data::FormValidator({default => $input_profile});

my $input_hashref = {email => 'invalidemail',
			phone => '201-999-9999',
			likes => ['a','b'],
			toppings => 'foo',
            animal => 'goat',
            plant => 'flower'};

my ($valids, $missings, $invalids, $unknowns);

eval{
  ($valids, $missings, $invalids, $unknowns) = $validator->validate($input_hashref, 'default');
};
ok(not $@);

ok(exists $valids->{'phone'});

is($invalids->[0], 'email');

my %missings;
@missings{@$missings} = ();
#print "@$missings\n";
ok(exists $missings{$_}) for (qw(species no_legs petals stem));
is(@$missings, 4);