diff --git a/lib/WebGUI/Macro/NewMail.pm b/lib/WebGUI/Macro/NewMail.pm
index f583c3dc3..aff804468 100644
--- a/lib/WebGUI/Macro/NewMail.pm
+++ b/lib/WebGUI/Macro/NewMail.pm
@@ -11,6 +11,7 @@ package WebGUI::Macro::NewMail;
#-------------------------------------------------------------------
use strict;
+use WebGUI::Inbox;
=head1 NAME
@@ -48,15 +49,13 @@ optional css class to assign to the hyperlink
sub process {
my $session = shift;
- my @param = @_;
- my $class = $param[0];
+ my $class = $_[0];
- my $db = $session->db;
- my $i18n = WebGUI::International->new($session);
my $count = WebGUI::Inbox->new($session)->getUnreadMessageCount;
my $output = "";
if($count > 0) {
+ my $i18n = WebGUI::International->new($session);
$output = sprintf($i18n->get("private message unread display message"),$count);
$output = _createURL($session,$output,$class);
}
@@ -64,6 +63,4 @@ sub process {
return $output;
}
-
1;
-
diff --git a/t/Macro/NewMail.t b/t/Macro/NewMail.t
new file mode 100644
index 000000000..e7f53ab9c
--- /dev/null
+++ b/t/Macro/NewMail.t
@@ -0,0 +1,67 @@
+#-------------------------------------------------------------------
+# WebGUI is Copyright 2001-2009 Plain Black Corporation.
+#-------------------------------------------------------------------
+# Please read the legal notices (docs/legal.txt) and the license
+# (docs/license.txt) that came with this distribution before using
+# this software.
+#-------------------------------------------------------------------
+# http://www.plainblack.com info@plainblack.com
+#-------------------------------------------------------------------
+
+use FindBin;
+use strict;
+use lib "$FindBin::Bin/../lib";
+
+use WebGUI::Test;
+use WebGUI::Session;
+use WebGUI::Macro::NewMail;
+use WebGUI::Inbox;
+
+use Test::More; # increment this value for each test you create
+
+my $session = WebGUI::Test->session;
+
+my $numTests = 3;
+
+plan tests => $numTests;
+
+my $inboxUser = WebGUI::User->create($session);
+$session->user({userId => $inboxUser->getId});
+addToCleanup($inboxUser);
+
+my $inbox = WebGUI::Inbox->new($session);
+
+is(WebGUI::Macro::NewMail::process($session), '', 'NewMail macro returns "" if user has no messages');
+
+$inbox->addMessage(
+ {
+ userId => $inboxUser->getId,
+ subject => 'test message 1',
+ message => 'test message 1',
+ },
+ {
+ no_email => 1,
+ },
+);
+$inbox->addMessage(
+ {
+ userId => $inboxUser->getId,
+ subject => 'test message 2',
+ message => 'test message 2',
+ },
+ {
+ no_email => 1,
+ },
+);
+
+like(
+ WebGUI::Macro::NewMail::process($session),
+ qr{.+?},
+ q{... returns URL to view user's inbox}
+);
+
+like(
+ WebGUI::Macro::NewMail::process($session, "cssClass"),
+ qr{.+?},
+ q{... returns URL to view user's inbox}
+);