summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2011-09-05 20:02:22 -0500
committerJesse Luehrs <doy@tozt.net>2011-09-05 20:02:22 -0500
commit12b5662ca1ca213389b3d4af99f8616b2129f0cc (patch)
tree55e27ce0b0bc8573db36a22da7352a9a88f50485
parent949492165093e3f9fc2019be296f02a503aba43f (diff)
downloadpackage-stash-12b5662ca1ca213389b3d4af99f8616b2129f0cc.tar.gz
package-stash-12b5662ca1ca213389b3d4af99f8616b2129f0cc.zip
tests, and make this actually work
-rw-r--r--lib/Package/Stash/PP.pm2
-rw-r--r--t/basic.t20
2 files changed, 21 insertions, 1 deletions
diff --git a/lib/Package/Stash/PP.pm b/lib/Package/Stash/PP.pm
index 408f3be..247a3b8 100644
--- a/lib/Package/Stash/PP.pm
+++ b/lib/Package/Stash/PP.pm
@@ -40,7 +40,7 @@ sub new {
. "currently support anonymous stashes. You should install "
. "Package::Stash::XS";
}
- elsif ($package !~ /[0-9A-Z_a-z]+(?:::[0-9A-Z_a-z]+)*/) {
+ elsif ($package !~ /\A[0-9A-Z_a-z]+(?:::[0-9A-Z_a-z]+)*\z/) {
confess "$package is not a module name";
}
diff --git a/t/basic.t b/t/basic.t
index a106e9e..f20e055 100644
--- a/t/basic.t
+++ b/t/basic.t
@@ -417,4 +417,24 @@ like(exception {
);
}
+for my $package ('Foo:Bar', 'Foo/Bar', 'Foo Bar', 'Foo:::Bar', '') {
+ like(
+ exception { Package::Stash->new($package) },
+ qr/^$package is not a module name/,
+ "$package is not a module name"
+ );
+}
+
+like(
+ exception { Package::Stash->new([]) },
+ qr/^Package::Stash->new must be passed the name of the package to access/,
+ "module name must be a string"
+);
+
+like(
+ exception { Package::Stash->new(undef) },
+ qr/^Package::Stash->new must be passed the name of the package to access/,
+ "module name must be a string"
+);
+
done_testing;