From 7e099b44ccd6fca3f195b5867f86cce31e558fee Mon Sep 17 00:00:00 2001 From: James Moger Date: Mon, 26 Sep 2011 16:35:32 -0400 Subject: [PATCH] Unit test of the MailExecutor. --- .gitignore | 3 ++- src/com/gitblit/MailExecutor.java | 16 +++++++++-- tests/com/gitblit/tests/MailTest.java | 38 +++++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 tests/com/gitblit/tests/MailTest.java diff --git a/.gitignore b/.gitignore index 389f6635..0b215f1e 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,5 @@ /*.war /proposals /*.jar -/federation.properties \ No newline at end of file +/federation.properties +/mailtest.properties diff --git a/src/com/gitblit/MailExecutor.java b/src/com/gitblit/MailExecutor.java index 202875ed..bfe2232f 100644 --- a/src/com/gitblit/MailExecutor.java +++ b/src/com/gitblit/MailExecutor.java @@ -145,8 +145,11 @@ public class MailExecutor implements Runnable { public Message createMessage(List toAddresses) { MimeMessage message = new MimeMessage(session); try { - InternetAddress from = new InternetAddress(settings.getString(Keys.mail.fromAddress, - "gitblit@gitblit.com"), "Gitblit"); + String fromAddress = settings.getString(Keys.mail.fromAddress, null); + if (StringUtils.isEmpty(fromAddress)) { + fromAddress = "gitblit@gitblit.com"; + } + InternetAddress from = new InternetAddress(fromAddress, "Gitblit"); message.setFrom(from); InternetAddress[] tos = new InternetAddress[toAddresses.size()]; @@ -161,6 +164,15 @@ public class MailExecutor implements Runnable { return message; } + /** + * Returns the status of the mail queue. + * + * @return true, if the queue is empty + */ + public boolean hasEmptyQueue() { + return queue.isEmpty(); + } + /** * Queue's an email message to be sent. * diff --git a/tests/com/gitblit/tests/MailTest.java b/tests/com/gitblit/tests/MailTest.java new file mode 100644 index 00000000..55002cee --- /dev/null +++ b/tests/com/gitblit/tests/MailTest.java @@ -0,0 +1,38 @@ +/* + * Copyright 2011 gitblit.com. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.gitblit.tests; + +import javax.mail.Message; + +import junit.framework.TestCase; + +import com.gitblit.FileSettings; +import com.gitblit.MailExecutor; + +public class MailTest extends TestCase { + + public void testSendMail() throws Exception { + FileSettings settings = new FileSettings("mailtest.properties"); + MailExecutor mail = new MailExecutor(settings); + Message message = mail.createMessageForAdministrators(); + message.setSubject("Test"); + message.setText("this is a test"); + mail.queue(message); + mail.run(); + + assertTrue("mail queue is not empty!", mail.hasEmptyQueue()); + } +} -- 2.39.5