This commit is contained in:
mionescu
2017-01-11 16:47:12 +02:00
3 changed files with 304 additions and 11 deletions
@@ -40,7 +40,7 @@ public class GetPeoplePreferenceFullTests extends RestTest
public void checkDefaultErrorSchema() throws Exception
{
restClient.authenticateUser(userModel).withCoreAPI().usingUser(new UserModel("invalidPersonID", "password"))
.getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId());
.getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId()));
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "invalidPersonID"))
.statusCodeIs(HttpStatus.NOT_FOUND)
@@ -55,10 +55,10 @@ public class GetPeoplePreferenceFullTests extends RestTest
public void preferenceIsReturnedWhenUsingMeAsPersonId() throws Exception
{
restPreferenceModel = restClient.authenticateUser(userModel).withCoreAPI().usingMe()
.getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId());
.getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId()));
restClient.assertStatusCodeIs(HttpStatus.OK);
restPreferenceModel.assertThat().field("id").is(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId())
restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId()))
.and().field("value").is("true");
}
@@ -68,15 +68,15 @@ public class GetPeoplePreferenceFullTests extends RestTest
public void propertiesParameterIsAppliedWhenRetrievingPreference() throws Exception
{
restPreferenceModel = restClient.authenticateUser(userModel).withParams("properties=id").withCoreAPI().usingUser(userModel)
.getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId());
.getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId()));
restClient.assertStatusCodeIs(HttpStatus.OK);
restPreferenceModel.assertThat().field("id").is(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId())
restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId()))
.and().field("value").isNull();
restPreferenceModel = restClient.authenticateUser(userModel).withParams("properties=id,value").withCoreAPI().usingUser(userModel)
.getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId());
.getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId()));
restClient.assertStatusCodeIs(HttpStatus.OK);
restPreferenceModel.assertThat().field("id").is(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId())
restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId()))
.and().field("value").is("true");
}
@@ -86,8 +86,8 @@ public class GetPeoplePreferenceFullTests extends RestTest
public void validateIdElementInGetSitePreferenceResponse() throws Exception
{
restPreferenceModel = restClient.authenticateUser(userModel).withCoreAPI().usingAuthUser()
.getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId());
restPreferenceModel.assertThat().field("id").is(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId())
.getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId()));
restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId()))
.and().field("value").is("true");
}
@@ -201,9 +201,9 @@ public class GetPeoplePreferenceFullTests extends RestTest
public void adminIsAbleToGetOtherUserPreference() throws Exception
{
restPreferenceModel = restClient.authenticateUser(dataUser.getAdminUser()).withCoreAPI().usingUser(userModel)
.getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId());
.getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId()));
restClient.assertStatusCodeIs(HttpStatus.OK);
restPreferenceModel.assertThat().field("id").is(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()).and().field("value").is("true");
restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())).and().field("value").is("true");
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.FULL })
@@ -0,0 +1,123 @@
package org.alfresco.rest.people;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestPreferenceModelsCollection;
import org.alfresco.utility.constants.PreferenceName;
import org.alfresco.utility.model.FolderModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
*
* @author Cristina Axinte
*
*/
public class GetPeoplePreferencesCoreTests extends RestTest
{
UserModel userModel, user1, user2, adminUser;
SiteModel siteModel;
FolderModel folderModel;
private RestPreferenceModelsCollection restPreferenceModelsCollection;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
adminUser = dataUser.getAdminUser();
userModel = dataUser.createRandomTestUser();
siteModel = dataSite.usingUser(userModel).createPublicRandomSite();
folderModel = dataContent.usingUser(userModel).usingSite(siteModel).createFolder();
user1 = dataUser.createRandomTestUser();
dataSite.usingUser(user1).usingSite(siteModel).addSiteToFavorites();
dataContent.usingUser(user1).usingSite(siteModel).addFolderToFavorites(folderModel);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets its preferences with invalid maxItems parameter with Rest API and response is 400")
public void userGetsPeoplePreferencesUsingInvalidMaxItemsParameter() throws Exception
{
restPreferenceModelsCollection = restClient.authenticateUser(user1).withCoreAPI().usingMe().usingParams("maxItems=0").getPersonPreferences();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsErrorKey(RestErrorModel.ONLY_POSITIVE_VALUES_MAXITEMS)
.containsSummary(RestErrorModel.ONLY_POSITIVE_VALUES_MAXITEMS)
.stackTraceIs(RestErrorModel.STACKTRACE)
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets its preferences with skipCount parameter applied with Rest API and response is successful")
public void userGetsPeoplePreferencesUsingInvalidSkipCountParameter() throws Exception
{
restPreferenceModelsCollection = restClient.authenticateUser(user1).withCoreAPI().usingMe().usingParams("skipCount=-1").getPersonPreferences();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsErrorKey(RestErrorModel.NEGATIVE_VALUES_SKIPCOUNT)
.containsSummary(RestErrorModel.NEGATIVE_VALUES_SKIPCOUNT)
.stackTraceIs(RestErrorModel.STACKTRACE)
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, description = "Verify user which doesn't have access to another user preferences fails to get its preferences with Rest API and response is permission denied")
public void userWithNoAccessToOtherUserPreferencesIsForbiddenToGetItsPreferences() throws Exception
{
UserModel noAccessUser = dataUser.createRandomTestUser();
dataSite.usingUser(noAccessUser).usingSite(siteModel).addSiteToFavorites();
restPreferenceModelsCollection = restClient.authenticateUser(user1).withCoreAPI().usingUser(noAccessUser).getPersonPreferences();
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
restClient.assertLastError().containsErrorKey(RestErrorModel.PERMISSION_DENIED_ERRORKEY)
.containsSummary(RestErrorModel.PERMISSION_WAS_DENIED)
.stackTraceIs(RestErrorModel.STACKTRACE)
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, description = "Verify user fails to get preferences for inexistent personId with Rest API and response is 404")
public void userCannotGetPeoplePreferencesForInexistentPersonId() throws Exception
{
UserModel inexistentUserName = new UserModel("inexistent", "password");
restPreferenceModelsCollection = restClient.authenticateUser(user1).withCoreAPI().usingUser(inexistentUserName).getPersonPreferences();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND);
restClient.assertLastError().containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, inexistentUserName.getUsername()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, description = "Verify user get preferences for a user with no preferences with Rest API and response is empty")
public void userGetsPeoplePreferencesForUserWithNoPreferences() throws Exception
{
UserModel userNoActivities = dataUser.createRandomTestUser();
restPreferenceModelsCollection = restClient.authenticateUser(adminUser).withCoreAPI().usingUser(userNoActivities).getPersonPreferences();
restClient.assertStatusCodeIs(HttpStatus.OK);
restPreferenceModelsCollection.assertThat().paginationField("count").is("0");
restPreferenceModelsCollection.assertThat().entriesListIsEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, description = "Verify user fails to get preferences for a removed preference with Rest API and response is 404")
public void userFailsToGetPeoplePreferencesIfPreferenceWasRemoved() throws Exception
{
SiteModel preferenceSite = dataSite.usingUser(user1).createPublicRandomSite();
dataSite.usingUser(user1).usingSite(preferenceSite).addSiteToFavorites();
restPreferenceModelsCollection = restClient.authenticateUser(user1).withCoreAPI().usingAuthUser().getPersonPreferences();
restClient.assertStatusCodeIs(HttpStatus.OK);
restPreferenceModelsCollection.assertThat().paginationField("count").is("6");
dataSite.usingUser(user1).usingSite(preferenceSite).removeSiteFromFavorites();
restPreferenceModelsCollection = restClient.authenticateUser(user1).withCoreAPI().usingAuthUser().getPersonPreferences();
restClient.assertStatusCodeIs(HttpStatus.OK);
restPreferenceModelsCollection.assertThat().paginationField("count").is("5");
restPreferenceModelsCollection.assertThat().entriesListDoesNotContain("id", String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), preferenceSite.getId()));
}
}
@@ -0,0 +1,170 @@
package org.alfresco.rest.people;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteMembershipRequestModel;
import org.alfresco.rest.model.RestSiteMembershipRequestModelsCollection;
import org.alfresco.rest.model.RestTaskModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.report.Bug;
import org.alfresco.utility.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
* Created by Claudia Agache on 1/10/2017.
*/
public class GetSiteMembershipRequestsFullTests extends RestTest
{
UserModel siteManager, newMember, adminUser, regularUser;
SiteModel moderatedSite1, moderatedSite2, publicSite, privateSite;
RestSiteMembershipRequestModelsCollection siteMembershipRequests;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
siteManager = dataUser.createRandomTestUser();
publicSite = dataSite.usingUser(siteManager).createPublicRandomSite();
moderatedSite1 = dataSite.usingUser(siteManager).createModeratedRandomSite();
moderatedSite2 = dataSite.usingUser(siteManager).createModeratedRandomSite();
privateSite = dataSite.usingUser(siteManager).createPrivateRandomSite();
adminUser = dataUser.getAdminUser();
newMember = dataUser.createRandomTestUser();
regularUser = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite1);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
restClient.withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite2);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
restClient.authenticateUser(adminUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite1);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
restClient.withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite2);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify admin user gets all its own site membership requests with Rest API and response is successful (200)")
public void adminGetsItsOwnSiteMembershipRequestsWithSuccess() throws Exception
{
siteMembershipRequests = restClient.authenticateUser(adminUser).withCoreAPI().usingAuthUser().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListContains("id", moderatedSite1.getId())
.assertThat().entriesListContains("id", moderatedSite2.getId());
}
@Bug(id = "MNT-16557")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify regular user fails to get all site membership requests of another user with Rest API (403)")
public void regularUserFailsToGetSiteMembershipRequestsOfAnotherUser() throws Exception
{
restClient.authenticateUser(regularUser).withCoreAPI()
.usingUser(newMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN)
.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Bug(id = "MNT-16557")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify regular user fails to get all site membership requests of admin with Rest API (403)")
public void regularUserFailsToGetSiteMembershipRequestsOfAdmin() throws Exception
{
restClient.authenticateUser(regularUser).withCoreAPI()
.usingUser(adminUser).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN)
.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify regular user is able to get his site membership requests with, but skip the first one")
public void getSiteMembershipRequestsButSkipTheFirstOne() throws Exception
{
siteMembershipRequests = restClient.authenticateUser(newMember).withParams("orderBy=id ASC").withCoreAPI()
.usingMe().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListContains("id", moderatedSite1.getId())
.assertThat().entriesListContains("id", moderatedSite2.getId());
RestSiteMembershipRequestModel firstSiteMembershipRequest = siteMembershipRequests.getEntries().get(0).onModel();
siteMembershipRequests = restClient.authenticateUser(newMember).withParams("orderBy=id ASC&skipCount=1").withCoreAPI()
.usingMe().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListDoesNotContain("id", firstSiteMembershipRequest.getId())
.assertThat().entriesListContains("id", moderatedSite2.getId());
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify regular user is able to get his site membership requests with higher skipCount than number of requests")
public void getSiteMembershipRequestsWithHighSkipCount() throws Exception
{
siteMembershipRequests = restClient.authenticateUser(newMember).withParams("skipCount=3").withCoreAPI()
.usingMe().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListIsEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify get site membership requests returns an empty list where there are no requests")
public void getSiteMembershipRequestsWhereThereAreNoRequests() throws Exception
{
siteMembershipRequests = restClient.authenticateUser(regularUser).withCoreAPI().usingMe().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListIsEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Reject request then get site membership requests.")
public void rejectRequestThenGetSiteMembershipRequests() throws Exception
{
UserModel userWithRejectedRequests = dataUser.createRandomTestUser();
restClient.authenticateUser(userWithRejectedRequests).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite1);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
restClient.withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite2);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
RestTaskModel taskModel = restClient.authenticateUser(userWithRejectedRequests).withWorkflowAPI().getTasks().getTaskModelByDescription(moderatedSite1);
workflow.approveSiteMembershipRequest(siteManager.getUsername(), siteManager.getPassword(), taskModel.getId(), false, "Rejected");
siteMembershipRequests = restClient.authenticateUser(userWithRejectedRequests).withCoreAPI().usingMe().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListDoesNotContain("id", moderatedSite1.getId())
.assertThat().entriesListContains("id", moderatedSite2.getId());
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Check get site membership requests when properties parameter is used")
public void getSiteMembershipRequestsWithProperties() throws Exception
{
siteMembershipRequests = restClient.authenticateUser(newMember).withParams("properties=id")
.withCoreAPI().usingAuthUser().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListContains("id", moderatedSite1.getId())
.assertThat().entriesListContains("id", moderatedSite2.getId());
RestSiteMembershipRequestModel siteMembershipRequest = siteMembershipRequests.getOneRandomEntry().onModel();
siteMembershipRequest.assertThat().fieldsCount().is(1);
}
}