Skip to content

Commit

Permalink
cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
jamadam committed Oct 22, 2024
1 parent 5bec099 commit 95cb405
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 26 deletions.
47 changes: 21 additions & 26 deletions t/61-escape.t
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,12 @@
use strict;
use warnings;
use lib 't/lib';
use lib 't/lib/cached';
use lib 't/lib/escape';
use Test::More;
use Test::Exception;
use DodTestUtil;

BEGIN {
DodTestUtil->check_driver;

unless (eval { require Cache::Memory }) {
plan skip_all => 'Tests require Cache::Memory';
}
}

plan tests => 6;
Expand All @@ -22,70 +17,70 @@ use Foo;

setup_dbs({ global => ['foo'] });

my $foo1 = Foo->new;
$foo1->name('foo');
$foo1->text('100%');
$foo1->save;
my $percent = Foo->new;
$percent->name('percent');
$percent->text('100%');
$percent->save;

my $foo2 = Foo->new;
$foo2->name('bar');
$foo2->text('100_');
$foo2->save;
my $underscore = Foo->new;
$underscore->name('underscore');
$underscore->text('100_');
$underscore->save;

my $foo3 = Foo->new;
$foo3->name('bar');
$foo3->text('100!');
$foo3->save;
my $exclamation = Foo->new;
$exclamation->name('exclamation');
$exclamation->text('100!');
$exclamation->save;

subtest 'escape_char 1' => sub {
my @got = Foo->search({ text => { op => 'LIKE', value => '100!%', escape => '!' } });
is scalar(@got), 1, 'right number';
is $got[0]->name, 'foo', 'right name';
is $got[0]->name, 'percent', 'right name';
};

subtest 'escape_char 2' => sub {
my @got = Foo->search({ text => { op => 'LIKE', value => '100#_', escape => '#' } });
is scalar(@got), 1, 'right number';
is $got[0]->name, 'bar', 'right name';
is $got[0]->name, 'underscore', 'right name';
};

subtest 'self escape' => sub {
my @got = Foo->search({ text => { op => 'LIKE', value => '100!!', escape => '!' } });
is scalar(@got), 1, 'right number';
is $got[0]->name, 'bar', 'right name';
is $got[0]->name, 'exclamation', 'right name';
};

subtest 'use wildcard charactor as escapr_char' => sub {
plan skip_all => 'MariaDB does not support it' if Foo->driver->dbh->{Driver}->{Name} eq 'MariaDB';
my @got = Foo->search({ text => { op => 'LIKE', value => '100_%', escape => '_' } });
is scalar(@got), 1, 'right number';
is $got[0]->name, 'foo', 'right name';
is $got[0]->name, 'percent', 'right name';
};

subtest 'use of special characters' => sub {
subtest 'escape_char single quote' => sub {
my @got = Foo->search({ text => { op => 'LIKE', value => "100'_", escape => "''" } });
is scalar(@got), 1, 'right number';
is $got[0]->name, 'bar', 'right name';
is $got[0]->name, 'underscore', 'right name';
};

if (Foo->driver->dbh->{Driver}->{Name} =~ /mysql|mariadb/i) {
subtest 'escape_char single quote' => sub {
my @got = Foo->search({ text => { op => 'LIKE', value => "100'_", escape => "\\'" } });
is scalar(@got), 1, 'right number';
is $got[0]->name, 'bar', 'right name';
is $got[0]->name, 'underscore', 'right name';
};

subtest 'escape_char backslash' => sub {
my @got = Foo->search({ text => { op => 'LIKE', value => '100\\_', escape => '\\\\' } });
is scalar(@got), 1, 'right number';
is $got[0]->name, 'bar', 'right name';
is $got[0]->name, 'underscore', 'right name';
};
} else {
subtest 'escape_char backslash' => sub {
my @got = Foo->search({ text => { op => 'LIKE', value => '100\\_', escape => '\\' } });
is scalar(@got), 1, 'right number';
is $got[0]->name, 'bar', 'right name';
is $got[0]->name, 'underscore', 'right name';
};
}
};
Expand Down
File renamed without changes.

0 comments on commit 95cb405

Please sign in to comment.