summaryrefslogtreecommitdiff
path: root/t/12quote.t
diff options
context:
space:
mode:
Diffstat (limited to 't/12quote.t')
-rw-r--r--t/12quote.t48
1 files changed, 48 insertions, 0 deletions
diff --git a/t/12quote.t b/t/12quote.t
new file mode 100644
index 0000000..c7dc948
--- /dev/null
+++ b/t/12quote.t
@@ -0,0 +1,48 @@
+#!perl -w
+
+use lib qw(blib/arch blib/lib); # needed since -T ignores PERL5LIB
+use strict;
+
+use Test::More tests => 10;
+
+use DBI qw(:sql_types);
+use Config;
+use Cwd;
+
+$^W = 1;
+$| = 1;
+
+my $dbh = DBI->connect('dbi:ExampleP:', '', '');
+
+sub check_quote {
+ # checking quote
+ is($dbh->quote("quote's"), "'quote''s'", '... quoting strings with embedded single quotes');
+ is($dbh->quote("42", SQL_VARCHAR), "'42'", '... quoting number as SQL_VARCHAR');
+ is($dbh->quote("42", SQL_INTEGER), "42", '... quoting number as SQL_INTEGER');
+ is($dbh->quote(undef), "NULL", '... quoting undef as NULL');
+}
+
+check_quote();
+
+sub check_quote_identifier {
+
+ is($dbh->quote_identifier('foo'), '"foo"', '... properly quotes foo as "foo"');
+ is($dbh->quote_identifier('f"o'), '"f""o"', '... properly quotes f"o as "f""o"');
+ is($dbh->quote_identifier('foo','bar'), '"foo"."bar"', '... properly quotes foo, bar as "foo"."bar"');
+ is($dbh->quote_identifier(undef,undef,'bar'), '"bar"', '... properly quotes undef, undef, bar as "bar"');
+
+ is($dbh->quote_identifier('foo',undef,'bar'), '"foo"."bar"', '... properly quotes foo, undef, bar as "foo"."bar"');
+
+ SKIP: {
+ skip "Can't test alternate quote_identifier logic with DBI_AUTOPROXY", 1
+ if $ENV{DBI_AUTOPROXY};
+ my $qi = $dbh->{dbi_quote_identifier_cache} || die "test out of date with dbi internals?";
+ $qi->[1] = '@'; # SQL_CATALOG_NAME_SEPARATOR
+ $qi->[2] = 2; # SQL_CATALOG_LOCATION
+ is($dbh->quote_identifier('foo',undef,'bar'), '"bar"@"foo"', '... now quotes it as "bar"@"foo" after flushing cache');
+ }
+}
+
+check_quote_identifier();
+
+1;