File: telnet.t

package info (click to toggle)
libregexp-common-perl 2024080801-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,328 kB
  • sloc: perl: 17,842; makefile: 2
file content (105 lines) | stat: -rwxr-xr-x 2,373 bytes parent folder | download
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#!/usr/bin/perl

use strict;
use lib  qw {blib/lib}, ".";

use Regexp::Common;
use t::Common;

$^W = 1;


sub create_parts;

my $telnet = $RE {URI} {telnet};

my @tests  = (
   [telnet => $telnet => {telnet => NORMAL_PASS | FAIL}]
);

my ($good, $bad) = create_parts;

run_tests version   =>  "Regexp::Common::URI",
          tests     =>  \@tests,
          good      =>  $good,
          bad       =>  $bad,
          query     =>  \&uri,
          wanted    =>  \&wanted,
          filter    =>  \&filter;


sub uri {
    my ($scheme, $user, $password, $host, $port, $slash) = ($_ [0], @{$_ [1]});

    my $uri  =  "$scheme://";
       $uri .=   $user      if defined $user;
       $uri .= ":$password" if defined $user && defined $password;
       $uri .= '@'          if defined $user;
       $uri .=   $host;
       $uri .= ":$port"     if defined $port;
       $uri .=   $slash     if defined $slash;

    $uri;
}


sub wanted {
    my ($scheme, $parts) = @_;
    my @wanted;
       $wanted [0] = $_;
       $wanted [1] = $scheme;
       if (defined $$parts [0]) {
           $wanted [2] = $$parts [0];
           $wanted [3] = $$parts [0];
           if (defined $$parts [1]) {
               $wanted [2] .= ":$$parts[1]";
               $wanted [4]  =   $$parts [1];
           }
       }
       $wanted [5] = $$parts [2];
       $wanted [6] = $$parts [2];
       if (defined $$parts [3]) {
           $wanted [5] .= ":$$parts[3]";
           $wanted [7]  =   $$parts [3];
       }
       $wanted [8] = undef;
       $wanted [8] = "/" if $$parts [4];

    \@wanted;
}



sub create_parts {
    my (@good, @bad);

    # Users.
    $good [0] = [undef, "", qw /abigail ab?ga?l; abi%67ai%6C/];
    $bad  [0] = [qw /abigail-][/];

    # Passwords.
    $good [1] = [undef, "", qw /secret se??et se%FFret/];
    $bad  [1] = [qw /se{}cret/];

    # Hosts.
    $good [2] = [qw /www.abigail.freedom.nl www.PERL.com 127.0.0.1 w3.abigail.freedom.nl/];
    $bad  [2] = [qw /www.example..com w+w.example.com w--.example.com
                     127.0.0.0.1 -w.example.com www.example.1com/];

    # Ports.
    $good [3] = [undef, 123];
    $bad  [3] = ["", qw /-19 : port/];

    # Trailing /.
    $good [4] = [undef, '/'];
    $bad  [4] = ['//', '/foo', '@'];

    (\@good, \@bad);
}


sub filter {
    return !defined $_ [0] -> [0] && defined $_ [0] -> [1] ? 0 : 1
}

__END__