mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Added more validation and tests as a fix for RM-915: The creation of a new Email Mapping: It's possible to type into "map" field any text or spaces.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@55067 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -45,6 +45,7 @@ import org.alfresco.service.namespace.NamespaceService;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.alfresco.service.transaction.TransactionService;
|
||||
import org.alfresco.util.ParameterCheck;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.json.JSONArray;
|
||||
@@ -213,6 +214,11 @@ public class CustomEmailMappingServiceImpl extends AbstractLifecycleBean impleme
|
||||
*/
|
||||
public void addCustomMapping(String from, String to)
|
||||
{
|
||||
if (StringUtils.isBlank(from) || StringUtils.isBlank(to) || !getEmailMappingKeys().contains(from))
|
||||
{
|
||||
throw new AlfrescoRuntimeException("Invalid values for from/to.");
|
||||
}
|
||||
|
||||
// create custom mapping
|
||||
CustomMapping customMapping = new CustomMapping(from, to);
|
||||
|
||||
|
@@ -18,6 +18,7 @@
|
||||
*/
|
||||
package org.alfresco.module.org_alfresco_module_rm.test.service;
|
||||
|
||||
import org.alfresco.error.AlfrescoRuntimeException;
|
||||
import org.alfresco.module.org_alfresco_module_rm.email.CustomEmailMappingService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.email.CustomMapping;
|
||||
import org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase;
|
||||
@@ -63,31 +64,68 @@ public class CustomEMailMappingServiceImplTest extends BaseRMTestCase
|
||||
// Check the initial custom mapping size
|
||||
assertTrue(checkCustomMappingsSize(20));
|
||||
|
||||
String firstKey = eMailMappingService.getEmailMappingKeys().get(0);
|
||||
|
||||
// Add a custom mapping
|
||||
eMailMappingService.addCustomMapping("monkey", "cm:monkeyFace");
|
||||
eMailMappingService.addCustomMapping(firstKey, "cm:monkeyFace");
|
||||
|
||||
// Check the new size
|
||||
assertTrue(checkCustomMappingsSize(21));
|
||||
|
||||
// Check the new added custom mapping
|
||||
CustomMapping monkeyMapping = getCustomMapping("monkey", "cm:monkeyFace");
|
||||
CustomMapping monkeyMapping = getCustomMapping(firstKey, "cm:monkeyFace");
|
||||
assertNotNull(monkeyMapping);
|
||||
assertEquals("monkey", monkeyMapping.getFrom());
|
||||
assertEquals(firstKey, monkeyMapping.getFrom());
|
||||
assertEquals("cm:monkeyFace", monkeyMapping.getTo());
|
||||
|
||||
// Delete the new added custom mapping
|
||||
eMailMappingService.deleteCustomMapping("monkey", "cm:monkeyFace");
|
||||
eMailMappingService.deleteCustomMapping(firstKey, "cm:monkeyFace");
|
||||
|
||||
// Check the size after deletion
|
||||
assertTrue(checkCustomMappingsSize(20));
|
||||
|
||||
// Check the custom mapping after deletion if it exists
|
||||
assertNull(getCustomMapping("monkey", "cm:monkeyFace"));
|
||||
assertNull(getCustomMapping(firstKey, "cm:monkeyFace"));
|
||||
|
||||
// Check the email mapping keys size
|
||||
// There are 6 "standard" EmailMappingKeys + 2 CustomEmailMappingKeys are added on setUp
|
||||
assertTrue(checkEmailMappingKeysSize(8));
|
||||
|
||||
try
|
||||
{
|
||||
eMailMappingService.addCustomMapping(" ", "cm:monkeyFace");
|
||||
fail("Should not get here. Invalid data.");
|
||||
}
|
||||
catch (AlfrescoRuntimeException are)
|
||||
{
|
||||
assertNotNull(are); //Must throw this exception
|
||||
assertTrue(are.getMessage().contains("Invalid values for"));
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
eMailMappingService.addCustomMapping("monkey", " ");
|
||||
fail("Should not get here. Invalid data.");
|
||||
}
|
||||
catch (AlfrescoRuntimeException are)
|
||||
{
|
||||
assertNotNull(are); //Must throw this exception
|
||||
assertTrue(are.getMessage().contains("Invalid values for"));
|
||||
}
|
||||
|
||||
eMailMappingService.addCustomMapping(firstKey, "cm:monkeyFace"); //valid key
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
eMailMappingService.addCustomMapping(firstKey+"invalid", "cm:monkeyFace");//invalid key
|
||||
fail("Should not get here. Invalid data.");
|
||||
}
|
||||
catch (AlfrescoRuntimeException are)
|
||||
{
|
||||
assertNotNull(are); //Must throw this exception
|
||||
assertTrue(are.getMessage().contains("Invalid values for"));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}, rmAdminName);
|
||||
|
Reference in New Issue
Block a user