/* * * Copyright 2013 Entando S.r.l. (http://www.entando.com) All rights reserved. * * This file is part of Entando software. * Entando is a free software; * You can redistribute it and/or modify it * under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation; version 2. * * See the file License for the specific language governing permissions * and limitations under the License * * * * Copyright 2013 Entando S.r.l. (http://www.entando.com) All rights reserved. * */ package com.agiletec.plugins.jpmail.apsadmin.mail; import java.util.List; import java.util.Map; import com.agiletec.plugins.jpmail.apsadmin.ApsAdminPluginBaseTestCase; import com.agiletec.plugins.jpmail.util.JpmailTestHelper; import com.agiletec.aps.system.SystemConstants; import com.agiletec.aps.system.services.baseconfig.ConfigInterface; import com.agiletec.apsadmin.system.ApsAdminSystemConstants; import com.agiletec.plugins.jpmail.aps.services.JpmailSystemConstants; import com.agiletec.plugins.jpmail.aps.services.mail.IMailManager; import com.agiletec.plugins.jpmail.aps.services.mail.MailConfig; import com.opensymphony.xwork2.Action; public class TestMailSenderConfigAction extends ApsAdminPluginBaseTestCase { @Override protected void setUp() throws Exception { super.setUp(); this.init(); } public void testViewSenders() throws Throwable { this.setUserOnSession("admin"); this.initAction("/do/jpmail/MailConfig", "viewSenders"); String result = this.executeAction(); assertEquals(Action.SUCCESS, result); MailSenderConfigAction action = (MailSenderConfigAction) this.getAction(); MailConfig mailConfig = action.getConfig(); this.checkOriginaryConfig(mailConfig); } public void testNewSender() throws Throwable { this.setUserOnSession("admin"); this.initAction("/do/jpmail/MailConfig", "newSender"); String result = this.executeAction(); assertEquals(Action.SUCCESS, result); MailSenderConfigAction action = (MailSenderConfigAction) this.getAction(); assertEquals(ApsAdminSystemConstants.ADD, action.getStrutsAction()); } public void testEditSender() throws Throwable { String result = this.executeEditSender("admin", "CODE2"); assertEquals(Action.SUCCESS, result); MailSenderConfigAction action = (MailSenderConfigAction) this.getAction(); assertEquals(ApsAdminSystemConstants.EDIT, action.getStrutsAction()); assertEquals("CODE2", action.getCode()); assertEquals("EMAIL2@EMAIL.COM", action.getMail()); result = this.executeEditSender("admin", "CODE100"); assertEquals(Action.ERROR, result); } public void testSaveSenderFailure() throws Throwable { String currentUser = "admin"; String result = this.executeSaveSender(currentUser, "CODE1", "", ApsAdminSystemConstants.ADD); assertEquals(Action.INPUT, result); Map<String, List<String>> fieldErrors = this.getAction().getFieldErrors(); assertEquals(2, fieldErrors.size()); List codeErrors = fieldErrors.get("code"); assertEquals(1, codeErrors.size()); assertTrue(((String) codeErrors.get(0)).contains(this.getAction().getText("error.config.sender.code.duplicated"))); List mailErrors = fieldErrors.get("mail"); assertEquals(1, mailErrors.size()); assertTrue(((String) mailErrors.get(0)).contains(this.getAction().getText("requiredstring"))); result = this.executeSaveSender(currentUser, "CODE2", "wrongMailAddress", ApsAdminSystemConstants.EDIT); assertEquals(Action.INPUT, result); fieldErrors = this.getAction().getFieldErrors(); assertEquals(1, fieldErrors.size()); mailErrors = fieldErrors.get("mail"); assertEquals(1, mailErrors.size()); assertTrue(((String) mailErrors.get(0)).contains(this.getAction().getText("error.config.sender.mail.notValid"))); } public void testSaveSenderSuccessful() throws Throwable { String currentUser = "admin"; try { String result = this.executeSaveSender(currentUser, "CODE1", "\"Indirizzo di Prova\" <mail@addresstest.it>", ApsAdminSystemConstants.EDIT); assertEquals(Action.SUCCESS, result); MailConfig config = this._mailManager.getMailConfig(); assertNotNull(config.getSender("CODE1")); assertEquals("\"Indirizzo di Prova\" <mail@addresstest.it>", config.getSender("CODE1")); } catch (Throwable t) { throw t; } finally { this._helper.resetConfig(); } } public void testTrashSender() throws Throwable { this.setUserOnSession("admin"); this.initAction("/do/jpmail/MailConfig", "trashSender"); this.addParameter("code", "CODE1"); String result = this.executeAction(); assertEquals(Action.SUCCESS, result); MailConfig config = this._mailManager.getMailConfig(); assertNotNull(config.getSender("CODE1")); assertNotNull(config.getSender("CODE2")); } public void testDeleteSender() throws Throwable { try { this.setUserOnSession("admin"); this.initAction("/do/jpmail/MailConfig", "deleteSender"); this.addParameter("code", "CODE1"); String result = this.executeAction(); assertEquals(Action.SUCCESS, result); MailConfig config = this._mailManager.getMailConfig(); assertNull(config.getSender("CODE1")); assertNotNull(config.getSender("CODE2")); } catch (Throwable t) { throw t; } finally { this._helper.resetConfig(); } } private void checkOriginaryConfig(MailConfig mailConfig) { assertEquals(2, mailConfig.getSenders().size()); assertEquals("EMAIL1@EMAIL.COM", mailConfig.getSender("CODE1")); assertEquals("EMAIL2@EMAIL.COM", mailConfig.getSender("CODE2")); assertEquals(true, mailConfig.isDebug()); assertTrue(mailConfig.getSmtpHost().length()>0); assertNotNull(mailConfig.getSmtpUserName()); assertNotNull(mailConfig.getSmtpPassword()); } private String executeEditSender(String currentUser, String code) throws Throwable { this.setUserOnSession(currentUser); this.initAction("/do/jpmail/MailConfig", "editSender"); this.addParameter("code", code); String result = this.executeAction(); return result; } private String executeSaveSender(String currentUser, String code, String mail, int strutsAction) throws Throwable { this.setUserOnSession(currentUser); this.initAction("/do/jpmail/MailConfig", "saveSender"); this.addParameter("code", code); this.addParameter("mail", mail); this.addParameter("strutsAction", String.valueOf(strutsAction)); String result = this.executeAction(); return result; } private void init() throws Exception { try { ConfigInterface configManager = (ConfigInterface) this.getService(SystemConstants.BASE_CONFIG_MANAGER); this._mailManager = (IMailManager) this.getService(JpmailSystemConstants.MAIL_MANAGER); this._helper = new JpmailTestHelper(configManager, this._mailManager); } catch (Exception e) { throw e; } } private JpmailTestHelper _helper; private IMailManager _mailManager; }