/* * Copyright (C) 2003-2014 eXo Platform SAS. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License * as published by the Free Software Foundation; either version 3 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see<http://www.gnu.org/licenses/>. */ package org.exoplatform.forum.common; import org.exoplatform.commons.testing.BaseCommonsTestCase; import org.exoplatform.container.PortalContainer; import org.exoplatform.container.component.RequestLifeCycle; import org.exoplatform.forum.common.UserHelper.FilterType; import org.exoplatform.forum.common.UserHelper.UserFilter; import org.exoplatform.services.organization.Query; import org.exoplatform.services.organization.User; import org.exoplatform.services.organization.impl.UserImpl; public class TestUserHelper extends BaseCommonsTestCase { @Override public void setUp() throws Exception { RequestLifeCycle.begin(PortalContainer.getInstance()); super.setUp(); assertNotNull(container); assertNotNull(UserHelper.getOrganizationService()); } @Override protected void tearDown() throws Exception { super.tearDown(); RequestLifeCycle.end(); } public void testCheckValueUser() throws Exception { String values = null; assertEquals("", UserHelper.checkValueUser(values)); // values = "demo"; assertEquals("", UserHelper.checkValueUser(values)); values = "demo,/platform/users,test"; assertEquals("test", UserHelper.checkValueUser(values)); values = "demo,/platform/users,/platform/test,test"; assertEquals("/platform/test, test", UserHelper.checkValueUser(values)); values = "demo,member:/platform/users,test:/platform/users,test"; assertEquals("test:/platform/users, test", UserHelper.checkValueUser(values)); } public void testHasGroupIdAndMembershipId() throws Exception { String input = ""; assertFalse(UserHelper.hasGroupIdAndMembershipId(input)); input = "demo"; assertFalse(UserHelper.hasGroupIdAndMembershipId(input)); input = "/platform/test"; assertFalse(UserHelper.hasGroupIdAndMembershipId(input)); input = "test:/platform/users"; assertFalse(UserHelper.hasGroupIdAndMembershipId(input)); input = "/platform/users"; assertTrue(UserHelper.hasGroupIdAndMembershipId(input)); input = "member:/platform/users"; assertTrue(UserHelper.hasGroupIdAndMembershipId(input)); } public void testHasUserInGroup() throws Exception { assertFalse(UserHelper.hasUserInGroup("groupId", "user")); assertFalse(UserHelper.hasUserInGroup("/platform/users", "user")); assertFalse(UserHelper.hasUserInGroup("/platform/administrators", "demo")); // assertTrue(UserHelper.hasUserInGroup("/platform/users", "demo")); assertTrue(UserHelper.hasUserInGroup("/platform/administrators", "root")); } public void testGetDisplayNameOfOwner() throws Exception { String owner = null; assertEquals("", UserHelper.getDisplayNameOfOwner(owner)); owner = "user"; assertEquals("", UserHelper.getDisplayNameOfOwner(owner)); owner = "demo"; assertEquals("Demo gtn", UserHelper.getDisplayNameOfOwner(owner)); owner = "/platform/test"; assertEquals("", UserHelper.getDisplayNameOfOwner(owner)); owner = "/platform/users"; assertEquals("users", UserHelper.getDisplayNameOfOwner(owner)); owner = "test:/platform/users"; assertEquals("", UserHelper.getDisplayNameOfOwner(owner)); owner = "member:/platform/users"; assertEquals("member in users", UserHelper.getDisplayNameOfOwner(owner)); } public void testQueryFilter() { assertEquals(true, true); UserFilter filter = new UserFilter("", FilterType.EMAIL); Query q = UserHelper.queryFilter(filter); assertEquals(true, q.isEmpty()); // filter = new UserFilter("email", FilterType.EMAIL); q = UserHelper.queryFilter(filter); assertEquals("*email*", q.getEmail()); // filter = new UserFilter("*email", FilterType.EMAIL); q = UserHelper.queryFilter(filter); assertEquals("*email", q.getEmail()); // filter = new UserFilter("email*", FilterType.EMAIL); q = UserHelper.queryFilter(filter); assertEquals("email*", q.getEmail()); // filter = new UserFilter("*email*", FilterType.EMAIL); q = UserHelper.queryFilter(filter); assertEquals("*email*", q.getEmail()); } public void testMatchUser() { User user = null; UserFilter userFilter = new UserFilter("abc", FilterType.USER_NAME); // assertFalse(UserHelper.matchUser(userFilter, user)); // user = new MockUser("abc", "ABC", "xABcD", "fooAbCbar"); assertTrue(UserHelper.matchUser(userFilter, user)); // userFilter = new UserFilter("abc", FilterType.FIRST_NAME); assertTrue(UserHelper.matchUser(userFilter, user)); // userFilter = new UserFilter("abc", FilterType.LAST_NAME); assertTrue(UserHelper.matchUser(userFilter, user)); // userFilter = new UserFilter("abc", FilterType.EMAIL); assertTrue(UserHelper.matchUser(userFilter, user)); // user = new MockUser("foo", "bar", "xyz", "bool"); userFilter = new UserFilter("abc", FilterType.USER_NAME); assertFalse(UserHelper.matchUser(userFilter, user)); // userFilter = new UserFilter("abc", FilterType.FIRST_NAME); assertFalse(UserHelper.matchUser(userFilter, user)); // userFilter = new UserFilter("abc", FilterType.LAST_NAME); assertFalse(UserHelper.matchUser(userFilter, user)); // userFilter = new UserFilter("abc", FilterType.EMAIL); assertFalse(UserHelper.matchUser(userFilter, user)); } private class MockUser extends UserImpl { public MockUser(String userName, String firstName, String lastName, String email) { setEmail(email); setUserName(userName); setFirstName(firstName); setLastName(lastName); } } }