File: 07_simple.t

package info (click to toggle)
libformvalidator-simple-perl 0.29-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 412 kB
  • sloc: perl: 3,043; makefile: 4
file content (79 lines) | stat: -rw-r--r-- 1,968 bytes parent folder | download | duplicates (7)
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
use strict;
use Test::More tests => 24;
use CGI;

BEGIN { use_ok("FormValidator::Simple"); }

my $q = CGI->new;
$q->param(text1 => 'HOGEHOGE'           );
$q->param(text2 => 'HOGEHOGEHOGE'       );
$q->param(int   => 7                    );
$q->param(blank => ""                   );
$q->param(email => 'lyo.kato@gmail.com' );

my $results = FormValidator::Simple->check( $q, [
    text1 => [qw/NOT_BLANK/],
    text2 => [qw/NOT_BLANK/],
    int   => [qw/INT/],
    blank => [qw/NOT_BLANK/],
    email => [qw/EMAIL_LOOSE/],
] );

isa_ok( $results, "FormValidator::Simple::Results" );
ok($results->missing('blank'));
ok(!$results->valid('blank'));
ok(!$results->invalid('blank'));
ok($results->has_missing);
ok(!$results->has_invalid);
is($results->valid('text1'), 'HOGEHOGE'          );
is($results->valid('int'),   7                   );
is($results->valid('email'), 'lyo.kato@gmail.com');
ok(!$results->invalid('text1'));
ok(!$results->invalid('int'));
ok(!$results->invalid('email'));
ok(!$results->missing('text1'));
ok(!$results->missing('int'));
ok(!$results->missing('email'));

my @missings = $results->missing;
my @invalids = $results->invalid;
my $valids   = $results->valid;

is(scalar(@missings), 1);
is(scalar(@invalids), 0);
is(scalar(keys %$valids),   4);

my $valid = FormValidator::Simple->new;

$valid->check( $q => [
    text1 => [qw/NOT_BLANK ASCII/],
] );

$valid->check( $q => [
    text2 => [qw/NOT_BLANK NOT_ASCII/],
] );

my $results2 = $valid->results;

ok(!$results2->invalid('text1'));
ok($results2->invalid('text2'));

$valid->set_invalid( hoge => 'HOGE' );

my $results3 = $valid->results;

ok($results3->invalid('hoge'));
ok($results3->invalid( hoge => 'HOGE' ));

# make sure check doesn't eat the profile
my $profile = [
  text => [qw/NOT_BLANK INT/],
  int  => [qw/NOT_BLANK INT/],
];

my $r3 = FormValidator::Simple->check( $q => $profile );
is_deeply( $profile, [
  text => [qw/NOT_BLANK INT/],
  int  => [qw/NOT_BLANK INT/],
] );