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:
Ray Gauss
2015-08-25 14:00:46 +00:00
parent c8c2441ba3
commit 16f3bba3ba
3 changed files with 87 additions and 30 deletions

View File

@@ -24,6 +24,8 @@ import java.util.List;
import java.util.Map;
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.AuthenticationUtil;
import org.alfresco.repo.site.SiteModel;
@@ -65,6 +67,7 @@ public class InvitationWebScriptTest extends BaseWebScriptTest
private PersonService personService;
private NodeService nodeService;
private TransactionService transactionService;
private InvitationServiceImpl invitationServiceImpl;
private String userOne = "InvitationTestOne" + GUID.generate();
private String userTwo = "InvitationTestTwo" + GUID.generate();
@@ -102,6 +105,7 @@ public class InvitationWebScriptTest extends BaseWebScriptTest
this.personService = (PersonService) getServer().getApplicationContext().getBean("PersonService");
this.nodeService = (NodeService) getServer().getApplicationContext().getBean("NodeService");
this.transactionService = (TransactionService) getServer().getApplicationContext().getBean("TransactionService");
this.invitationServiceImpl = (InvitationServiceImpl) getServer().getApplicationContext().getBean("invitationService");
// turn off email sending to prevent errors during unit testing
// (or sending out email by accident from tests)
@@ -189,9 +193,10 @@ public class InvitationWebScriptTest extends BaseWebScriptTest
* Detailed Test of List Invitation Web Script.
* Using URL: /api/invitations
*
* @param requireAcceptance true if a workflow requiring acceptance is being used
* @throws Exception
*/
public void testInvitationsGet() throws Exception
protected void testInvitationsGet(boolean requireAcceptance) throws Exception
{
// Create two sites.
String shortNameSiteA = GUID.generate();
@@ -241,7 +246,10 @@ public class InvitationWebScriptTest extends BaseWebScriptTest
JSONObject moderatedBInv = getInvitation(moderatedIdBUSER_TWO, data);
assertNotNull("Moderated invitation to Site B not present!", moderatedBInv);
JSONObject nominatedInv = getInvitation(nominatedId, data);
if (requireAcceptance)
{
assertNotNull("Nominated invitation to Site A not present!", nominatedInv);
}
checkJSONInvitations(data);
}
@@ -287,11 +295,39 @@ public class InvitationWebScriptTest extends BaseWebScriptTest
/**
* Detailed Test of List Invitation Web Script.
* Using URL: /api/sites/{shortname}/invitations
* Using URL: /api/invitations
*
* @throws Exception
*/
public void testSiteInvitationsGet() 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.
* Using URL: /api/sites/{shortname}/invitations
*
* @param requireAcceptance true if a workflow requiring acceptance is being used
* @throws Exception
*/
protected void testSiteInvitationsGet(boolean requireAcceptance) throws Exception
{
// Create two sites.
String shortNameSiteA = GUID.generate();
@@ -336,12 +372,15 @@ public class InvitationWebScriptTest extends BaseWebScriptTest
JSONObject top = new JSONObject(response.getContentAsString());
// System.out.println(response.getContentAsString());
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);
assertNotNull("Moderated invitation to Site A not present!", moderatedAInv);
JSONObject nominatedInv = getInvitation(nominatedId, data);
if (requireAcceptance)
{
assertNotNull("Nominated invitation to Site A not present!", nominatedInv);
}
checkJSONInvitations(data);
}
@@ -376,7 +415,7 @@ public class InvitationWebScriptTest extends BaseWebScriptTest
}
// search SiteA by type Nominated: One Nominated User2
{
if (requireAcceptance) {
String siteANominatedUrl = URL_SITES + "/" +shortNameSiteA + "/invitations?invitationType=NOMINATED";
Response response = sendRequest(new GetRequest(siteANominatedUrl), 200);
JSONObject top = new JSONObject(response.getContentAsString());
@@ -427,6 +466,33 @@ public class InvitationWebScriptTest extends BaseWebScriptTest
}
}
/**
* 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
{
for (int i = 0; i < data.length(); i++)

View File

@@ -26,6 +26,7 @@ import java.util.Set;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.action.executer.MailActionExecuter;
import org.alfresco.repo.content.MimetypeMap;
import org.alfresco.repo.invitation.InvitationServiceImpl;
import org.alfresco.repo.invitation.WorkflowModelNominatedInvitation;
import org.alfresco.repo.invitation.script.ScriptInvitationService;
import org.alfresco.repo.invitation.site.InviteInfo;
@@ -89,6 +90,7 @@ public class InviteServiceTest extends BaseWebScriptTest
private NamespaceService namespaceService;
private TransactionService transactionService;
private NodeArchiveService nodeArchiveService;
private InvitationServiceImpl invitationServiceImpl;
// stores invitee email addresses, one entry for each "start invite" operation
// 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()
.getBean("TransactionService");
this.nodeArchiveService = (NodeArchiveService)getServer().getApplicationContext().getBean("nodeArchiveService");
this.invitationServiceImpl = (InvitationServiceImpl) getServer().getApplicationContext().getBean("invitationService");
ScriptInvitationService scriptInvitationService = (ScriptInvitationService) getServer().getApplicationContext().getBean("invitationServiceScript");
scriptInvitationService.setSiteService(this.siteService);
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
{
// Test only applies to legacy invite workflow
this.invitationServiceImpl.setNominatedInvitationWorkflowId(
WorkflowModelNominatedInvitation.WORKFLOW_DEFINITION_NAME_ACTIVITI_INVITE);
// Create invitee person
final String inviteeEmail = INVITEE_EMAIL_PREFIX + RandomStringUtils.randomAlphanumeric(6) + "@" + INVITEE_EMAIL_DOMAIN;
AuthenticationUtil.runAs(new RunAsWork<Object>()

View File

@@ -867,12 +867,6 @@ public class SiteServiceTest extends BaseWebScriptTest
String acceptURL = "page/accept-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
String moderatedId = createModeratedInvitation(shortName, inviteComments, userName, roleName);
@@ -882,12 +876,12 @@ public class SiteServiceTest extends BaseWebScriptTest
// search for the moderated invitation
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
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
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);
JSONObject top = new JSONObject(response.getContentAsString());
//System.out.println(response.getContentAsString());
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);
assertEquals("first userid is wrong", first.getString("inviteeUserName"), USER_TWO);
JSONObject second = data.getJSONObject(0);
assertEquals("second userid is wrong", second.getString("inviteeUserName"), USER_TWO);
assertEquals("userid is wrong", first.getString("inviteeUserName"), USER_TWO);
}
@@ -1103,14 +1095,6 @@ public class SiteServiceTest extends BaseWebScriptTest
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
{
Response response = sendRequest(new GetRequest(URL_SITES + "/" + shortName + "/invitations?invitationType=Crap"), 500);