Cleanup shebang lines of all maint/example scripts, remove from tests entirely
[dbsrgits/DBIx-Class.git] / t / 54taint.t
1 #!/usr/bin/env perl -T
2
3 # the above line forces Test::Harness into taint-mode
4 # DO NOT REMOVE
5
6 use strict;
7 use warnings;
8
9 use Test::More;
10 use Test::Exception;
11 use lib qw(t/lib);
12
13 throws_ok (
14   sub { $ENV{PATH} . (kill (0)) },
15   qr/Insecure dependency in kill/,
16   'taint mode active'
17 );
18
19 {
20   package DBICTest::Taint::Classes;
21
22   use Test::More;
23   use Test::Exception;
24
25   use base qw/DBIx::Class::Schema/;
26
27   lives_ok (sub {
28     __PACKAGE__->load_classes(qw/Manual/);
29     ok( __PACKAGE__->source('Manual'), 'The Classes::Manual source has been registered' );
30     __PACKAGE__->_unregister_source (qw/Manual/);
31   }, 'Loading classes with explicit load_classes worked in taint mode' );
32
33   lives_ok (sub {
34     __PACKAGE__->load_classes();
35     ok( __PACKAGE__->source('Auto'), 'The Classes::Auto source has been registered' );
36       ok( __PACKAGE__->source('Auto'), 'The Classes::Manual source has been re-registered' );
37   }, 'Loading classes with Module::Find/load_classes worked in taint mode' );
38 }
39
40 {
41   package DBICTest::Taint::Namespaces;
42
43   use Test::More;
44   use Test::Exception;
45
46   use base qw/DBIx::Class::Schema/;
47
48   lives_ok (sub {
49     __PACKAGE__->load_namespaces();
50     ok( __PACKAGE__->source('Test'), 'The Namespaces::Test source has been registered' );
51   }, 'Loading classes with Module::Find/load_namespaces worked in taint mode' );
52 }
53
54 done_testing;