]> Dogcows Code - chaz/p5-CGI-Ex/blob - t/1_validate_08_yaml_file.t
CGI::Ex 2.02
[chaz/p5-CGI-Ex] / t / 1_validate_08_yaml_file.t
1 # -*- Mode: Perl; -*-
2
3 =head1 NAME
4
5 1_validate_08_yaml_file.t - Check for CGI::Ex::Validate's ability to load YAML conf files.
6
7 =cut
8
9 use strict;
10 use Test::More tests => 21;
11
12 SKIP: {
13
14 skip("Missing YAML.pm", 21) if ! eval { require 'YAML.pm' };
15
16 use_ok('CGI::Ex::Validate');
17
18 my ($v, $e);
19
20 sub validate { scalar CGI::Ex::Validate::validate(@_) }
21
22 ###----------------------------------------------------------------###
23
24 ### where are my samples
25 my $dir = __FILE__;
26 $dir =~ tr|\\|/|; # should probably use File::Spec
27 $dir =~ s|[^/]+$|../samples| || die "Couldn't determine dir";
28 $dir =~ s|^t/|./t/|; # to satisfy conf
29
30 ### single group
31 $v = "$dir/yaml1.val";
32
33 $e = validate({}, $v);
34 ok($e, 'nothing passed');
35 $e = validate({user => 1}, $v);
36 ok(! $e, 'user passed');
37 $e = validate({user => 1, bar => 1}, $v);
38 ok($e, 'user and bar passed');
39 $e = validate({user => 1, bar => 1, foo => 1}, $v);
40 ok(! $e, 'user and bar and foo passed');
41
42
43 ### single group - default extension
44 $v = "$dir/yaml1";
45
46 $e = validate({}, $v);
47 ok($e);
48 $e = validate({user => 1}, $v);
49 ok(! $e);
50 $e = validate({user => 1, bar => 1}, $v);
51 ok($e);
52 $e = validate({user => 1, bar => 1, foo => 1}, $v);
53 ok(! $e);
54
55
56 ### three groups, some with validate_if's - using arrayref
57 $v = "$dir/yaml2.val";
58
59 $e = validate({}, $v);
60 ok($e);
61
62 $e = validate({
63 raspberry => 'tart',
64 }, $v);
65 ok(! $e);
66
67 $e = validate({
68 foo => 1,
69 raspberry => 'tart',
70 }, $v);
71 ok($e);
72
73 $e = validate({
74 foo => 1,
75 bar => 1,
76 raspberry => 'tart',
77 }, $v);
78 ok(! $e);
79
80 $e = validate({
81 foo => 1,
82 bar => 1,
83 hem => 1,
84 raspberry => 'tart',
85 }, $v);
86 ok($e);
87
88 $e = validate({
89 foo => 1,
90 bar => 1,
91 hem => 1,
92 haw => 1,
93 raspberry => 'tart',
94 }, $v);
95 ok(! $e);
96
97
98 ### three groups, some with validate_if's - using documents
99 $v = "$dir/yaml3.val";
100
101 $e = validate({}, $v);
102 ok($e);
103
104 $e = validate({
105 raspberry => 'tart',
106 }, $v);
107 ok(! $e);
108
109 $e = validate({
110 foo => 1,
111 raspberry => 'tart',
112 }, $v);
113 ok($e);
114
115 $e = validate({
116 foo => 1,
117 bar => 1,
118 raspberry => 'tart',
119 }, $v);
120 ok(! $e);
121
122 $e = validate({
123 foo => 1,
124 bar => 1,
125 hem => 1,
126 raspberry => 'tart',
127 }, $v);
128 ok($e);
129
130 $e = validate({
131 foo => 1,
132 bar => 1,
133 hem => 1,
134 haw => 1,
135 raspberry => 'tart',
136 }, $v);
137 ok(! $e);
138
139 } # end of SKIP
This page took 0.036653 seconds and 4 git commands to generate.