diff --git a/config/alfresco/subsystems/ActivitiesFeed/default/activities-feed-context.xml b/config/alfresco/subsystems/ActivitiesFeed/default/activities-feed-context.xml
index 67100aa43b..649fb930f3 100644
--- a/config/alfresco/subsystems/ActivitiesFeed/default/activities-feed-context.xml
+++ b/config/alfresco/subsystems/ActivitiesFeed/default/activities-feed-context.xml
@@ -34,6 +34,7 @@
+
${activities.feed.max.idRange}
@@ -100,6 +101,8 @@
+
+
alfresco/extension/templates/activities
diff --git a/source/java/org/alfresco/repo/activities/ActivityPostServiceImpl.java b/source/java/org/alfresco/repo/activities/ActivityPostServiceImpl.java
index ae9b3f5503..9e8394e5ef 100644
--- a/source/java/org/alfresco/repo/activities/ActivityPostServiceImpl.java
+++ b/source/java/org/alfresco/repo/activities/ActivityPostServiceImpl.java
@@ -233,6 +233,11 @@ public class ActivityPostServiceImpl implements ActivityPostService
{
Date postDate = new Date();
ActivityPostEntity activityPost = new ActivityPostEntity();
+ //MNT-9104 If username contains uppercase letters the action of joining a site will not be displayed in "My activities"
+ if (! userNamesAreCaseSensitive)
+ {
+ userId = userId.toLowerCase();
+ }
activityPost.setUserId(userId);
activityPost.setSiteNetwork(tenantService.getName(siteId));
diff --git a/source/java/org/alfresco/repo/activities/ActivityServiceImpl.java b/source/java/org/alfresco/repo/activities/ActivityServiceImpl.java
index 0004790ad4..42867062dd 100644
--- a/source/java/org/alfresco/repo/activities/ActivityServiceImpl.java
+++ b/source/java/org/alfresco/repo/activities/ActivityServiceImpl.java
@@ -624,6 +624,11 @@ public class ActivityServiceImpl implements ActivityService, InitializingBean
{
logger.debug("Inserting feed control for siteId: " + feedControl.getSiteId() + ",\n appToolId : " + feedControl.getAppToolId() + ",\n for user : " + userId);
}
+ //MNT-9104 If username contains uppercase letters the action of joining a site will not be displayed in "My activities"
+ if (! userNamesAreCaseSensitive)
+ {
+ userId = userId.toLowerCase();
+ }
feedControlDAO.insertFeedControl(new FeedControlEntity(userId, feedControl));
}
}
@@ -673,6 +678,11 @@ public class ActivityServiceImpl implements ActivityService, InitializingBean
{
ParameterCheck.mandatoryString("userId", userId);
+ if (!userNamesAreCaseSensitive)
+ {
+ userId = userId.toLowerCase();
+ }
+
try
{
List feedControlDaos = feedControlDAO.selectFeedControls(userId);
@@ -721,6 +731,12 @@ public class ActivityServiceImpl implements ActivityService, InitializingBean
{
logger.debug("Deleting feed control for siteId: " + feedControl.getSiteId() + ",\n appToolId : " + feedControl.getAppToolId() + ",\n for user : " + userId);
}
+ // MNT-9104 If username contains uppercase letters the action of joining a site will not be displayed in "My activities"
+ if (!userNamesAreCaseSensitive)
+ {
+ userId = userId.toLowerCase();
+ }
+
feedControlDAO.deleteFeedControl(new FeedControlEntity(userId, feedControl));
}
catch (SQLException e)
@@ -746,6 +762,12 @@ public class ActivityServiceImpl implements ActivityService, InitializingBean
{
logger.debug("Selecting feed control for siteId: " + feedControl.getSiteId() + ",\n appToolId : " + feedControl.getAppToolId() + ",\n for user : " + userId);
}
+ // MNT-9104 If username contains uppercase letters the action of joining a site will not be displayed in "My activities"
+ if (!userNamesAreCaseSensitive)
+ {
+ userId = userId.toLowerCase();
+ }
+
long id = feedControlDAO.selectFeedControl(new FeedControlEntity(userId, feedControl));
boolean exists = (id != -1);
if (logger.isDebugEnabled())
diff --git a/source/java/org/alfresco/repo/activities/feed/FeedTaskProcessor.java b/source/java/org/alfresco/repo/activities/feed/FeedTaskProcessor.java
index 5e4800fec8..51be2d348c 100644
--- a/source/java/org/alfresco/repo/activities/feed/FeedTaskProcessor.java
+++ b/source/java/org/alfresco/repo/activities/feed/FeedTaskProcessor.java
@@ -81,6 +81,13 @@ public abstract class FeedTaskProcessor
private static final String URL_SERVICE_TEMPLATES = "/api/activities/templates";
private static final String URL_SERVICE_TEMPLATE = "/api/activities/template";
+ private boolean userNamesAreCaseSensitive = false;
+
+ public void setUserNamesAreCaseSensitive(boolean userNamesAreCaseSensitive)
+ {
+ this.userNamesAreCaseSensitive = userNamesAreCaseSensitive;
+ }
+
public void process(int jobTaskNode, long minSeq, long maxSeq, RepoCtx ctx) throws Exception
{
long startTime = System.currentTimeMillis();
@@ -245,6 +252,12 @@ public abstract class FeedTaskProcessor
ActivityFeedEntity feed = new ActivityFeedEntity();
// Generate activity feed summary
+ //MNT-9104 If username contains uppercase letters the action of joining a site will not be displayed in "My activities"
+ if (! userNamesAreCaseSensitive)
+ {
+ recipient = recipient.toLowerCase();
+ postingUserId = postingUserId.toLowerCase();
+ }
feed.setFeedUserId(recipient);
feed.setPostUserId(postingUserId);
feed.setActivityType(activityType);
@@ -618,6 +631,12 @@ public abstract class FeedTaskProcessor
protected List getFeedControls(String connectedUser) throws SQLException
{
+ //MNT-9104 If username contains uppercase letters the action of joining a site will not be displayed in "My activities"
+ if (! userNamesAreCaseSensitive)
+ {
+ connectedUser = connectedUser.toLowerCase();
+ }
+
return selectUserFeedControls(connectedUser);
}
diff --git a/source/java/org/alfresco/repo/activities/feed/cleanup/FeedCleaner.java b/source/java/org/alfresco/repo/activities/feed/cleanup/FeedCleaner.java
index f74f80e71e..930f958fc5 100644
--- a/source/java/org/alfresco/repo/activities/feed/cleanup/FeedCleaner.java
+++ b/source/java/org/alfresco/repo/activities/feed/cleanup/FeedCleaner.java
@@ -68,6 +68,7 @@ public class FeedCleaner implements NodeServicePolicies.BeforeDeleteNodePolicy
private int maxIdRange = 1000000;
private int maxAgeMins = 0;
private int maxFeedSize = 100;
+ private boolean userNamesAreCaseSensitive = false;
private ActivityFeedDAO feedDAO;
@@ -80,6 +81,10 @@ public class FeedCleaner implements NodeServicePolicies.BeforeDeleteNodePolicy
private FeedCleanerDeleteSiteTransactionListener deleteSiteTransactionListener;
private FeedCleanerDeletePersonTransactionListener deletePersonTransactionListener;
+ public void setUserNamesAreCaseSensitive(boolean userNamesAreCaseSensitive)
+ {
+ this.userNamesAreCaseSensitive = userNamesAreCaseSensitive;
+ }
public void setFeedDAO(ActivityFeedDAO feedDAO)
{
@@ -430,7 +435,11 @@ public class FeedCleaner implements NodeServicePolicies.BeforeDeleteNodePolicy
public void beforeDeleteNodePerson(NodeRef personNodeRef)
{
String userId = (String)nodeService.getProperty(personNodeRef, ContentModel.PROP_USERNAME);
-
+ //MNT-9104 If username contains uppercase letters the action of joining a site will not be displayed in "My activities"
+ if (! userNamesAreCaseSensitive)
+ {
+ userId = userId.toLowerCase();
+ }
Set deletedUserIds = (Set)AlfrescoTransactionSupport.getResource(KEY_DELETED_USER_IDS);
if (deletedUserIds == null)
{
@@ -503,8 +512,19 @@ public class FeedCleaner implements NodeServicePolicies.BeforeDeleteNodePolicy
Set deletedUserIds = TransactionalResourceHelper.getSet(KEY_DELETED_USER_IDS);
if (deletedUserIds != null)
{
- for (final String userId : deletedUserIds)
+ for (String user : deletedUserIds)
{
+ //MNT-9104 If username contains uppercase letters the action of joining a site will not be displayed in "My activities"
+ final String userId;
+ if (! userNamesAreCaseSensitive)
+ {
+ userId = user.toLowerCase();
+ }
+ else
+ {
+ userId = user;
+ }
+
transactionService.getRetryingTransactionHelper().doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback()
{
public Void execute() throws Throwable
diff --git a/source/test-java/org/alfresco/repo/activities/SiteActivityTest.java b/source/test-java/org/alfresco/repo/activities/AbstractSiteActivityTest.java
similarity index 90%
rename from source/test-java/org/alfresco/repo/activities/SiteActivityTest.java
rename to source/test-java/org/alfresco/repo/activities/AbstractSiteActivityTest.java
index 91b1618573..7b955c6dd1 100644
--- a/source/test-java/org/alfresco/repo/activities/SiteActivityTest.java
+++ b/source/test-java/org/alfresco/repo/activities/AbstractSiteActivityTest.java
@@ -18,11 +18,11 @@
*/
package org.alfresco.repo.activities;
+import static org.junit.Assert.*;
+
import java.util.ArrayList;
import java.util.List;
-import junit.framework.TestCase;
-
import org.alfresco.model.ContentModel;
import org.alfresco.repo.activities.feed.FeedGenerator;
import org.alfresco.repo.activities.feed.local.LocalFeedTaskProcessor;
@@ -37,30 +37,27 @@ import org.alfresco.service.cmr.security.MutableAuthenticationService;
import org.alfresco.service.cmr.security.PersonService;
import org.alfresco.service.cmr.site.SiteService;
import org.alfresco.service.cmr.site.SiteVisibility;
+import org.alfresco.util.ApplicationContextHelper;
import org.alfresco.util.PropertyMap;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.Test;
import org.quartz.Scheduler;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* Simple Activity Service unit test using site (membership) activities
*
* @author janv
*/
-public class SiteActivityTest extends TestCase
+public abstract class AbstractSiteActivityTest
{
- private static Log logger = LogFactory.getLog(SiteActivityTest.class);
+ private static Log logger = LogFactory.getLog(AbstractSiteActivityTest.class);
- private static final String[] CONFIG_LOCATIONS =
- {
- "classpath:alfresco/application-context.xml"
- //, "classpath:alfresco/subsystems/ActivitiesFeed/default/activities-feed-context.xml"
- };
-
- private static ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
- SiteActivityTest.CONFIG_LOCATIONS);
+ private ApplicationContext applicationContext;
private SiteService siteService;
private ActivityService activityService;
@@ -99,14 +96,14 @@ public class SiteActivityTest extends TestCase
private static boolean membersRemoved = false;
private static boolean controlsCreated = false;
- public SiteActivityTest()
+ public AbstractSiteActivityTest()
{
}
- @Override
- protected void setUp() throws Exception
+ @Before
+ public void setUp() throws Exception
{
- super.setUp();
+ applicationContext = ApplicationContextHelper.getApplicationContext();
String testid = ""+System.currentTimeMillis();
// Let's shut down the scheduler so that we aren't competing with the scheduled versions of the post lookup and
@@ -143,10 +140,10 @@ public class SiteActivityTest extends TestCase
site2 = "test_site2_" + testid;
site3 = "test_site3_" + testid;
- user1 = "test_user1_" + testid;
- user2 = "test_user2_" + testid;
- user3 = "test_user3_" + testid;
- user4 = "test_user4_" + testid;
+ user1 = "Test_User1_" + testid;
+ user2 = "Test_User2_" + testid;
+ user3 = "Test_User3_" + testid;
+ user4 = "Test_User4_" + testid;
// create users
@@ -168,8 +165,8 @@ public class SiteActivityTest extends TestCase
createSite(site3, false);
}
- @Override
- protected void tearDown() throws Exception
+ @After
+ public void tearDown() throws Exception
{
login(ADMIN_USER, ADMIN_PW);
@@ -185,8 +182,6 @@ public class SiteActivityTest extends TestCase
membersAddedUpdated = false;
membersRemoved = false;
controlsCreated = false;
-
- super.tearDown();
}
protected void createSite(String siteId, boolean isPublic) throws Exception
@@ -205,6 +200,22 @@ public class SiteActivityTest extends TestCase
siteService.deleteSite(siteId);
}
+ @Test
+ //MNT-9104 If username contains uppercase letters the action of joining a site will not be displayed in "My activities"
+ public void testUserActivitiesOnSite() throws Exception
+ {
+ login(ADMIN_USER, ADMIN_PW);
+
+ addMembership(site1, user4, SiteModel.SITE_CONSUMER);
+
+ generateFeed();
+
+ login(user4, USER_PW);
+
+ getUserFeed(user4, site1, false, false, true, 1);
+ }
+
+ @Test
public void testGetSiteFeedsBefore() throws Exception
{
login(ADMIN_USER, ADMIN_PW);
@@ -245,6 +256,7 @@ public class SiteActivityTest extends TestCase
assertEquals(expectedCount, activityService.getSiteFeedEntries(siteId).size());
}
+ @Test
public void testGetUserFeedsBefore() throws Exception
{
// as admin
@@ -305,6 +317,7 @@ public class SiteActivityTest extends TestCase
assertEquals(expectedCount, activityService.getUserFeedEntries(userId, siteId, excludeThisUser, excludeOtherUsers, null, null).size());
}
+ @Test
public void testUserFeedControls() throws Exception
{
if (! controlsCreated)
@@ -327,6 +340,7 @@ public class SiteActivityTest extends TestCase
}
}
+ @Test
public void testAddAndUpdateMemberships() throws Exception
{
if (! membersAddedUpdated)
@@ -343,6 +357,7 @@ public class SiteActivityTest extends TestCase
}
}
+ @Test
public void testGetSiteFeedsAfterAddAndUpdateMemberships() throws Exception
{
testAddAndUpdateMemberships();
@@ -369,6 +384,8 @@ public class SiteActivityTest extends TestCase
// ignore
}
}
+
+ @Test
public void testRemoveMemberships() throws Exception
{
if (! membersRemoved)
@@ -420,6 +437,7 @@ public class SiteActivityTest extends TestCase
activityService.setFeedControl(new FeedControl(siteId, appToolId));
}
+ @Test
public void testGetSiteFeedsAfterRemoveMemberships() throws Exception
{
testAddAndUpdateMemberships();
@@ -458,6 +476,7 @@ public class SiteActivityTest extends TestCase
}
}
+ @Test
public void testGetUserFeedsAfter() throws Exception
{
testUserFeedControls();
@@ -566,4 +585,11 @@ public class SiteActivityTest extends TestCase
postLookup.execute();
feedGenerator.execute();
}
+
+ @AfterClass
+ // remove system "user.name.caseSensitive" property
+ public static void afterClass()
+ {
+ System.clearProperty("user.name.caseSensitive");
+ }
}
diff --git a/source/test-java/org/alfresco/repo/activities/SiteActivityTestCaseInsensitivity.java b/source/test-java/org/alfresco/repo/activities/SiteActivityTestCaseInsensitivity.java
new file mode 100644
index 0000000000..85f876c81d
--- /dev/null
+++ b/source/test-java/org/alfresco/repo/activities/SiteActivityTestCaseInsensitivity.java
@@ -0,0 +1,9 @@
+package org.alfresco.repo.activities;
+
+public class SiteActivityTestCaseInsensitivity extends AbstractSiteActivityTest
+{
+ static
+ {
+ System.setProperty("user.name.caseSensitive", "false");
+ }
+}
diff --git a/source/test-java/org/alfresco/repo/activities/SiteActivityTestCaseSensitivity.java b/source/test-java/org/alfresco/repo/activities/SiteActivityTestCaseSensitivity.java
new file mode 100644
index 0000000000..4fe131ee1f
--- /dev/null
+++ b/source/test-java/org/alfresco/repo/activities/SiteActivityTestCaseSensitivity.java
@@ -0,0 +1,9 @@
+package org.alfresco.repo.activities;
+
+public class SiteActivityTestCaseSensitivity extends AbstractSiteActivityTest
+{
+ static
+ {
+ System.setProperty("user.name.caseSensitive", "true");
+ }
+}
diff --git a/source/test-java/org/alfresco/repo/activities/feed/cleanup/FeedCleanerTest.java b/source/test-java/org/alfresco/repo/activities/feed/cleanup/AbstractFeedCleanerTest.java
similarity index 88%
rename from source/test-java/org/alfresco/repo/activities/feed/cleanup/FeedCleanerTest.java
rename to source/test-java/org/alfresco/repo/activities/feed/cleanup/AbstractFeedCleanerTest.java
index 1a5661a5bf..f0366e39b7 100644
--- a/source/test-java/org/alfresco/repo/activities/feed/cleanup/FeedCleanerTest.java
+++ b/source/test-java/org/alfresco/repo/activities/feed/cleanup/AbstractFeedCleanerTest.java
@@ -18,6 +18,8 @@
*/
package org.alfresco.repo.activities.feed.cleanup;
+import static org.junit.Assert.*;
+
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Date;
@@ -37,6 +39,10 @@ import org.alfresco.service.cmr.site.SiteService;
import org.alfresco.service.cmr.site.SiteVisibility;
import org.alfresco.util.ApplicationContextHelper;
import org.alfresco.util.PropertyMap;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.Test;
import org.quartz.Scheduler;
import org.springframework.context.ApplicationContext;
@@ -46,16 +52,16 @@ import org.springframework.context.ApplicationContext;
* @author janv
* @since 3.0
*/
-public class FeedCleanerTest extends TestCase
-{
- private static ApplicationContext ctx = ApplicationContextHelper.getApplicationContext();
+public abstract class AbstractFeedCleanerTest
+{
+ private ApplicationContext ctx;
private ActivityFeedDAO feedDAO;
- private FeedCleaner cleaner;
+ protected FeedCleaner cleaner;
private SiteService siteService;
private PersonService personService;
protected RetryingTransactionHelper transactionHelper;
-
+
private static final String TEST_SITE = "testSite";
private static final String TEST_SITE_1 = TEST_SITE+"1";
@@ -70,12 +76,13 @@ public class FeedCleanerTest extends TestCase
private static final String TEST_USER_B = "testUserB";
private static final String TEST_USER_C = "testUserC";
private static final String TEST_USER_D = "testUserD";
- private static final String TEST_USER_E = "testUserE";
+ protected static final String TEST_USER_E = "testUserE";
private static final String TEST_USER_F = "testUserF";
- @Override
+ @Before
public void setUp() throws Exception
{
+ ctx = ApplicationContextHelper.getApplicationContext();
JobLockService jobLockService = (JobLockService) ctx.getBean("JobLockService");
PolicyComponent policyComponent = (PolicyComponent) ctx.getBean("policyComponent");
NodeService nodeService = (NodeService) ctx.getBean("NodeService");
@@ -84,7 +91,7 @@ public class FeedCleanerTest extends TestCase
personService = (PersonService) ctx.getBean("PersonService");
feedDAO = (ActivityFeedDAO) ctx.getBean("feedDAO");
transactionHelper = (RetryingTransactionHelper)ctx.getBean("retryingTransactionHelper");
-
+
// Let's shut down the scheduler so that we aren't competing with the scheduled versions of jobs (ie. feed cleaner)
Scheduler scheduler = (Scheduler) ctx.getBean("schedulerFactory");
scheduler.shutdown();
@@ -107,6 +114,7 @@ public class FeedCleanerTest extends TestCase
cleaner.setNodeService(nodeService);
}
+ @After
public void tearDown() throws Exception
{
AuthenticationUtil.setFullyAuthenticatedUser(AuthenticationUtil.getAdminUserName());
@@ -130,6 +138,7 @@ public class FeedCleanerTest extends TestCase
// NOOP
}
+ @Test
public void testMaxIdRange() throws Exception
{
// insert site feed entries for TEST_SITE_4
@@ -154,6 +163,8 @@ public class FeedCleanerTest extends TestCase
// Check
assertEquals(5, feedDAO.selectSiteFeedEntries(TEST_SITE_4, -1).size());
}
+
+ @Test
public void testMaxAge() throws Exception
{
cleaner.setMaxFeedSize(0);
@@ -199,7 +210,7 @@ public class FeedCleanerTest extends TestCase
feedEntry.setPostDate(new Date()); // now
feedEntry.setSiteNetwork(TEST_SITE_3);
- feedEntry.setActivityType("testActivityType");
+ feedEntry.setActivityType("testActivityType");
feedEntry.setPostUserId(TEST_USER_A);
feedEntry.setFeedUserId(TEST_USER_B);
feedEntry.setFeedDate(new Date());
@@ -217,10 +228,11 @@ public class FeedCleanerTest extends TestCase
assertEquals(1, feedDAO.selectUserFeedEntries(TEST_USER_B, null, false, false, -1L, -1).size());
}
+ @Test
public void testMaxSize() throws Exception
{
cleaner.setMaxAgeMins(0);
-
+
// insert site feed entries for TEST_SITE_4
for (int i = 0; i < 10; i++)
@@ -310,6 +322,7 @@ public class FeedCleanerTest extends TestCase
assertEquals(10, feedDAO.selectUserFeedEntries(TEST_USER_F, null, false, false, -1L, -1).size());
}
+ @Test
public void testSiteDelete() throws Exception
{
cleaner.setMaxAgeMins(100);
@@ -348,7 +361,7 @@ public class FeedCleanerTest extends TestCase
feedEntry.setPostDate(new Date(System.currentTimeMillis()-(i*60*1000L)));
feedEntry.setSiteNetwork(TEST_SITE_5);
- feedEntry.setActivityType("testActivityType");
+ feedEntry.setActivityType("testActivityType");
feedEntry.setPostUserId(TEST_USER_C);
feedEntry.setFeedUserId(TEST_USER_D);
feedEntry.setFeedDate(new Date());
@@ -378,14 +391,28 @@ public class FeedCleanerTest extends TestCase
}, false, true);
}
+ @Test
public void testPersonDelete() throws Exception
+ {
+ boolean caseSensitive = Boolean.getBoolean(System.getProperty("user.name.caseSensitive"));
+ if (caseSensitive)
+ {
+ testPersonDelete(TEST_USER_E);
+ }
+ else
+ {
+ testPersonDelete(TEST_USER_E.toLowerCase());
+ }
+ }
+
+ protected void testPersonDelete(final String userId) throws Exception
{
cleaner.setMaxAgeMins(100);
- createPerson(TEST_USER_E); // ignore result
+ createPerson(userId); // ignore result
assertEquals(0, feedDAO.selectSiteFeedEntries(TEST_SITE_6, -1).size());
- assertEquals(0, feedDAO.selectUserFeedEntries(TEST_USER_E, null, false, false, -1L, -1).size());
+ assertEquals(0, feedDAO.selectUserFeedEntries(userId, null, false, false, -1L, -1).size());
final int site6FeedCnt = 10;
@@ -397,16 +424,16 @@ public class FeedCleanerTest extends TestCase
feedEntry.setPostDate(new Date(System.currentTimeMillis()-(i*60*1000L)));
feedEntry.setSiteNetwork(TEST_SITE_6);
feedEntry.setActivityType("testActivityType");
- feedEntry.setPostUserId(TEST_USER_E);
+ feedEntry.setPostUserId(userId);
feedEntry.setFeedUserId("");
feedEntry.setFeedDate(new Date());
-
+ //bypassing FeedTaskProcessor.process() call feedDAO.insertFeedEntry()
feedDAO.insertFeedEntry(feedEntry); // for TEST_SITE_6 site feed
-
- feedEntry.setFeedUserId(TEST_USER_E); // for TEST_USER_E user feed
+
+ feedEntry.setFeedUserId(userId); // for TEST_USER_E user feed
feedEntry.setFeedDate(new Date());
-
- feedDAO.insertFeedEntry(feedEntry);
+ //bypassing FeedTaskProcessor.process() call feedDAO.insertFeedEntry()
+ feedDAO.insertFeedEntry(feedEntry);
}
final int site7FeedCnt = 5;
@@ -418,26 +445,26 @@ public class FeedCleanerTest extends TestCase
feedEntry.setPostDate(new Date(System.currentTimeMillis()-(i*60*1000L)));
feedEntry.setSiteNetwork(TEST_SITE_7);
- feedEntry.setActivityType("testActivityType");
- feedEntry.setPostUserId(TEST_USER_E);
+ feedEntry.setActivityType("testActivityType");
+ feedEntry.setPostUserId(userId);
feedEntry.setFeedUserId("");
feedEntry.setFeedDate(new Date());
-
+ //bypassing FeedTaskProcessor.process() call feedDAO.insertFeedEntry()
feedDAO.insertFeedEntry(feedEntry); // for TEST_SITE_7 site feed
-
- feedEntry.setFeedUserId(TEST_USER_E); // for TEST_USER_E user feed
+
+ feedEntry.setFeedUserId(userId); // for TEST_USER_E user feed
feedEntry.setFeedDate(new Date());
-
+ //bypassing FeedTaskProcessor.process() call feedDAO.insertFeedEntry()
feedDAO.insertFeedEntry(feedEntry);
}
assertEquals(site6FeedCnt, feedDAO.selectSiteFeedEntries(TEST_SITE_6, -1).size());
assertEquals(site7FeedCnt, feedDAO.selectSiteFeedEntries(TEST_SITE_7, -1).size());
- assertEquals(site6FeedCnt+site7FeedCnt, feedDAO.selectUserFeedEntries(TEST_USER_E, null, false, false, -1L, -1).size());
-
+ assertEquals(site6FeedCnt+site7FeedCnt, feedDAO.selectUserFeedEntries(userId, null, false, false, -1L, -1).size());
+
// delete the person
- personService.deletePerson(TEST_USER_E);
-
+ personService.deletePerson(userId);
+
// note: site feed cleanup is done in separate txn after commit
transactionHelper.doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback()
{
@@ -446,11 +473,11 @@ public class FeedCleanerTest extends TestCase
assertEquals(site6FeedCnt, feedDAO.selectSiteFeedEntries(TEST_SITE_6, -1).size());
assertEquals(site7FeedCnt, feedDAO.selectSiteFeedEntries(TEST_SITE_7, -1).size());
- assertEquals(0, feedDAO.selectUserFeedEntries(TEST_USER_E, null, false, false, -1L, -1).size());
+ assertEquals(0, feedDAO.selectUserFeedEntries(userId, null, false, false, -1L, -1).size());
- assertTrue(createPerson(TEST_USER_E));
-
- assertEquals(0, feedDAO.selectUserFeedEntries(TEST_USER_E, null, false, false, -1L, -1).size());
+ assertTrue(createPerson(userId));
+
+ assertEquals(0, feedDAO.selectUserFeedEntries(userId, null, false, false, -1L, -1).size());
return null;
}
}, false, true);
@@ -476,6 +503,7 @@ public class FeedCleanerTest extends TestCase
return false; // already exists
}
+ @Test
public void testConcurrentAccessAndRemoval() throws Exception
{
cleaner.setMaxAgeMins(1);
@@ -604,4 +632,11 @@ public class FeedCleanerTest extends TestCase
}
}
}
+
+ @AfterClass
+ // remove system "user.name.caseSensitive" property
+ public static void afterClass()
+ {
+ System.clearProperty("user.name.caseSensitive");
+ }
}
diff --git a/source/test-java/org/alfresco/repo/activities/feed/cleanup/FeedCleanerTestCaseInsensitivity.java b/source/test-java/org/alfresco/repo/activities/feed/cleanup/FeedCleanerTestCaseInsensitivity.java
new file mode 100644
index 0000000000..f739d67a1d
--- /dev/null
+++ b/source/test-java/org/alfresco/repo/activities/feed/cleanup/FeedCleanerTestCaseInsensitivity.java
@@ -0,0 +1,10 @@
+package org.alfresco.repo.activities.feed.cleanup;
+
+public class FeedCleanerTestCaseInsensitivity extends AbstractFeedCleanerTest
+{
+ static
+ {
+ System.setProperty("user.name.caseSensitive", "false");
+ }
+
+}
diff --git a/source/test-java/org/alfresco/repo/activities/feed/cleanup/FeedCleanerTestCaseSensitivity.java b/source/test-java/org/alfresco/repo/activities/feed/cleanup/FeedCleanerTestCaseSensitivity.java
new file mode 100644
index 0000000000..8c1ce213fc
--- /dev/null
+++ b/source/test-java/org/alfresco/repo/activities/feed/cleanup/FeedCleanerTestCaseSensitivity.java
@@ -0,0 +1,10 @@
+package org.alfresco.repo.activities.feed.cleanup;
+
+public class FeedCleanerTestCaseSensitivity extends AbstractFeedCleanerTest
+{
+ static
+ {
+ System.setProperty("user.name.caseSensitive", "true");
+ }
+
+}