]> git.vpit.fr Git - perl/modules/re-engine-Plugin.git/blob - t/taint/util.t
Importing re-engine-Plugin-0.02.tar.gz
[perl/modules/re-engine-Plugin.git] / t / taint / util.t
1 #!/usr/bin/env perl -T
2 use strict;
3 use Test::More;
4
5 BEGIN {
6     eval {
7         require Taint::Util;
8         Taint::Util->import;
9     };
10
11     plan $@
12         ? (skip_all => "Taint::Util required for taint tests")
13         : (tests => 8);
14 }
15
16 use re::engine::Plugin (
17     exec => sub {
18         my ($re, $str) = @_;
19
20         ok(tainted($str) => 'matched string tainted');
21
22         my $one = $str;
23         my $two = $str; untaint($two);
24
25         ok(tainted($one));
26         ok(!tainted($two));
27
28         $re->num_captures(
29             FETCH => sub {
30                 my ($re, $p) = @_;
31
32                 return $one if $p == 1;
33                 return $two if $p == 2;
34             },
35         );
36
37         1;
38     }
39 );
40
41 my $str = "string";
42 taint($str);
43 ok(tainted($str));
44
45 if ($str =~ /pattern/) {
46     cmp_ok $1, 'eq', $str;
47     ok(tainted($1) => '$1 is tainted');
48
49     cmp_ok $2, 'eq', $str;
50     ok(!tainted($2) => '$2 is untainted');
51 }