use strict;
use Test::More tests => 10;
BEGIN {
# trick DBI.pm into thinking we are running under mod_perl
# set both %ENV keys for old and new DBI versions
$ENV{MOD_PERL} = 'CGI-Perl'; # for $DBI::VERSION > 1.33
$ENV{GATEWAY_INTERFACE} = 'CGI-Perl'; # for older DBI.pm
use_ok('Apache::DBI');
use_ok('DBI');
};
my $dbd_mysql = eval { require DBD::mysql };
#$Apache::DBI::DEBUG = 10;
#DBI->trace(2");
SKIP: {
skip "Could not load DBD::mysql", 8 unless $dbd_mysql;
ok($dbd_mysql, "DBD::mysql loaded");
SKIP: {
skip 'Can only check "connect_via" in DBI >= 1.38', 1 unless $DBI::VERSION >= 1.38;
# checking private DBI data here is probably bad...
is($DBI::connect_via, 'Apache::DBI::connect', 'DBI is using Apache::DBI');
}
my $dbh_1 = DBI->connect('dbi:mysql:test', undef, undef, { RaiseError => 0, PrintError => 0 });
SKIP: {
skip "Could not connect to test database: $DBI::errstr", 6 unless $dbh_1;
isa_ok($dbh_1, 'Apache::DBI::db');
ok(my $thread_1 = $dbh_1->{'mysql_thread_id'}, "Connected 1");
my $dbh_2 = DBI->connect('dbi:mysql:test', undef, undef, { RaiseError => 0, PrintError => 0 });
ok(my $thread_2 = $dbh_2->{'mysql_thread_id'}, "Connected 2");
is($thread_1, $thread_2, "got the same connection both times");
my $dbh_3 = DBI->connect('dbi:mysql:test', undef, undef, { RaiseError => 0, PrintError => 1 });
ok(my $thread_3 = $dbh_3->{'mysql_thread_id'}, "Connected 3");
isnt($thread_1, $thread_3, "got different connection from different attributes");
}
}
1;