]> Dogcows Code - chaz/p5-CGI-Ex/blob - t/1_validate_11_no_extra.t
46ca0e6b242488dcb9f95a0e0d8341b553b6708b
[chaz/p5-CGI-Ex] / t / 1_validate_11_no_extra.t
1 # -*- Mode: Perl; -*-
2
3 use strict;
4
5 $^W = 1;
6
7 ### determine number of tests
8 seek(DATA,0,0);
9 my $prog = join "", <DATA>;
10 my @tests = ($prog =~ /&print_ok\(/g);
11 my $tests = @tests;
12 print "1..$tests\n";
13
14 require CGI::Ex::Validate;
15
16 my ($N, $v, $e, $ok) = (0);
17
18 sub validate {
19 return scalar &CGI::Ex::Validate::validate(@_);
20 }
21 sub print_ok {
22 my $ok = shift;
23 $N ++;
24 warn "Test failed at line ".(caller)[2]."\n" if ! $ok;
25 print "" . ($ok ? "" : "not ") . "ok $N\n";
26 }
27 &print_ok(1);
28
29 ###----------------------------------------------------------------###
30
31 ### test single group for extra fields
32 $v = [
33 {
34 'general no_extra_fields' => 'all',
35 foo => {max_len => 10},
36 },
37 ];
38
39 $e = &validate({}, $v);
40 &print_ok(! $e);
41
42 $e = &validate({foo => "foo"}, $v);
43 &print_ok(! $e);
44
45 $e = &validate({foo => "foo", bar => "bar"}, $v);
46 &print_ok($e);
47
48 $e = &validate({bar => "bar"}, $v);
49 &print_ok($e);
50
51
52 ### test on failed validate if
53 $v = [
54 {
55 'general no_extra_fields' => 'all',
56 'group validate_if' => 'baz',
57 foo => {max_len => 10},
58 },
59 ];
60
61 $e = &validate({}, $v);
62 &print_ok(! $e);
63
64 $e = &validate({foo => "foo"}, $v);
65 &print_ok(! $e);
66
67 $e = &validate({foo => "foo", bar => "bar"}, $v);
68 &print_ok(! $e);
69
70 $e = &validate({bar => "bar"}, $v);
71 &print_ok(! $e);
72
73 ### test on successful validate if
74 $v = [
75 {
76 'general no_extra_fields' => 'all',
77 'group validate_if' => 'baz',
78 foo => {max_len => 10},
79 baz => {max_len => 10},
80 },
81 ];
82
83 $e = &validate({baz => 1}, $v);
84 &print_ok(! $e);
85
86 $e = &validate({baz => 1, foo => "foo"}, $v);
87 &print_ok(! $e);
88
89 $e = &validate({baz => 1, foo => "foo", bar => "bar"}, $v);
90 &print_ok($e);
91
92 $e = &validate({baz => 1, bar => "bar"}, $v);
93 &print_ok($e);
94
95 ### test on multiple groups, some with validate if
96 $v = [
97 {
98 'general no_extra_fields' => 'all',
99 'group validate_if' => 'baz',
100 foo => {max_len => 10},
101 baz => {max_len => 10},
102 },
103 {
104 'group validate_if' => 'hem',
105 haw => {max_len => 10},
106 },
107 ];
108
109 $e = &validate({haw => 1, baz => 1}, $v);
110 &print_ok(! $e);
111
112 $e = &validate({haw => 1, baz => 1, foo => "foo"}, $v);
113 &print_ok(! $e);
114
115 $e = &validate({haw => 1, baz => 1, foo => "foo", bar => "bar"}, $v);
116 &print_ok($e);
117
118 $e = &validate({haw => 1, baz => 1, bar => "bar"}, $v);
119 &print_ok($e);
120
121
122 ### test on multiple groups, some with validate if
123 $v = [
124 {
125 'general no_extra_fields' => 'used',
126 'group validate_if' => 'baz',
127 foo => {max_len => 10},
128 baz => {max_len => 10},
129 },
130 {
131 'group validate_if' => 'hem',
132 haw => {max_len => 10},
133 },
134 ];
135
136 $e = &validate({haw => 1, baz => 1}, $v);
137 &print_ok($e);
138
139 $e = &validate({haw => 1, baz => 1, foo => "foo"}, $v);
140 &print_ok($e);
141
142 $e = &validate({haw => 1, baz => 1, foo => "foo", bar => "bar"}, $v);
143 &print_ok($e);
144
145 $e = &validate({haw => 1, baz => 1, bar => "bar"}, $v);
146 &print_ok($e);
147
148 __DATA__
This page took 0.033853 seconds and 3 git commands to generate.