mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
Merged SHA-SIMP-1 (5.1.0) to HEAD (5.1)
105171: SHA-935: Repository Invite Flow Changes - Updated remote-api tests git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@110789 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -24,6 +24,8 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
|
import org.alfresco.repo.invitation.InvitationServiceImpl;
|
||||||
|
import org.alfresco.repo.invitation.WorkflowModelNominatedInvitation;
|
||||||
import org.alfresco.repo.security.authentication.AuthenticationComponent;
|
import org.alfresco.repo.security.authentication.AuthenticationComponent;
|
||||||
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||||
import org.alfresco.repo.site.SiteModel;
|
import org.alfresco.repo.site.SiteModel;
|
||||||
@@ -65,6 +67,7 @@ public class InvitationWebScriptTest extends BaseWebScriptTest
|
|||||||
private PersonService personService;
|
private PersonService personService;
|
||||||
private NodeService nodeService;
|
private NodeService nodeService;
|
||||||
private TransactionService transactionService;
|
private TransactionService transactionService;
|
||||||
|
private InvitationServiceImpl invitationServiceImpl;
|
||||||
|
|
||||||
private String userOne = "InvitationTestOne" + GUID.generate();
|
private String userOne = "InvitationTestOne" + GUID.generate();
|
||||||
private String userTwo = "InvitationTestTwo" + GUID.generate();
|
private String userTwo = "InvitationTestTwo" + GUID.generate();
|
||||||
@@ -102,7 +105,8 @@ public class InvitationWebScriptTest extends BaseWebScriptTest
|
|||||||
this.personService = (PersonService) getServer().getApplicationContext().getBean("PersonService");
|
this.personService = (PersonService) getServer().getApplicationContext().getBean("PersonService");
|
||||||
this.nodeService = (NodeService) getServer().getApplicationContext().getBean("NodeService");
|
this.nodeService = (NodeService) getServer().getApplicationContext().getBean("NodeService");
|
||||||
this.transactionService = (TransactionService) getServer().getApplicationContext().getBean("TransactionService");
|
this.transactionService = (TransactionService) getServer().getApplicationContext().getBean("TransactionService");
|
||||||
|
this.invitationServiceImpl = (InvitationServiceImpl) getServer().getApplicationContext().getBean("invitationService");
|
||||||
|
|
||||||
// turn off email sending to prevent errors during unit testing
|
// turn off email sending to prevent errors during unit testing
|
||||||
// (or sending out email by accident from tests)
|
// (or sending out email by accident from tests)
|
||||||
InviteServiceTest.configureMailExecutorForTestMode(this.getServer());
|
InviteServiceTest.configureMailExecutorForTestMode(this.getServer());
|
||||||
@@ -189,9 +193,10 @@ public class InvitationWebScriptTest extends BaseWebScriptTest
|
|||||||
* Detailed Test of List Invitation Web Script.
|
* Detailed Test of List Invitation Web Script.
|
||||||
* Using URL: /api/invitations
|
* Using URL: /api/invitations
|
||||||
*
|
*
|
||||||
|
* @param requireAcceptance true if a workflow requiring acceptance is being used
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public void testInvitationsGet() throws Exception
|
protected void testInvitationsGet(boolean requireAcceptance) throws Exception
|
||||||
{
|
{
|
||||||
// Create two sites.
|
// Create two sites.
|
||||||
String shortNameSiteA = GUID.generate();
|
String shortNameSiteA = GUID.generate();
|
||||||
@@ -241,7 +246,10 @@ public class InvitationWebScriptTest extends BaseWebScriptTest
|
|||||||
JSONObject moderatedBInv = getInvitation(moderatedIdBUSER_TWO, data);
|
JSONObject moderatedBInv = getInvitation(moderatedIdBUSER_TWO, data);
|
||||||
assertNotNull("Moderated invitation to Site B not present!", moderatedBInv);
|
assertNotNull("Moderated invitation to Site B not present!", moderatedBInv);
|
||||||
JSONObject nominatedInv = getInvitation(nominatedId, data);
|
JSONObject nominatedInv = getInvitation(nominatedId, data);
|
||||||
assertNotNull("Nominated invitation to Site A not present!", nominatedInv);
|
if (requireAcceptance)
|
||||||
|
{
|
||||||
|
assertNotNull("Nominated invitation to Site A not present!", nominatedInv);
|
||||||
|
}
|
||||||
|
|
||||||
checkJSONInvitations(data);
|
checkJSONInvitations(data);
|
||||||
}
|
}
|
||||||
@@ -284,14 +292,42 @@ public class InvitationWebScriptTest extends BaseWebScriptTest
|
|||||||
assertNotNull(top.getString("message"));
|
assertNotNull(top.getString("message"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Detailed Test of List Invitation Web Script.
|
||||||
|
* Using URL: /api/invitations
|
||||||
|
*
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public void testInvitationsGet() throws Exception
|
||||||
|
{
|
||||||
|
testInvitationsGet(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Detailed Test of List Invitation Web Script using legacy workflow which requires user acceptance
|
||||||
|
* Using URL: /api/invitations
|
||||||
|
*
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public void testInvitationsGetRequireNominatedAcceptance() throws Exception
|
||||||
|
{
|
||||||
|
this.invitationServiceImpl.setNominatedInvitationWorkflowId(
|
||||||
|
WorkflowModelNominatedInvitation.WORKFLOW_DEFINITION_NAME_ACTIVITI_INVITE);
|
||||||
|
testInvitationsGet(true);
|
||||||
|
// Reset back to default
|
||||||
|
this.invitationServiceImpl.setNominatedInvitationWorkflowId(
|
||||||
|
WorkflowModelNominatedInvitation.WORKFLOW_DEFINITION_NAME_ACTIVITI_ADD_DIRECT);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Detailed Test of List Invitation Web Script.
|
* Detailed Test of List Invitation Web Script.
|
||||||
* Using URL: /api/sites/{shortname}/invitations
|
* Using URL: /api/sites/{shortname}/invitations
|
||||||
*
|
*
|
||||||
|
* @param requireAcceptance true if a workflow requiring acceptance is being used
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public void testSiteInvitationsGet() throws Exception
|
protected void testSiteInvitationsGet(boolean requireAcceptance) throws Exception
|
||||||
{
|
{
|
||||||
// Create two sites.
|
// Create two sites.
|
||||||
String shortNameSiteA = GUID.generate();
|
String shortNameSiteA = GUID.generate();
|
||||||
@@ -336,12 +372,15 @@ public class InvitationWebScriptTest extends BaseWebScriptTest
|
|||||||
JSONObject top = new JSONObject(response.getContentAsString());
|
JSONObject top = new JSONObject(response.getContentAsString());
|
||||||
// System.out.println(response.getContentAsString());
|
// System.out.println(response.getContentAsString());
|
||||||
JSONArray data = top.getJSONArray("data");
|
JSONArray data = top.getJSONArray("data");
|
||||||
assertEquals("Wrong number of invitations!", 2, data.length());
|
assertEquals("Wrong number of invitations!", requireAcceptance ? 2 : 1, data.length());
|
||||||
|
|
||||||
JSONObject moderatedAInv = getInvitation(moderatedIdAUSER_TWO, data);
|
JSONObject moderatedAInv = getInvitation(moderatedIdAUSER_TWO, data);
|
||||||
assertNotNull("Moderated invitation to Site A not present!", moderatedAInv);
|
assertNotNull("Moderated invitation to Site A not present!", moderatedAInv);
|
||||||
JSONObject nominatedInv = getInvitation(nominatedId, data);
|
JSONObject nominatedInv = getInvitation(nominatedId, data);
|
||||||
assertNotNull("Nominated invitation to Site A not present!", nominatedInv);
|
if (requireAcceptance)
|
||||||
|
{
|
||||||
|
assertNotNull("Nominated invitation to Site A not present!", nominatedInv);
|
||||||
|
}
|
||||||
checkJSONInvitations(data);
|
checkJSONInvitations(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -376,7 +415,7 @@ public class InvitationWebScriptTest extends BaseWebScriptTest
|
|||||||
}
|
}
|
||||||
|
|
||||||
// search SiteA by type Nominated: One Nominated User2
|
// search SiteA by type Nominated: One Nominated User2
|
||||||
{
|
if (requireAcceptance) {
|
||||||
String siteANominatedUrl = URL_SITES + "/" +shortNameSiteA + "/invitations?invitationType=NOMINATED";
|
String siteANominatedUrl = URL_SITES + "/" +shortNameSiteA + "/invitations?invitationType=NOMINATED";
|
||||||
Response response = sendRequest(new GetRequest(siteANominatedUrl), 200);
|
Response response = sendRequest(new GetRequest(siteANominatedUrl), 200);
|
||||||
JSONObject top = new JSONObject(response.getContentAsString());
|
JSONObject top = new JSONObject(response.getContentAsString());
|
||||||
@@ -426,6 +465,33 @@ public class InvitationWebScriptTest extends BaseWebScriptTest
|
|||||||
assertNotNull(top.getString("message"));
|
assertNotNull(top.getString("message"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Detailed Test of List Invitation Web Script.
|
||||||
|
* Using URL: /api/sites/{shortname}/invitations
|
||||||
|
*
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public void testSiteInvitationsGet() throws Exception
|
||||||
|
{
|
||||||
|
testSiteInvitationsGet(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Detailed Test of List Invitation Web Script using legacy workflow which requires user acceptance.
|
||||||
|
* Using URL: /api/sites/{shortname}/invitations
|
||||||
|
*
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public void testSiteInvitationsGetRequireNominatedAcceptance() throws Exception
|
||||||
|
{
|
||||||
|
this.invitationServiceImpl.setNominatedInvitationWorkflowId(
|
||||||
|
WorkflowModelNominatedInvitation.WORKFLOW_DEFINITION_NAME_ACTIVITI_INVITE);
|
||||||
|
testSiteInvitationsGet(true);
|
||||||
|
// Reset back to default
|
||||||
|
this.invitationServiceImpl.setNominatedInvitationWorkflowId(
|
||||||
|
WorkflowModelNominatedInvitation.WORKFLOW_DEFINITION_NAME_ACTIVITI_ADD_DIRECT);
|
||||||
|
}
|
||||||
|
|
||||||
private void checkJSONInvitations(JSONArray data) throws JSONException
|
private void checkJSONInvitations(JSONArray data) throws JSONException
|
||||||
{
|
{
|
||||||
|
@@ -26,6 +26,7 @@ import java.util.Set;
|
|||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.repo.action.executer.MailActionExecuter;
|
import org.alfresco.repo.action.executer.MailActionExecuter;
|
||||||
import org.alfresco.repo.content.MimetypeMap;
|
import org.alfresco.repo.content.MimetypeMap;
|
||||||
|
import org.alfresco.repo.invitation.InvitationServiceImpl;
|
||||||
import org.alfresco.repo.invitation.WorkflowModelNominatedInvitation;
|
import org.alfresco.repo.invitation.WorkflowModelNominatedInvitation;
|
||||||
import org.alfresco.repo.invitation.script.ScriptInvitationService;
|
import org.alfresco.repo.invitation.script.ScriptInvitationService;
|
||||||
import org.alfresco.repo.invitation.site.InviteInfo;
|
import org.alfresco.repo.invitation.site.InviteInfo;
|
||||||
@@ -89,6 +90,7 @@ public class InviteServiceTest extends BaseWebScriptTest
|
|||||||
private NamespaceService namespaceService;
|
private NamespaceService namespaceService;
|
||||||
private TransactionService transactionService;
|
private TransactionService transactionService;
|
||||||
private NodeArchiveService nodeArchiveService;
|
private NodeArchiveService nodeArchiveService;
|
||||||
|
private InvitationServiceImpl invitationServiceImpl;
|
||||||
|
|
||||||
// stores invitee email addresses, one entry for each "start invite" operation
|
// stores invitee email addresses, one entry for each "start invite" operation
|
||||||
// invoked, so that resources created for each invitee for each test
|
// invoked, so that resources created for each invitee for each test
|
||||||
@@ -143,6 +145,7 @@ public class InviteServiceTest extends BaseWebScriptTest
|
|||||||
this.transactionService = (TransactionService) getServer().getApplicationContext()
|
this.transactionService = (TransactionService) getServer().getApplicationContext()
|
||||||
.getBean("TransactionService");
|
.getBean("TransactionService");
|
||||||
this.nodeArchiveService = (NodeArchiveService)getServer().getApplicationContext().getBean("nodeArchiveService");
|
this.nodeArchiveService = (NodeArchiveService)getServer().getApplicationContext().getBean("nodeArchiveService");
|
||||||
|
this.invitationServiceImpl = (InvitationServiceImpl) getServer().getApplicationContext().getBean("invitationService");
|
||||||
ScriptInvitationService scriptInvitationService = (ScriptInvitationService) getServer().getApplicationContext().getBean("invitationServiceScript");
|
ScriptInvitationService scriptInvitationService = (ScriptInvitationService) getServer().getApplicationContext().getBean("invitationServiceScript");
|
||||||
scriptInvitationService.setSiteService(this.siteService);
|
scriptInvitationService.setSiteService(this.siteService);
|
||||||
Invite invite = (Invite) getServer().getApplicationContext().getBean("webscript.org.alfresco.repository.invite.invite.get");
|
Invite invite = (Invite) getServer().getApplicationContext().getBean("webscript.org.alfresco.repository.invite.invite.get");
|
||||||
@@ -935,6 +938,10 @@ public class InviteServiceTest extends BaseWebScriptTest
|
|||||||
|
|
||||||
public void testInviteeResourcesNotDeletedUponRejectWhenInvitesPending() throws Exception
|
public void testInviteeResourcesNotDeletedUponRejectWhenInvitesPending() throws Exception
|
||||||
{
|
{
|
||||||
|
// Test only applies to legacy invite workflow
|
||||||
|
this.invitationServiceImpl.setNominatedInvitationWorkflowId(
|
||||||
|
WorkflowModelNominatedInvitation.WORKFLOW_DEFINITION_NAME_ACTIVITI_INVITE);
|
||||||
|
|
||||||
// Create invitee person
|
// Create invitee person
|
||||||
final String inviteeEmail = INVITEE_EMAIL_PREFIX + RandomStringUtils.randomAlphanumeric(6) + "@" + INVITEE_EMAIL_DOMAIN;
|
final String inviteeEmail = INVITEE_EMAIL_PREFIX + RandomStringUtils.randomAlphanumeric(6) + "@" + INVITEE_EMAIL_DOMAIN;
|
||||||
AuthenticationUtil.runAs(new RunAsWork<Object>()
|
AuthenticationUtil.runAs(new RunAsWork<Object>()
|
||||||
|
@@ -867,12 +867,6 @@ public class SiteServiceTest extends BaseWebScriptTest
|
|||||||
String acceptURL = "page/accept-invite";
|
String acceptURL = "page/accept-invite";
|
||||||
String rejectURL = "page/reject-invite";
|
String rejectURL = "page/reject-invite";
|
||||||
|
|
||||||
// Create a nominated invitation
|
|
||||||
String nominatedId = createNominatedInvitation(shortName, inviteeFirstName, inviteeLastName, inviteeEmail, inviteeUserName, roleName, serverPath, acceptURL, rejectURL, 201);
|
|
||||||
|
|
||||||
// Get the nominated invitation
|
|
||||||
sendRequest(new GetRequest(URL_SITES + "/" + shortName + "/invitations/" + nominatedId), 200);
|
|
||||||
|
|
||||||
//Create a new moderated invitation
|
//Create a new moderated invitation
|
||||||
String moderatedId = createModeratedInvitation(shortName, inviteComments, userName, roleName);
|
String moderatedId = createModeratedInvitation(shortName, inviteComments, userName, roleName);
|
||||||
|
|
||||||
@@ -881,13 +875,13 @@ public class SiteServiceTest extends BaseWebScriptTest
|
|||||||
|
|
||||||
// search for the moderated invitation
|
// search for the moderated invitation
|
||||||
sendRequest(new GetRequest(URL_SITES + "/" + shortName + "/invitations?inviteeUserName=" + userName), 200);
|
sendRequest(new GetRequest(URL_SITES + "/" + shortName + "/invitations?inviteeUserName=" + userName), 200);
|
||||||
|
|
||||||
|
// Create a nominated invitation
|
||||||
|
String nominatedId = createNominatedInvitation(shortName, inviteeFirstName, inviteeLastName, inviteeEmail, inviteeUserName, roleName, serverPath, acceptURL, rejectURL, 201);
|
||||||
|
|
||||||
// Search for all invitations on this site
|
// Search for all invitations on this site
|
||||||
sendRequest(new GetRequest(URL_SITES + "/" + shortName + "/invitations"), 200);
|
sendRequest(new GetRequest(URL_SITES + "/" + shortName + "/invitations"), 200);
|
||||||
|
|
||||||
// cancel the nominated invitation
|
|
||||||
sendRequest(new DeleteRequest(URL_SITES + "/" + shortName + "/invitations/" + nominatedId), 200);
|
|
||||||
|
|
||||||
// cancel the moderated invitation
|
// cancel the moderated invitation
|
||||||
sendRequest(new DeleteRequest(URL_SITES + "/" + shortName + "/invitations/" + moderatedId), 200);
|
sendRequest(new DeleteRequest(URL_SITES + "/" + shortName + "/invitations/" + moderatedId), 200);
|
||||||
}
|
}
|
||||||
@@ -1076,18 +1070,16 @@ public class SiteServiceTest extends BaseWebScriptTest
|
|||||||
|
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* search by user - find USER_TWO's two invitations
|
* search by user - find USER_TWO's invitation
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
Response response = sendRequest(new GetRequest(URL_SITES + "/" + shortName + "/invitations?inviteeUserName=" + USER_TWO), 200);
|
Response response = sendRequest(new GetRequest(URL_SITES + "/" + shortName + "/invitations?inviteeUserName=" + USER_TWO), 200);
|
||||||
JSONObject top = new JSONObject(response.getContentAsString());
|
JSONObject top = new JSONObject(response.getContentAsString());
|
||||||
//System.out.println(response.getContentAsString());
|
//System.out.println(response.getContentAsString());
|
||||||
JSONArray data = top.getJSONArray("data");
|
JSONArray data = top.getJSONArray("data");
|
||||||
assertEquals("user two invitation not found", data.length(), 2);
|
assertEquals("user two invitation not found", 1, data.length());
|
||||||
JSONObject first = data.getJSONObject(0);
|
JSONObject first = data.getJSONObject(0);
|
||||||
assertEquals("first userid is wrong", first.getString("inviteeUserName"), USER_TWO);
|
assertEquals("userid is wrong", first.getString("inviteeUserName"), USER_TWO);
|
||||||
JSONObject second = data.getJSONObject(0);
|
|
||||||
assertEquals("second userid is wrong", second.getString("inviteeUserName"), USER_TWO);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1103,14 +1095,6 @@ public class SiteServiceTest extends BaseWebScriptTest
|
|||||||
assertEquals("two moderated invitations not found", data.length(), 2);
|
assertEquals("two moderated invitations not found", data.length(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
|
||||||
Response response = sendRequest(new GetRequest(URL_SITES + "/" + shortName + "/invitations?invitationType=NOMINATED"), 200);
|
|
||||||
JSONObject top = new JSONObject(response.getContentAsString());
|
|
||||||
//System.out.println(response.getContentAsString());
|
|
||||||
JSONArray data = top.getJSONArray("data");
|
|
||||||
assertEquals("one nominated invitation not found", data.length(), 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// negative test - unknown invitationType
|
// negative test - unknown invitationType
|
||||||
{
|
{
|
||||||
Response response = sendRequest(new GetRequest(URL_SITES + "/" + shortName + "/invitations?invitationType=Crap"), 500);
|
Response response = sendRequest(new GetRequest(URL_SITES + "/" + shortName + "/invitations?invitationType=Crap"), 500);
|
||||||
|
Reference in New Issue
Block a user