summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorRicardo Signes <rjbs@cpan.org>2006-07-21 14:39:10 +0000
committerRicardo Signes <rjbs@cpan.org>2006-07-21 14:39:10 +0000
commit23afc308c9e9d967bbe86a70418498b258493ce7 (patch)
tree9a1b4cacc28eb4975226a579febc2950cc0c505c /t
parent46edb96c0901014e4e31d704d2fbc1b705f3a48c (diff)
r23603@knight: rjbs | 2006-07-21 10:14:34 -0400
deal with altering a string
Diffstat (limited to 't')
-rw-r--r--t/classy.t66
1 files changed, 45 insertions, 21 deletions
diff --git a/t/classy.t b/t/classy.t
index aefa8b6..64c8f66 100644
--- a/t/classy.t
+++ b/t/classy.t
@@ -3,7 +3,7 @@ use Test::More;
my @classes
= qw(Email::MIME Email::Simple MIME::Entity Mail::Internet Mail::Message);
-plan tests => 4 * @classes + 1;
+plan tests => 6 * @classes + 6;
use_ok("Email::Abstract");
@@ -14,15 +14,19 @@ SKIP: for my $class (
) {
eval "require $class";
skip "$class can't be loaded", 4 if $@;
- class_ok($class);
-}
-sub class_ok {
- my ($class) = @_;
my $obj = Email::Abstract->cast($message, $class);
isa_ok($obj, $class, "string cast to $class");
+ class_ok($class, $obj, 0);
+}
+
+class_ok('plaintext', $message, 1);
+
+sub class_ok {
+ my ($class, $obj, $readonly) = @_;
+
like(
Email::Abstract->get_header($obj, "Subject"),
qr/Re: Defect in XBD lround/,
@@ -35,22 +39,42 @@ sub class_ok {
"Body OK with $class"
);
- Email::Abstract->set_header(
- $obj,
- "Subject",
- "New Subject"
- );
-
- Email::Abstract->set_body(
- $obj,
- "A completely new body"
- );
-
- like(
- Email::Abstract->as_string($obj),
- qr/Subject: New Subject.*completely new body$/ms,
- "set subject and body, restringified ok with $class"
- );
+ eval {
+ Email::Abstract->set_header(
+ $obj,
+ "Subject",
+ "New Subject"
+ );
+ };
+
+ if ($readonly) {
+ like($@, qr/can't alter string/, "can't alter an unwrapped string");
+ } else {
+ ok(!$@, "no exception on altering object via Email::Abstract");
+ }
+
+ eval {
+ Email::Abstract->set_body(
+ $obj,
+ "A completely new body"
+ );
+ };
+
+ if ($readonly) {
+ like($@, qr/can't alter string/, "can't alter an unwrapped string");
+ } else {
+ ok(!$@, "no exception on altering object via Email::Abstract");
+ }
+
+ if ($readonly) {
+ pass("(no test; can't check altering unalterable alteration)");
+ } else {
+ like(
+ Email::Abstract->as_string($obj),
+ qr/Subject: New Subject.*completely new body$/ms,
+ "set subject and body, restringified ok with $class"
+ );
+ }
}
__DATA__