X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=install%2F5.005%2FDBD-Pg-1.22-fixvercmp%2Ft%2F12placeholders.t;fp=install%2F5.005%2FDBD-Pg-1.22-fixvercmp%2Ft%2F12placeholders.t;h=bd79ea72bb2331e5db5e061ea50a0efaf2cbb63c;hp=0000000000000000000000000000000000000000;hb=ee146c3eada3bdb419ba471dd6df5e889d7dd7e5;hpb=c29fa7acc16efcc86af06077e739fca8b783c3c1 diff --git a/install/5.005/DBD-Pg-1.22-fixvercmp/t/12placeholders.t b/install/5.005/DBD-Pg-1.22-fixvercmp/t/12placeholders.t new file mode 100644 index 000000000..bd79ea72b --- /dev/null +++ b/install/5.005/DBD-Pg-1.22-fixvercmp/t/12placeholders.t @@ -0,0 +1,125 @@ +use strict; +use DBI; +use Test::More; + +if (defined $ENV{DBI_DSN}) { + plan tests => 9; +} else { + plan skip_all => 'cannot test without DB info'; +} + +my $dbh = DBI->connect($ENV{DBI_DSN}, $ENV{DBI_USER}, $ENV{DBI_PASS}, + {RaiseError => 1, AutoCommit => 0} + ); +ok(defined $dbh, + 'connect with transaction' + ); + +my $quo = $dbh->quote("\\'?:"); +my $sth = $dbh->prepare(qq{ + INSERT INTO test (name) VALUES ($quo) + }); +$sth->execute(); + +my $sql = <prepare($sql); +$sth->execute(); + +my ($retr) = $sth->fetchrow_array(); +ok((defined($retr) && $retr eq "\\'?:"), + 'fetch' + ); + +eval { + local $dbh->{PrintError} = 0; + $sth->execute('foo'); +}; +ok($@, + 'execute with one bind param where none expected' + ); + +$sql = <prepare($sql); + +$sth->execute("\\'?:"); + +($retr) = $sth->fetchrow_array(); +ok((defined($retr) && $retr eq "\\'?:"), + 'execute with ? placeholder' + ); + +$sql = <prepare($sql); + +$sth->execute("\\'?:"); + +($retr) = $sth->fetchrow_array(); +ok((defined($retr) && $retr eq "\\'?:"), + 'execute with :1 placeholder' + ); + +$sql = <prepare($sql); + +eval { + local $dbh->{PrintError} = 0; + $sth->execute('foo'); +}; +ok($@, + 'execute with quoted ?' + ); + +$sql = <prepare($sql); + +eval { + local $dbh->{PrintError} = 0; + $sth->execute('foo'); +}; +ok($@, + 'execute with quoted :1' + ); + +$sql = <prepare($sql); + +eval { + local $dbh->{PrintError} = 0; + local $sth->{PrintError} = 0; + $sth->execute('foo'); +}; +ok($@, + 'execute with quoted ?' + ); + +$sth->finish(); +$dbh->rollback(); + +ok($dbh->disconnect(), + 'disconnect' + );