]> Dogcows Code - chaz/p5-CGI-Ex/blob - t/1_validate_11_no_extra.t
CGI::Ex 2.00
[chaz/p5-CGI-Ex] / t / 1_validate_11_no_extra.t
1 # -*- Mode: Perl; -*-
2
3 =head1 NAME
4
5 1_validate_11_no_extra.t - Test CGI::Ex::Validate's ability to not allow extra form fields
6
7 =cut
8
9 use strict;
10 use Test::More tests => 21;
11
12 use_ok('CGI::Ex::Validate');
13
14 my ($v, $e);
15
16 sub validate { CGI::Ex::Validate::validate(@_) }
17
18 ###----------------------------------------------------------------###
19
20 ### test single group for extra fields
21 $v = [
22 {
23 'general no_extra_fields' => 'all',
24 foo => {max_len => 10},
25 },
26 ];
27
28 $e = validate({}, $v);
29 ok(! $e);
30
31 $e = validate({foo => "foo"}, $v);
32 ok(! $e);
33
34 $e = validate({foo => "foo", bar => "bar"}, $v);
35 ok($e);
36
37 $e = validate({bar => "bar"}, $v);
38 ok($e);
39
40
41 ### test on failed validate if
42 $v = [
43 {
44 'general no_extra_fields' => 'all',
45 'group validate_if' => 'baz',
46 foo => {max_len => 10},
47 },
48 ];
49
50 $e = validate({}, $v);
51 ok(! $e);
52
53 $e = validate({foo => "foo"}, $v);
54 ok(! $e);
55
56 $e = validate({foo => "foo", bar => "bar"}, $v);
57 ok(! $e);
58
59 $e = validate({bar => "bar"}, $v);
60 ok(! $e);
61
62 ### test on successful validate if
63 $v = [
64 {
65 'general no_extra_fields' => 'all',
66 'group validate_if' => 'baz',
67 foo => {max_len => 10},
68 baz => {max_len => 10},
69 },
70 ];
71
72 $e = validate({baz => 1}, $v);
73 ok(! $e);
74
75 $e = validate({baz => 1, foo => "foo"}, $v);
76 ok(! $e);
77
78 $e = validate({baz => 1, foo => "foo", bar => "bar"}, $v);
79 ok($e);
80
81 $e = validate({baz => 1, bar => "bar"}, $v);
82 ok($e);
83
84 ### test on multiple groups, some with validate if
85 $v = [
86 {
87 'general no_extra_fields' => 'all',
88 'group validate_if' => 'baz',
89 foo => {max_len => 10},
90 baz => {max_len => 10},
91 },
92 {
93 'group validate_if' => 'hem',
94 haw => {max_len => 10},
95 },
96 ];
97
98 $e = validate({haw => 1, baz => 1}, $v);
99 ok(! $e);
100
101 $e = validate({haw => 1, baz => 1, foo => "foo"}, $v);
102 ok(! $e);
103
104 $e = validate({haw => 1, baz => 1, foo => "foo", bar => "bar"}, $v);
105 ok($e);
106
107 $e = validate({haw => 1, baz => 1, bar => "bar"}, $v);
108 ok($e);
109
110
111 ### test on multiple groups, some with validate if
112 $v = [
113 {
114 'general no_extra_fields' => 'used',
115 'group validate_if' => 'baz',
116 foo => {max_len => 10},
117 baz => {max_len => 10},
118 },
119 {
120 'group validate_if' => 'hem',
121 haw => {max_len => 10},
122 },
123 ];
124
125 $e = validate({haw => 1, baz => 1}, $v);
126 ok($e);
127
128 $e = validate({haw => 1, baz => 1, foo => "foo"}, $v);
129 ok($e);
130
131 $e = validate({haw => 1, baz => 1, foo => "foo", bar => "bar"}, $v);
132 ok($e);
133
134 $e = validate({haw => 1, baz => 1, bar => "bar"}, $v);
135 ok($e);
This page took 0.038663 seconds and 4 git commands to generate.