summaryrefslogtreecommitdiff
path: root/cpan/dist/Crypt-RandPasswd/t/03-chars.t
blob: 183161a58e266dca8087e62ebf8119ddd8bf5e64 (plain)
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
#!perl

use strict;
use warnings;
use Crypt::RandPasswd;
use Test::More 0.88 tests => 20;

my $word;
my $length;
my $min_length;
my $max_length;
my @chars;
my $char;
my $regexp;

for ($length = 10; $length < 20; $length++) {
    $word = Crypt::RandPasswd->chars($length, $length);
    ok(length($word) == $length && valid_chars($word),
       "create random letter string of length $length");
}

for ($min_length = 5; $min_length < 15; $min_length++) {
    $max_length = $min_length + 5;
    $word = Crypt::RandPasswd->chars($min_length, $max_length);
    ok(length($word) >= $min_length && length($word) <= $max_length && valid_chars($word),
       "create random letter string of length $min_length .. $max_length");
}

sub valid_chars
{
    my $word = shift;

    foreach my $char (split('', $word)) {
        return 0 if ord($char) < ord('!') || ord($char) > ord('~');
    }
    return 1;
}