From 6999f66134752e458a5250b7040b1c420db74680 Mon Sep 17 00:00:00 2001 From: jdotcms Date: Fri, 13 Mar 2020 13:20:03 -0600 Subject: [PATCH] #18101 adding an unit test --- .../authentication/ApiTokenResourceTest.java | 52 ++++++++++++++++++- .../v1/authentication/ApiTokenResource.java | 2 +- 2 files changed, 51 insertions(+), 3 deletions(-) diff --git a/dotCMS/src/integration-test/java/com/dotcms/rest/api/v1/authentication/ApiTokenResourceTest.java b/dotCMS/src/integration-test/java/com/dotcms/rest/api/v1/authentication/ApiTokenResourceTest.java index e7ab334e5647..07b071a93204 100644 --- a/dotCMS/src/integration-test/java/com/dotcms/rest/api/v1/authentication/ApiTokenResourceTest.java +++ b/dotCMS/src/integration-test/java/com/dotcms/rest/api/v1/authentication/ApiTokenResourceTest.java @@ -10,7 +10,10 @@ import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotSecurityException; import com.dotmarketing.util.UUIDGenerator; +import com.liferay.portal.NoSuchCompanyException; +import com.liferay.portal.SystemException; import com.liferay.portal.ejb.CompanyPool; +import com.liferay.portal.ejb.CompanyUtil; import com.liferay.portal.model.Company; import com.liferay.portal.model.User; import com.liferay.portal.util.WebKeys; @@ -22,6 +25,10 @@ import javax.servlet.http.HttpServletResponse; import javax.ws.rs.core.Response; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyObject; import static org.mockito.Mockito.mock; @@ -56,11 +63,52 @@ public void test_revokeUserToken_non_admin_user() throws DotDataException, DotSe } @Test - public void test_revokeUserToken() { + public void test_revokeUserToken() throws DotSecurityException, DotDataException, SystemException, NoSuchCompanyException { // 1) create an user with skinid // 2) call the revoke to reset the user // 3) check the user has the skinid reset - Assert.assertTrue(true); + + final Company company = new CompanyDataGen() + .name("TestCompany") + .shortName("TC") + .authType("email") + .autoLogin(true) + .emailAddress("lol@dotCMS.com") + .homeURL("localhost") + .city("NYC") + .mx("MX") + .type("test") + .phone("5552368") + .portalURL("/portalURL") + .nextPersisted(); + assertNotNull(company.getCompanyId()); + final Company retrievedCompany = CompanyUtil.findByPrimaryKey(company.getCompanyId()); + assertEquals(company.getCompanyId(), retrievedCompany.getCompanyId()); + + final String skinId = UUIDGenerator.generateUuid(); + final User limitedUser = new UserDataGen().active(true) + .skinId(skinId).companyId(retrievedCompany.getCompanyId()).nextPersisted(); + + final User adminUser = new UserDataGen().nextPersisted(); + APILocator.getRoleAPI().addRoleToUser(APILocator.getRoleAPI().loadCMSAdminRole(), adminUser); + assertTrue(APILocator.getUserAPI().isCMSAdmin(adminUser)); + + final HttpServletRequest request = mock(HttpServletRequest.class); + final HttpServletResponse response = mock(HttpServletResponse.class); + final WebResource webResource = mock(WebResource.class); + final ApiTokenResource apiTokenResource = new ApiTokenResource(APILocator.getApiTokenAPI(), webResource); + + when(request.getAttribute(WebKeys.USER)).thenReturn(adminUser); + final InitDataObject initDataObject = new InitDataObject(); + initDataObject.setUser(adminUser); + when(webResource.init(any(WebResource.InitBuilder.class))).thenReturn(initDataObject); + final Response restResponse = apiTokenResource.revokeUserToken(request, response, limitedUser.getUserId()); + Assert.assertNotNull(restResponse); + assertEquals(restResponse.getStatus(), Response.Status.OK.getStatusCode()); + + final User modifiedUser = APILocator.getUserAPI().loadUserById(limitedUser.getUserId()); + assertNotNull(modifiedUser); + assertNotEquals(skinId, modifiedUser.getSkinId()); } } diff --git a/dotCMS/src/main/java/com/dotcms/rest/api/v1/authentication/ApiTokenResource.java b/dotCMS/src/main/java/com/dotcms/rest/api/v1/authentication/ApiTokenResource.java index cbfe93c9252b..19b8df1cfe2d 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/api/v1/authentication/ApiTokenResource.java +++ b/dotCMS/src/main/java/com/dotcms/rest/api/v1/authentication/ApiTokenResource.java @@ -250,7 +250,7 @@ public final Response revokeUserToken(@Context final HttpServletRequest request, if (APILocator.getRoleAPI().doesUserHaveRole(initDataObject.getUser(), APILocator.getRoleAPI().loadCMSAdminRole())) { - final User user = initDataObject.getUser(); + final User user = initDataObject.getUser(); final User userToken = APILocator.getUserAPI().loadUserById(userid); if (null != userToken) {