=pod
Test that lexical importing works, check BEGIN-ish stuff etc.
=cut
use strict;
use Test::More tests => 8;
use re::engine::Plugin ();
like "a", qr/^a$/, "import didn't run, perl's regex engine in effect";
BEGIN {
re::engine::Plugin->import(
exec => sub { $_[0]->pattern eq $_[1] }
);
}
ok "^hello" =~ /^hello/ => "regex modified to match a literal pattern";
{
BEGIN {
re::engine::Plugin->import(
exec => sub { $_[0]->pattern ne $_[1] }
);
}
ok "^hello" !~ /^hello/ => "regex modified not to match a literal pattern";
{
BEGIN {
re::engine::Plugin->import(
exec => sub { $_[0]->pattern eq '^[abc]$' }
);
}
ok "whatever" =~ /^[abc]$/ => "regex modified to match some exact nonsense";
BEGIN { re::engine::Plugin->unimport };
ok "whatever" !~ /^[abc]$/ => "regex modified to match some exact nonsense unimported";
}
ok "^hello" !~ /^hello/ => "regex modified not to match a literal pattern";
}
ok "^hello" =~ /^hello/ => "regex modified to match a literal pattern";
# Another import at the same scope
BEGIN {
re::engine::Plugin->import(
exec => sub { $_[0]->pattern ne $_[1] }
);
}
ok "^hello" !~ /^hello/ => "regex modified not to match a literal pattern";