List of usage examples for org.apache.commons.httpclient HttpStatus SC_NOT_FOUND
int SC_NOT_FOUND
To view the source code for org.apache.commons.httpclient HttpStatus SC_NOT_FOUND.
Click Source Link
From source file:org.alfresco.rest.api.tests.TestFavourites.java
@Test public void testPUBLICAPI156() throws Exception { final TestSite publicSite = person1PublicSites.get(0); // person1's public site final TestSite publicSite1 = person1PublicSites.get(1); // person1's public site final NodeRef folderNodeRef = person1PublicFolders.get(0); // person1's folder final NodeRef nodeRef = person1PublicDocs.get(1); // a file in the folder final List<Favourite> expectedFavourites = new ArrayList<Favourite>(); {/* w w w.j ava 2s . co m*/ publicApiClient.setRequestContext(new RequestContext(network1.getId(), person14Id)); // invite to another user's public site SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(publicSite.getSiteId()); siteMembershipRequest.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.createSiteMembershipRequest(person14Id, siteMembershipRequest); // favourite other users site, folder and file Favourite folderFavourite = makeFolderFavourite(folderNodeRef.getId()); favouritesProxy.createFavourite(person14Id, folderFavourite); expectedFavourites.add(folderFavourite); Favourite fileFavourite = makeFileFavourite(nodeRef.getId()); favouritesProxy.createFavourite(person14Id, fileFavourite); expectedFavourites.add(fileFavourite); final Favourite siteFavourite = makeSiteFavourite(publicSite); favouritesProxy.createFavourite(person14Id, siteFavourite); expectedFavourites.add(siteFavourite); final Favourite siteFavourite1 = makeSiteFavourite(publicSite1); favouritesProxy.createFavourite(person14Id, siteFavourite1); expectedFavourites.add(siteFavourite1); sort(expectedFavourites, FavouritesService.DEFAULT_SORT_PROPS); // remove the folder and file TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>() { @Override public Void doWork() throws Exception { repoService.deleteNode(nodeRef); repoService.deleteNode(folderNodeRef); return null; } }, person11Id, network1.getId()); expectedFavourites.remove(folderFavourite); expectedFavourites.remove(fileFavourite); sort(expectedFavourites, FavouritesService.DEFAULT_SORT_PROPS); // GETs should not return the favourites nor error { try { favouritesProxy.getFavourite(person14Id, folderFavourite.getTargetGuid()); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } try { favouritesProxy.getFavourite(person14Id, fileFavourite.getTargetGuid()); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedFavourites.size(), expectedFavourites.size()); ListResponse<Favourite> resp = favouritesProxy.getFavourites(person14Id, createParams(paging, null)); checkList(sublist(expectedFavourites, skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } } }
From source file:org.alfresco.rest.api.tests.TestFavouriteSites.java
@Test public void testFavouriteSites() throws Exception { Iterator<TestNetwork> networksIt = getTestFixture().getNetworksIt(); assertTrue(networksIt.hasNext());/* w ww.j av a 2 s .com*/ final TestNetwork network1 = networksIt.next(); assertTrue(networksIt.hasNext()); final TestNetwork network2 = networksIt.next(); // Create some users and sites final List<TestPerson> people = new ArrayList<TestPerson>(); TenantUtil.runAsSystemTenant(new TenantRunAsWork<Void>() { @Override public Void doWork() throws Exception { TestPerson person = network1.createUser(); people.add(person); person = network1.createUser(); people.add(person); person = network1.createUser(); people.add(person); return null; } }, network1.getId()); TenantUtil.runAsSystemTenant(new TenantRunAsWork<Void>() { @Override public Void doWork() throws Exception { TestPerson person = network2.createUser(); people.add(person); person = network2.createUser(); people.add(person); return null; } }, network2.getId()); final TestPerson person1 = people.get(0); final TestPerson person2 = people.get(1); final TestPerson person3 = people.get(2); final TestPerson person4 = people.get(3); final TestPerson person5 = people.get(3); TestSite testSite = transactionHelper .doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback<TestSite>() { @SuppressWarnings("synthetic-access") public TestSite execute() throws Throwable { return TenantUtil.runAsUserTenant(new TenantRunAsWork<TestSite>() { public TestSite doWork() throws Exception { SiteInformation siteInfo = new SiteInformation(GUID.generate(), "", "", SiteVisibility.PUBLIC); return network1.createSite(siteInfo); } }, person1.getId(), network1.getId()); } }, false, true); TestSite testSite1 = transactionHelper .doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback<TestSite>() { @SuppressWarnings("synthetic-access") public TestSite execute() throws Throwable { return TenantUtil.runAsUserTenant(new TenantRunAsWork<TestSite>() { public TestSite doWork() throws Exception { SiteInformation siteInfo = new SiteInformation(GUID.generate(), "", "", SiteVisibility.PUBLIC); return network1.createSite(siteInfo); } }, person1.getId(), network1.getId()); } }, false, true); TestSite testSite3 = transactionHelper .doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback<TestSite>() { @SuppressWarnings("synthetic-access") public TestSite execute() throws Throwable { return TenantUtil.runAsUserTenant(new TenantRunAsWork<TestSite>() { public TestSite doWork() throws Exception { SiteInformation siteInfo = new SiteInformation(GUID.generate(), "", "", SiteVisibility.PUBLIC); return network1.createSite(siteInfo); } }, person1.getId(), network1.getId()); } }, false, true); TestSite testSite4 = transactionHelper .doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback<TestSite>() { @SuppressWarnings("synthetic-access") public TestSite execute() throws Throwable { return TenantUtil.runAsUserTenant(new TenantRunAsWork<TestSite>() { public TestSite doWork() throws Exception { SiteInformation siteInfo = new SiteInformation(GUID.generate(), "", "", SiteVisibility.PUBLIC); return network1.createSite(siteInfo); } }, person5.getId(), network2.getId()); } }, false, true); Sites sitesProxy = publicApiClient.sites(); // invalid methods try { FavouriteSite fs = new FavouriteSite(testSite.getSiteId()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); sitesProxy.create("people", person1.getId(), "favorite-sites", testSite.getSiteId(), fs.toJSON().toString(), "Unable to POST to a favorite-site"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { FavouriteSite fs = new FavouriteSite(testSite.getSiteId()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); sitesProxy.update("people", person1.getId(), "favorite-sites", null, fs.toJSON().toString(), "Unable to PUT favorite-sites"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { FavouriteSite fs = new FavouriteSite(testSite.getSiteId()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); sitesProxy.update("people", person1.getId(), "favorite-sites", testSite.getSiteId(), fs.toJSON().toString(), "Unable to PUT a favorite-site"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); sitesProxy.remove("people", person1.getId(), "favorite-sites", null, "Unable to DELETE favorite-sites"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // Create favourite site // unknown user - 404 try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); FavouriteSite fs = new FavouriteSite(testSite.getSiteId()); sitesProxy.createFavouriteSite("invalid.user", fs); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // user from another network - 401 (not able to auth against tenant) try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person4.getId())); FavouriteSite fs = new FavouriteSite(testSite.getSiteId()); sitesProxy.createFavouriteSite(person1.getId(), fs); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // another user from the same network try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); FavouriteSite fs = new FavouriteSite(testSite.getSiteId()); sitesProxy.createFavouriteSite(person2.getId(), fs); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_FORBIDDEN, e.getHttpResponse().getStatusCode()); } // a member of this site { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); FavouriteSite fs = new FavouriteSite(testSite.getSiteId()); FavouriteSite resp = sitesProxy.createFavouriteSite(person1.getId(), fs); fs.expected(resp); } // add same favourite site try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); sitesProxy.createFavouriteSite(person1.getId(), new FavouriteSite(testSite.getSiteId())); fail(); } catch (PublicApiException e) { assertEquals(409, e.getHttpResponse().getStatusCode()); } // "-me" user { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); FavouriteSite fs = new FavouriteSite(testSite.getSiteId()); FavouriteSite resp = sitesProxy.createFavouriteSite(org.alfresco.rest.api.People.DEFAULT_USER, fs); fs.expected(resp); final List<FavouriteSite> expectedFavouriteSites = TenantUtil .runAsUserTenant(new TenantRunAsWork<List<FavouriteSite>>() { @Override public List<FavouriteSite> doWork() throws Exception { return repoService.getFavouriteSites(person2); } }, person2.getId(), network1.getId()); // check it's there int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedFavouriteSites.size(), expectedFavouriteSites.size()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.getFavouriteSites(person2.getId(), createParams(paging, null)); } // not a member of this site { FavouriteSite fs = new FavouriteSite(testSite1.getSiteId()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); FavouriteSite ret = sitesProxy.createFavouriteSite(person1.getId(), fs); fs.expected(ret); } // GET favourite sites { final List<FavouriteSite> expectedFavouriteSites = TenantUtil .runAsUserTenant(new TenantRunAsWork<List<FavouriteSite>>() { @Override public List<FavouriteSite> doWork() throws Exception { return repoService.getFavouriteSites(person1); } }, person1.getId(), network1.getId()); // Test Case cloud-1490 // unknown user try { int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedFavouriteSites.size(), expectedFavouriteSites.size()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); sitesProxy.getFavouriteSites(GUID.generate(), createParams(paging, null)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // authentication: unknown user try { int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedFavouriteSites.size(), expectedFavouriteSites.size()); publicApiClient .setRequestContext(new RequestContext(network1.getId(), GUID.generate(), "password")); sitesProxy.getFavouriteSites(person1.getId(), createParams(paging, null)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // another user from the same network - 403 try { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedFavouriteSites.size(), expectedFavouriteSites.size()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); ListResponse<FavouriteSite> response = sitesProxy.getFavouriteSites(person1.getId(), createParams(paging, null)); checkList(expectedFavouriteSites, paging.getExpectedPaging(), response); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_FORBIDDEN, e.getHttpResponse().getStatusCode()); } // another user from another network - 401 try { int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedFavouriteSites.size(), expectedFavouriteSites.size()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person4.getId())); sitesProxy.getFavouriteSites(person1.getId(), createParams(paging, null)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // successful GET { int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedFavouriteSites.size(), expectedFavouriteSites.size()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); ListResponse<FavouriteSite> response = sitesProxy.getFavouriteSites(person1.getId(), createParams(paging, null)); checkList(expectedFavouriteSites, paging.getExpectedPaging(), response); } // skipCount is greater than the number of favourite sites { int skipCount = expectedFavouriteSites.size() + 100; Paging paging = getPaging(skipCount, null, expectedFavouriteSites.size(), expectedFavouriteSites.size()); List<FavouriteSite> expected = Collections.emptyList(); ListResponse<FavouriteSite> response = sitesProxy.getFavouriteSites(person1.getId(), createParams(paging, null)); checkList(expected, paging.getExpectedPaging(), response); } // "-me-" user { int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedFavouriteSites.size(), expectedFavouriteSites.size()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); ListResponse<FavouriteSite> response = sitesProxy .getFavouriteSites(org.alfresco.rest.api.People.DEFAULT_USER, createParams(paging, null)); checkList(expectedFavouriteSites, paging.getExpectedPaging(), response); } } // user is a member of the site which he has favourited { publicApiClient.setRequestContext(new RequestContext(network2.getId(), person5.getId())); List<FavouriteSite> expectedFavouriteSites = new ArrayList<FavouriteSite>(1); FavouriteSite fs = new FavouriteSite(testSite4.getSiteId()); expectedFavouriteSites.add(fs); FavouriteSite ret = sitesProxy.createFavouriteSite(person5.getId(), fs); fs.expected(ret); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedFavouriteSites.size(), expectedFavouriteSites.size()); ListResponse<FavouriteSite> response = sitesProxy.getFavouriteSites(person5.getId(), createParams(paging, null)); checkList(expectedFavouriteSites, paging.getExpectedPaging(), response); } // remove { // create some favourite sites { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person3.getId())); FavouriteSite fs = new FavouriteSite(testSite); sitesProxy.createFavouriteSite(person3.getId(), fs); fs = new FavouriteSite(testSite1); sitesProxy.createFavouriteSite(person3.getId(), fs); } // known user { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); FavouriteSite fs = new FavouriteSite(testSite); sitesProxy.removeFavouriteSite(person1.getId(), fs); List<FavouriteSite> expectedFavouriteSites = TenantUtil .runAsUserTenant(new TenantRunAsWork<List<FavouriteSite>>() { @Override public List<FavouriteSite> doWork() throws Exception { return repoService.getFavouriteSites(person1); } }, person1.getId(), network1.getId()); // check removed int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedFavouriteSites.size(), expectedFavouriteSites.size()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); ListResponse<FavouriteSite> response = sitesProxy.getFavouriteSites(person1.getId(), createParams(paging, null)); assertFalse(response.getList().contains(fs)); } // unknown user try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); FavouriteSite fs = new FavouriteSite(testSite); sitesProxy.removeFavouriteSite(GUID.generate(), fs); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // unknown site try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); FavouriteSite fs = new FavouriteSite(GUID.generate()); sitesProxy.removeFavouriteSite(person1.getId(), fs); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // try to remove a favourite site that is not a favourite site try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); FavouriteSite fs = new FavouriteSite(testSite3); sitesProxy.removeFavouriteSite(person1.getId(), fs); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // "-me-" user { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person3.getId())); FavouriteSite fs = new FavouriteSite(testSite1); sitesProxy.removeFavouriteSite(org.alfresco.rest.api.People.DEFAULT_USER, fs); List<FavouriteSite> expectedFavouriteSites = TenantUtil .runAsUserTenant(new TenantRunAsWork<List<FavouriteSite>>() { @Override public List<FavouriteSite> doWork() throws Exception { return repoService.getFavouriteSites(person3); } }, person3.getId(), network1.getId()); // check removed int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedFavouriteSites.size(), expectedFavouriteSites.size()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person3.getId())); ListResponse<FavouriteSite> response = sitesProxy.getFavouriteSites(person3.getId(), createParams(paging, null)); assertFalse(response.getList().contains(fs)); } } }
From source file:org.alfresco.rest.api.tests.TestNetworks.java
@Test public void testPersonNetworks() throws Exception { People peopleProxy = publicApiClient.people(); {/*from w w w . ja va 2 s .c om*/ /** * Test http://<host>:<port>/alfresco/a i.e. tenant servlet root - should return user's networks * */ final TestNetwork testAccount = getTestFixture().getRandomNetwork(); Iterator<TestPerson> personIt = testAccount.getPeople().iterator(); final TestPerson person = personIt.next(); RequestContext rc = new RequestContext(null, person.getId()); publicApiClient.setRequestContext(rc); HttpResponse response = publicApiClient.delete(null, null, null, null, null); //url /null/alfresco/versions/1 does not map to a Web Script assertEquals(404, response.getStatusCode()); PublicApiClient.ExpectedErrorResponse errorResponse = RestApiUtil .parseErrorResponse(response.getJsonResponse()); assertNotNull(errorResponse); assertNotNull(errorResponse.getErrorKey()); assertNotNull(errorResponse.getBriefSummary()); response = publicApiClient.put(null, null, null, null, null, null, null); assertEquals(404, response.getStatusCode()); errorResponse = RestApiUtil.parseErrorResponse(response.getJsonResponse()); assertNotNull(errorResponse); assertNotNull(errorResponse.getErrorKey()); assertNotNull(errorResponse.getBriefSummary()); response = publicApiClient.post(null, null, null, null, null, null); assertEquals(404, response.getStatusCode()); errorResponse = RestApiUtil.parseErrorResponse(response.getJsonResponse()); assertNotNull(errorResponse); assertNotNull(errorResponse.getErrorKey()); assertNotNull(errorResponse.getBriefSummary()); List<PersonNetwork> expectedNetworkMembers = person.getNetworkMemberships(); int expectedTotal = expectedNetworkMembers.size(); { // GET / - users networks Paging paging = getPaging(0, Integer.MAX_VALUE, expectedTotal, expectedTotal); publicApiClient.setRequestContext(new RequestContext("-default-", person.getId())); response = publicApiClient.index(createParams(paging, null)); ListResponse<PersonNetwork> resp = PersonNetwork.parseNetworkMembers(response.getJsonResponse()); assertEquals(200, response.getStatusCode()); checkList(new ArrayList<PersonNetwork>(expectedNetworkMembers), paging.getExpectedPaging(), resp); } } // user from another network { publicApiClient.setRequestContext(new RequestContext("-default-", person21.getId())); List<PersonNetwork> networksMemberships = Collections.emptyList(); try { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, networksMemberships.size(), networksMemberships.size()); peopleProxy.getNetworkMemberships(person11.getId(), createParams(paging, null)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } } // user from the same network try { List<PersonNetwork> networksMemberships = person12.getNetworkMemberships(); publicApiClient.setRequestContext(new RequestContext("-default-", person12.getId())); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, networksMemberships.size(), networksMemberships.size()); peopleProxy.getNetworkMemberships(person11.getId(), createParams(paging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } List<PersonNetwork> networksMemberships = person11.getNetworkMemberships(); // Test Case cloud-2203 // Test Case cloud-1498 // test paging { publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId())); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, networksMemberships.size(), networksMemberships.size()); ListResponse<PersonNetwork> resp = peopleProxy.getNetworkMemberships(person11.getId(), createParams(paging, null)); checkList(networksMemberships.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } // "-me-" user { publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId())); int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, networksMemberships.size(), networksMemberships.size()); ListResponse<PersonNetwork> resp = peopleProxy .getNetworkMemberships(org.alfresco.rest.api.People.DEFAULT_USER, createParams(paging, null)); checkList(networksMemberships.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } // unknown person id try { List<PersonNetwork> networkMemberships = person11.getNetworkMemberships(); publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId())); int skipCount = 0; int maxItems = 2; Paging expectedPaging = getPaging(skipCount, maxItems, networkMemberships.size(), networkMemberships.size()); peopleProxy.getNetworkMemberships("invalidUser", createParams(expectedPaging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // invalid caller authentication try { List<PersonNetwork> networkMemberships = person11.getNetworkMemberships(); publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId(), GUID.generate())); int skipCount = 0; int maxItems = 2; Paging expectedPaging = getPaging(skipCount, maxItems, networkMemberships.size(), networkMemberships.size()); peopleProxy.getNetworkMemberships(person11.getId(), createParams(expectedPaging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // Test Case cloud-1499 // unknown person id try { List<PersonNetwork> networkMemberships = person11.getNetworkMemberships(); assertTrue(networkMemberships.size() > 0); PersonNetwork network = networkMemberships.get(0); publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId())); peopleProxy.getNetworkMembership("invalidUser", network.getId()); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // invalid caller authentication try { List<PersonNetwork> networkMemberships = person11.getNetworkMemberships(); assertTrue(networkMemberships.size() > 0); PersonNetwork network = networkMemberships.get(0); publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId(), GUID.generate())); peopleProxy.getNetworkMembership(person11.getId(), network.getId()); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // incorrect network id try { publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId())); peopleProxy.getNetworkMembership(person11.getId(), GUID.generate()); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // 1969 // not allowed methods // POST, POST networkId, PUT, PUT networkId, DELETE, DELETE networkId try { PersonNetwork pn = new PersonNetwork(GUID.generate()); publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId())); peopleProxy.create("people", person11.getId(), "networks", null, pn.toJSON().toString(), "Unable to POST to person networks"); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { PersonNetwork pn = networksMemberships.get(0); publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId())); peopleProxy.create("people", person11.getId(), "networks", pn.getId(), pn.toJSON().toString(), "Unable to POST to a person network"); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { PersonNetwork pn = new PersonNetwork(GUID.generate()); publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId())); peopleProxy.update("people", person11.getId(), "networks", null, pn.toJSON().toString(), "Unable to PUT person networks"); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { PersonNetwork pn = networksMemberships.get(0); publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId())); peopleProxy.update("people", person11.getId(), "networks", pn.getId(), pn.toJSON().toString(), "Unable to PUT a person network"); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId())); peopleProxy.remove("people", person11.getId(), "networks", null, "Unable to DELETE person networks"); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { PersonNetwork pn = networksMemberships.get(0); publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId())); peopleProxy.remove("people", person11.getId(), "networks", pn.getId(), "Unable to DELETE a person network"); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // user not a member of the network try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person21.getId())); int skipCount = 0; int maxItems = 2; Paging expectedPaging = getPaging(skipCount, maxItems); peopleProxy.getNetworkMemberships(person11.getId(), createParams(expectedPaging, null)); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } }
From source file:org.alfresco.rest.api.tests.TestNodeComments.java
@Test // TODO test embedded entity createdBy full visibility e.g. view comment by another user who's full details the caller can't see // TODO test update comment and modifiedBy in result is a person object public void testNodeComments() throws Exception { Comments commentsProxy = publicApiClient.comments(); Nodes nodesProxy = publicApiClient.nodes(); People peopleProxy = publicApiClient.people(); // Test Case cloud-1518 // Create comments // invalid node id try {//from w w w . jav a 2s. c o m Comment comment = new Comment("Test Comment 4", "Test Comment 4"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); commentsProxy.createNodeComment(GUID.generate(), comment); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // person from the same network - no permission try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12.getId())); Comment comment = new Comment("Test Comment 4", "Test Comment 4"); commentsProxy.createNodeComment(nodeRef1.getId(), comment); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_FORBIDDEN, e.getHttpResponse().getStatusCode()); } // Test Case cloud-2196 // multi-byte characters, create and update comments { Comment[] multiByteComments = new Comment[] { new Comment("", ""), new Comment("\u67e5\u770b\u5168\u90e8", "\u67e5\u770b\u5168\u90e8") }; Map<String, Comment> createdComments = new HashMap<String, Comment>(); for (Comment comment : multiByteComments) { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Comment ret = commentsProxy.createNodeComment(nodeRef2.getId(), comment); createdComments.put(ret.getId(), ret); } // test that it is possible to add comment to custom type node commentsProxy.createNodeComment(customTypeObject.getId(), new Comment("Custom type node comment", "The Comment")); try { // test that it is not possible to add comment to cm:object node commentsProxy.createNodeComment(cmObjectNodeRef.getId(), new Comment("CM Object node comment", "The Comment")); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // get comments of the non-folder/non-document nodeRef try { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems); commentsProxy.getNodeComments(cmObjectNodeRef.getId(), createParams(paging, null)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems); ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef2.getId(), createParams(paging, null)); List<Comment> retComments = resp.getList(); assertEquals(2, retComments.size()); for (Comment comment : retComments) { String commentId = comment.getId(); Comment expectedComment = createdComments.get(commentId); expectedComment.expected(comment); } Comment[] multiByteCommentUpdates = new Comment[] { new Comment("?", "?"), new Comment("\u4e00\u4e01\u4e02\u4e03", "\u4e00\u4e01\u4e02\u4e03") }; Map<String, Comment> updatedComments = new HashMap<String, Comment>(); for (Comment comment : multiByteCommentUpdates) { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Comment ret = commentsProxy.createNodeComment(nodeRef2.getId(), comment); updatedComments.put(ret.getId(), ret); } skipCount = 0; maxItems = 2; paging = getPaging(skipCount, maxItems); resp = commentsProxy.getNodeComments(nodeRef2.getId(), createParams(paging, null)); retComments = resp.getList(); assertEquals(2, retComments.size()); for (Comment comment : retComments) { String commentId = comment.getId(); Comment expectedComment = updatedComments.get(commentId); expectedComment.expected(comment); } } { // special characters Comment comment = new Comment("", "?*^&*(,"); List<Comment> expectedComments = new ArrayList<Comment>(1); expectedComments.add(comment); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); commentsProxy.createNodeComment(nodeRef3.getId(), comment); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size()); ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef3.getId(), createParams(paging, null)); checkList(expectedComments.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } try { Comment comment = new Comment("", ""); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); commentsProxy.createNodeComment(nodeRef2.getId(), comment); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } DateFormat format = PublicApiDateFormat.getDateFormat(); final List<Comment> expectedComments = new ArrayList<Comment>(10); final List<Comment> comments = new ArrayList<Comment>(10); comments.add(new Comment("Test Comment 4", "Test Comment 4")); comments.add(new Comment("Test Comment 1", "Test Comment 1")); comments.add(new Comment("Test Comment 3", "Test Comment 3")); comments.add(new Comment("Test Comment 2", "Test Comment 2")); { Date time = new Date(); for (Comment comment : comments) { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Comment resp = commentsProxy.createNodeComment(nodeRef1.getId(), comment); // check response assertEquals(comment.getContent(), resp.getContent()); assertTrue(format.parse(resp.getCreatedAt()).after(time)); person11.expected(resp.getCreatedBy()); assertNotNull(resp.getId()); expectedComments.add(resp); } // check activities have been raised repoService.generateFeed(); { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Paging paging = getPaging(0, Integer.MAX_VALUE); ListResponse<Activity> activities = peopleProxy.getActivities(person11.getId(), createParams(paging, null)); boolean found = false; for (Activity activity : activities.getList()) { String activityType = activity.getActivityType(); if (activityType.equals(ActivityType.COMMENT_CREATED)) { Map<String, Object> summary = activity.getSummary(); assertNotNull(summary); String objectId = (String) summary.get("objectId"); assertNotNull(objectId); if (nodeRef1.getId().equals(objectId)) { found = true; break; } } } assertTrue(found); } } // try to add a comment to a comment try { Comment comment = comments.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Comment newComment = commentsProxy.createNodeComment(nodeRef1.getId(), comment); expectedComments.add(newComment); commentsProxy.createNodeComment(newComment.getId(), comment); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // try to add a comment to a tag try { Comment comment = comments.get(0); Tag tag = new Tag("taggification"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Tag addedTag = nodesProxy.createNodeTag(nodeRef1.getId(), tag); commentsProxy.createNodeComment(addedTag.getId(), comment); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // add a comment to a folder { Date time = new Date(); Comment comment = comments.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Comment resp = commentsProxy.createNodeComment(folderNodeRef1.getId(), comment); // check response assertEquals(comment.getContent(), resp.getContent()); assertTrue(format.parse(resp.getCreatedAt()).after(time)); person11.expected(resp.getCreatedBy()); assertNotNull(resp.getId()); } Collections.sort(expectedComments); // Test Case cloud-2205 // Test Case cloud-2217 // Test Case cloud-1517 // pagination { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size()); ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef1.getId(), createParams(paging, null)); checkList(expectedComments.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } { int skipCount = 2; int maxItems = 10; Paging paging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size()); ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef1.getId(), createParams(paging, null)); checkList(expectedComments.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } // invalid node id - 404 try { int skipCount = 0; int maxItems = 2; Paging expectedPaging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size()); commentsProxy.getNodeComments("invalid", createParams(expectedPaging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } try { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size()); commentsProxy.getNodeComments(nodeRef1.getId() + ";pwc", createParams(paging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // suffix the node id with a version number { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size()); ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef1.getId() + ";3.0", createParams(paging, null)); checkList(expectedComments.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } // view comments of a document created by another person in the same network, who is not a member of the site // in which the comment resides try { int skipCount = 0; int maxItems = 2; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12.getId())); Paging expectedPaging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size()); commentsProxy.getNodeComments(nodeRef1.getId(), createParams(expectedPaging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_FORBIDDEN, e.getHttpResponse().getStatusCode()); } // document owned by another person in another network, the user is not a member of that network try { int skipCount = 0; int maxItems = 2; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person21.getId())); Paging expectedPaging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size()); commentsProxy.getNodeComments(nodeRef1.getId(), createParams(expectedPaging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // Test Case cloud-1971 // invalid methods { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); int skipCount = 0; int maxItems = 2; Paging expectedPaging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size()); ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef1.getId(), createParams(expectedPaging, null)); List<Comment> nodeComments = resp.getList(); assertTrue(nodeComments.size() > 0); Comment comment = nodeComments.get(0); try { commentsProxy.create("nodes", nodeRef1.getId(), "comments", comment.getId(), null, "Unable to POST to a node comment"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { commentsProxy.update("nodes", nodeRef1.getId(), "comments", null, null, "Unable to PUT node comments"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { commentsProxy.getSingle("nodes", nodeRef1.getId(), "comments", comment.getId(), "Unable to GET a node comment"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { commentsProxy.remove("nodes", nodeRef1.getId(), "comments", null, "Unable to DELETE node comments"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } } // Test Case cloud-2184 // update comments { Comment[] testComments = new Comment[] { new Comment("?", "?"), new Comment("\u4e00\u4e01\u4e02\u4e03", "\u4e00\u4e01\u4e02\u4e03") }; List<Comment> mlComments = new ArrayList<Comment>(); mlComments.add(new Comment("?", "?")); mlComments.add(new Comment("\u4e00\u4e01\u4e02\u4e03", "\u4e00\u4e01\u4e02\u4e03")); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); // create some comments Map<String, Comment> createdComments = new HashMap<String, Comment>(); for (Comment comment : testComments) { Comment ret = commentsProxy.createNodeComment(nodeRef4.getId(), comment); createdComments.put(ret.getId(), ret); } // update them with multi-byte content int i = 0; List<Comment> updatedComments = new ArrayList<Comment>(); for (Comment comment : createdComments.values()) { Comment updateComment = mlComments.get(i); Comment ret = commentsProxy.updateNodeComment(nodeRef4.getId(), comment.getId(), updateComment); updatedComments.add(ret); i++; } Collections.sort(updatedComments); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, mlComments.size(), mlComments.size()); ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef4.getId(), createParams(paging, null)); checkList(updatedComments, paging.getExpectedPaging(), resp); } // invalid node id try { Comment comment = expectedComments.get(1); Comment update = new Comment("Test Comment 4", "Test Comment 4"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); commentsProxy.updateNodeComment(GUID.generate(), comment.getId(), update); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // invalid comment id try { Comment update = new Comment("Test Comment 4", "Test Comment 4"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); commentsProxy.updateNodeComment(nodeRef1.getId(), GUID.generate(), update); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // person from the same network, not comment creator try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12.getId())); Comment comment = expectedComments.get(1); Comment update = new Comment("Test Comment 4", "Test Comment 4"); commentsProxy.updateNodeComment(nodeRef1.getId(), comment.getId(), update); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_FORBIDDEN, e.getHttpResponse().getStatusCode()); } // person from a different network try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person22.getId())); Comment comment = expectedComments.get(1); Comment update = new Comment("Test Comment 4", "Test Comment 4"); commentsProxy.updateNodeComment(nodeRef1.getId(), comment.getId(), update); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // successful update { Date time = new Date(); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Comment comment = expectedComments.get(1); Comment update = new Comment("Updated comment", "Updated comment"); Comment resp = commentsProxy.updateNodeComment(nodeRef1.getId(), comment.getId(), update); Thread.sleep(100); // simulate a user edit to a comment Comment expected = new Comment(comment); expected.setTitle("Updated comment"); expected.setEdited(true); expected.setContent("Updated comment"); expected.setModifiedBy(repoService.getPerson(person11.getId())); expected.setModifiedAt(PublicApiDateFormat.getDateFormat().format(time)); expected.expected(resp); } // delete comments // invalid node ref try { Comment comment = expectedComments.get(1); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); commentsProxy.removeNodeComment(GUID.generate(), comment.getId()); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // invalid comment id try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); commentsProxy.removeNodeComment(nodeRef1.getId(), GUID.generate()); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // successful delete { Comment toDelete = expectedComments.get(1); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); commentsProxy.removeNodeComment(nodeRef1.getId(), toDelete.getId()); // check it's been removed int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging expectedPaging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef1.getId(), createParams(expectedPaging, null)); List<Comment> actualComments = resp.getList(); assertFalse(actualComments.contains(toDelete)); } // PUT: test update with null/empty comment try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Comment comment = new Comment(); comment.setContent("my comment"); Comment createdComment = commentsProxy.createNodeComment(nodeRef1.getId(), comment); Comment updatedComment = new Comment(); updatedComment.setContent(null); commentsProxy.updateNodeComment(nodeRef1.getId(), createdComment.getId(), updatedComment); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } }
From source file:org.alfresco.rest.api.tests.TestNodeRatings.java
@Test public void testNodeRatings() throws Exception { Iterator<TestNetwork> networksIt = getTestFixture().getNetworksIt(); assertTrue(networksIt.hasNext());//from w w w .j a v a 2 s. c o m final TestNetwork network1 = networksIt.next(); assertTrue(networksIt.hasNext()); final TestNetwork network2 = networksIt.next(); final List<TestPerson> people = new ArrayList<TestPerson>(3); // create users TenantUtil.runAsSystemTenant(new TenantRunAsWork<Void>() { @Override public Void doWork() throws Exception { TestPerson person = network1.createUser(); people.add(person); person = network1.createUser(); people.add(person); return null; } }, network1.getId()); TenantUtil.runAsSystemTenant(new TenantRunAsWork<Void>() { @Override public Void doWork() throws Exception { TestPerson person = network2.createUser(); people.add(person); return null; } }, network2.getId()); final TestPerson person11 = people.get(0); final TestPerson person12 = people.get(1); final TestPerson person21 = people.get(2); final List<NodeRef> nodes = new ArrayList<NodeRef>(); final List<TestSite> sites = new ArrayList<TestSite>(); // Create site TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>() { @Override public Void doWork() throws Exception { TestSite site = network1.createSite(SiteVisibility.PRIVATE); sites.add(site); NodeRef nodeRef = repoService.createDocument(site.getContainerNodeRef("documentLibrary"), "Test Doc 1", "Test Content"); nodes.add(nodeRef); nodeRef = repoService.createDocument(site.getContainerNodeRef("documentLibrary"), "Test Doc 2", "Test Content"); nodes.add(nodeRef); return null; } }, person11.getId(), network1.getId()); final NodeRef nodeRef1 = nodes.get(0); Comments commentsProxy = publicApiClient.comments(); People peopleProxy = publicApiClient.people(); Nodes nodesProxy = publicApiClient.nodes(); DateFormat format = PublicApiDateFormat.getDateFormat(); // Test Case cloud-1976 // Create node ratings // try to add a rating to a comment try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Comment comment = new Comment("Test Comment", "Test Comment"); Comment newComment = commentsProxy.createNodeComment(nodeRef1.getId(), comment); NodeRating rating = new NodeRating("likes", true); nodesProxy.createNodeRating(newComment.getId(), rating); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // invalid node id try { NodeRating rating = new NodeRating("likes", true); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); nodesProxy.createNodeRating(GUID.generate(), rating); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // try to add a rating to a tag try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Tag tag = new Tag("testTag"); Tag newTag = nodesProxy.createNodeTag(nodeRef1.getId(), tag); NodeRating rating = new NodeRating("likes", true); nodesProxy.createNodeRating(newTag.getId(), rating); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // invalid rating scheme try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); nodesProxy.createNodeRating(nodeRef1.getId(), new NodeRating("missingRatingScheme", Double.valueOf(1.0f))); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } // invalid rating try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); nodesProxy.createNodeRating(nodeRef1.getId(), new NodeRating("likes", Double.valueOf(2.0f))); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } // invalid rating try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); nodesProxy.createNodeRating(nodeRef1.getId(), new NodeRating("fiveStar", true)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } // invalid rating - can't rate own content for fiveStar try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); nodesProxy.createNodeRating(nodeRef1.getId(), new NodeRating("fiveStar", 5)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } // valid ratings { NodeRating rating = new NodeRating("likes", true); Date time = new Date(); // rate by multiple users in more than 1 network publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); NodeRating ret = nodesProxy.createNodeRating(nodeRef1.getId(), rating); assertEquals(rating.getMyRating(), ret.getMyRating()); assertTrue(format.parse(ret.getRatedAt()).after(time)); assertEquals(rating.getId(), ret.getId()); assertEquals(new NodeRating.Aggregate(1, null), ret.getAggregate()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12.getId())); ret = nodesProxy.createNodeRating(nodeRef1.getId(), rating); assertEquals(rating.getMyRating(), ret.getMyRating()); assertTrue(format.parse(ret.getRatedAt()).after(time)); assertEquals(rating.getId(), ret.getId()); assertEquals(new NodeRating.Aggregate(2, null), ret.getAggregate()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12.getId())); ret = nodesProxy.createNodeRating(nodeRef1.getId(), rating); assertEquals(rating.getMyRating(), ret.getMyRating()); assertTrue(format.parse(ret.getRatedAt()).after(time)); assertEquals(rating.getId(), ret.getId()); assertEquals(new NodeRating.Aggregate(2, null), ret.getAggregate()); // different network - unauthorized try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person21.getId())); nodesProxy.createNodeRating(nodeRef1.getId(), rating); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // Test Case cloud-2209 // Test Case cloud-2220 // Test Case cloud-1520 // check that the node ratings are there, test paging { // person11 publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); List<NodeRating> expectedRatings = repoService.getNodeRatings(person11.getId(), network1.getId(), nodeRef1); { int skipCount = 0; int maxItems = 1; Paging paging = getPaging(skipCount, maxItems, expectedRatings.size(), expectedRatings.size()); ListResponse<NodeRating> resp = nodesProxy.getNodeRatings(nodeRef1.getId(), createParams(paging, null)); checkList(expectedRatings.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } { int skipCount = 1; int maxItems = Integer.MAX_VALUE; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Paging paging = getPaging(skipCount, maxItems, expectedRatings.size(), expectedRatings.size()); ListResponse<NodeRating> resp = nodesProxy.getNodeRatings(nodeRef1.getId(), createParams(paging, null)); checkList(expectedRatings.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } { int skipCount = 1; int maxItems = expectedRatings.size(); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Paging paging = getPaging(skipCount, maxItems, expectedRatings.size(), expectedRatings.size()); ListResponse<NodeRating> resp = nodesProxy.getNodeRatings(nodeRef1.getId(), createParams(paging, null)); checkList(expectedRatings.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } } { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12.getId())); // person12 List<NodeRating> expectedRatings = repoService.getNodeRatings(person12.getId(), network1.getId(), nodeRef1); { int skipCount = 0; int maxItems = 1; Paging paging = getPaging(skipCount, maxItems, expectedRatings.size(), expectedRatings.size()); ListResponse<NodeRating> resp = nodesProxy.getNodeRatings(nodeRef1.getId(), createParams(paging, null)); checkList(expectedRatings.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } { int skipCount = 1; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedRatings.size(), expectedRatings.size()); ListResponse<NodeRating> resp = nodesProxy.getNodeRatings(nodeRef1.getId(), createParams(paging, null)); checkList(expectedRatings.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } } { // person21 publicApiClient.setRequestContext(new RequestContext(network1.getId(), person21.getId())); List<NodeRating> expectedRatings = Collections.emptyList(); try { int skipCount = 0; int maxItems = 1; Paging paging = getPaging(skipCount, maxItems, expectedRatings.size(), expectedRatings.size()); nodesProxy.getNodeRatings(nodeRef1.getId(), createParams(paging, null)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } } // invalid node id try { int skipCount = 1; int maxItems = Integer.MAX_VALUE; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Paging paging = getPaging(skipCount, maxItems); nodesProxy.getNodeRatings(GUID.generate(), createParams(paging, null)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // check activities have been raised for the created ratings repoService.generateFeed(); { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Paging paging = getPaging(0, Integer.MAX_VALUE); ListResponse<Activity> activities = peopleProxy.getActivities(person11.getId(), createParams(paging, null)); boolean found = false; for (Activity activity : activities.getList()) { String activityType = activity.getActivityType(); if (activityType.equals(ActivityType.FILE_LIKED)) { Map<String, Object> summary = activity.getSummary(); assertNotNull(summary); String objectId = (String) summary.get("objectId"); assertNotNull(objectId); if (nodeRef1.getId().equals(objectId)) { found = true; break; } } } assertTrue(found); } } { // remove node rating NodeRating rating = new NodeRating("likes", null); try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person21.getId())); nodesProxy.removeNodeRating(nodeRef1.getId(), rating); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12.getId())); nodesProxy.removeNodeRating(nodeRef1.getId(), rating); } // check list { List<NodeRating> ratings = repoService.getNodeRatings(person11.getId(), network1.getId(), nodeRef1); int skipCount = 0; int maxItems = Integer.MAX_VALUE; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Paging paging = getPaging(skipCount, maxItems, ratings.size(), ratings.size()); ListResponse<NodeRating> resp = nodesProxy.getNodeRatings(nodeRef1.getId(), createParams(paging, null)); checkList(ratings.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } } // get a node rating // 1977 { NodeRating rating = new NodeRating("likes", true); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); NodeRating expected = nodesProxy.createNodeRating(nodeRef1.getId(), rating); NodeRating actual = nodesProxy.getNodeRating(nodeRef1.getId(), "likes"); expected.expected(actual); } { // update node rating NodeRating rating = new NodeRating("fiveStar", 2); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12.getId())); // create initial rating NodeRating createdRating = nodesProxy.createNodeRating(nodeRef1.getId(), rating); NodeRating updateRating = new NodeRating(createdRating.getId(), 5); // update - not supported try { nodesProxy.updateNodeRating(nodeRef1.getId(), updateRating); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } } // Test Case cloud-1977 // invalid methods { try { // -ve test - cannot create multiple ratings in single POST call (unsupported) List<NodeRating> ratings = new ArrayList<>(2); ratings.add(new NodeRating("likes", true)); ratings.add(new NodeRating("likes", false)); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); nodesProxy.create("nodes", nodeRef1.getId(), "ratings", null, JSONArray.toJSONString(ratings), "Unable to POST to multiple ratings"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // get an arbitrary rating publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); ListResponse<NodeRating> resp = nodesProxy.getNodeRatings(nodeRef1.getId(), createParams(getPaging(0, Integer.MAX_VALUE), null)); List<NodeRating> nodeRatings = resp.getList(); assertTrue(nodeRatings.size() > 0); try { NodeRating rating = new NodeRating("likes", true); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); nodesProxy.create("nodes", nodeRef1.getId(), "ratings", "likes", rating.toJSON().toString(), "Unable to POST to a node rating"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); nodesProxy.update("nodes", nodeRef1.getId(), "ratings", null, null, "Unable to PUT node ratings"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); nodesProxy.remove("nodes", nodeRef1.getId(), "ratings", null, "Unable to DELETE node ratings"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { NodeRating rating = nodeRatings.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); nodesProxy.update("nodes", nodeRef1.getId(), "ratings", rating.getId(), null, "Unable to PUT a node rating"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } } }
From source file:org.alfresco.rest.api.tests.TestPersonSites.java
@Test public void testPersonSites() throws Exception { Set<MemberOfSite> personSites = new TreeSet<MemberOfSite>(); //Get last site for use with personRemoveSite TestSite personRemoveSite = sites.get(sites.size() - 1); sites.remove(sites.size() - 1);// w ww.j a v a 2s .co m personSites.addAll(network1.getSiteMemberships(person11.getId())); // Create some sites personSites.addAll(TenantUtil.runAsUserTenant(new TenantRunAsWork<List<MemberOfSite>>() { @Override public List<MemberOfSite> doWork() throws Exception { List<MemberOfSite> expectedSites = new ArrayList<MemberOfSite>(); TestSite site = network1.createSite(SiteVisibility.PRIVATE); expectedSites.add(new MemberOfSite(site, SiteRole.SiteManager)); site = network1.createSite(SiteVisibility.PUBLIC); expectedSites.add(new MemberOfSite(site, SiteRole.SiteManager)); site = network1.createSite(SiteVisibility.MODERATED); expectedSites.add(new MemberOfSite(site, SiteRole.SiteManager)); return expectedSites; } }, person11.getId(), network1.getId())); personSites.addAll(TenantUtil.runAsUserTenant(new TenantRunAsWork<List<MemberOfSite>>() { @Override public List<MemberOfSite> doWork() throws Exception { List<MemberOfSite> expectedSites = new ArrayList<MemberOfSite>(); TestSite site = network1.createSite(SiteVisibility.PRIVATE); site.inviteToSite(person11.getId(), SiteRole.SiteConsumer); expectedSites.add(new MemberOfSite(site, SiteRole.SiteConsumer)); site = network1.createSite(SiteVisibility.PUBLIC); site.inviteToSite(person11.getId(), SiteRole.SiteConsumer); expectedSites.add(new MemberOfSite(site, SiteRole.SiteConsumer)); site = network1.createSite(SiteVisibility.MODERATED); site.inviteToSite(person11.getId(), SiteRole.SiteConsumer); expectedSites.add(new MemberOfSite(site, SiteRole.SiteConsumer)); return expectedSites; } }, person12.getId(), network1.getId())); final List<MemberOfSite> expectedSites = new ArrayList<MemberOfSite>(personSites); Sites sitesProxy = publicApiClient.sites(); // Test Case cloud-1487 // unknown user try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.getPersonSites(GUID.generate(), null); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // Test Case cloud-2200 // Test Case cloud-2213 // user should be able to list their sites { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSites.size(), null); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); ListResponse<MemberOfSite> resp = sitesProxy.getPersonSites(person11.getId(), createParams(paging, null)); checkList(expectedSites.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } { int skipCount = 2; int maxItems = 8; Paging paging = getPaging(skipCount, maxItems, expectedSites.size(), null); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); ListResponse<MemberOfSite> resp = sitesProxy.getPersonSites(person11.getId(), createParams(paging, null)); checkList(expectedSites.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } // "-me-" user { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSites.size(), null); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); ListResponse<MemberOfSite> resp = sitesProxy.getPersonSites(org.alfresco.rest.api.People.DEFAULT_USER, createParams(paging, null)); checkList(expectedSites.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } // a user in another tenant should not be able to list a user's sites try { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSites.size(), null); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person21.getId())); sitesProxy.getPersonSites(person11.getId(), createParams(paging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // Test case cloud-1488 { MemberOfSite memberOfSite = expectedSites.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); MemberOfSite ret = sitesProxy.getPersonSite(person11.getId(), memberOfSite.getSiteId()); memberOfSite.expected(ret); } try { MemberOfSite memberOfSite = expectedSites.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.getPersonSite(GUID.generate(), memberOfSite.getSiteId()); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.getPersonSite(person11.getId(), GUID.generate()); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // Test Case cloud-1487 // unknown person id try { MemberOfSite memberOfSite = expectedSites.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.getPersonSite(GUID.generate(), memberOfSite.getSiteId()); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.getPersonSite(person11.getId(), GUID.generate()); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } { //Tests removing a person from the site publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.remove("people", person11.getId(), "sites", personRemoveSite.getSiteId(), "Unable to DELETE a person site"); try { sitesProxy.getPersonSite(person11.getId(), personRemoveSite.getSiteId()); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } } // TODO // person from external network listing user sites // Test Case cloud-1966 // Not allowed methods try { MemberOfSite memberOfSite = expectedSites.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.create("people", person11.getId(), "sites", memberOfSite.getSiteId(), null, "Unable to POST to a person site"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.create("people", person11.getId(), "sites", null, null, "Unable to POST to person sites"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { MemberOfSite memberOfSite = expectedSites.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.update("people", person11.getId(), "sites", memberOfSite.getSiteId(), null, "Unable to PUT a person site"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.update("people", person11.getId(), "sites", null, null, "Unable to PUT person sites"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.remove("people", person11.getId(), "sites", null, "Unable to DELETE person sites"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } }
From source file:org.alfresco.rest.api.tests.TestSiteContainers.java
@Test public void testSiteContainers() throws Exception { Sites sitesProxy = publicApiClient.sites(); List<SiteContainer> expectedSiteContainers = network1.getSiteContainers(site1.getSiteId(), person11); {/*from w w w . j a va 2s .co m*/ publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSiteContainers.size(), expectedSiteContainers.size()); ListResponse<SiteContainer> resp = sitesProxy.getSiteContainers(site1.getSiteId(), createParams(paging, null)); checkList(expectedSiteContainers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); skipCount = 2; maxItems = expectedSiteContainers.size(); paging = getPaging(skipCount, maxItems, expectedSiteContainers.size(), expectedSiteContainers.size()); resp = sitesProxy.getSiteContainers(site1.getSiteId(), createParams(paging, null)); checkList(expectedSiteContainers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); skipCount = 2; maxItems = expectedSiteContainers.size() + 2; paging = getPaging(skipCount, maxItems, expectedSiteContainers.size(), expectedSiteContainers.size()); resp = sitesProxy.getSiteContainers(site1.getSiteId(), createParams(paging, null)); checkList(expectedSiteContainers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); SiteContainer expectedSiteContainer = new SiteContainer(site1.getSiteId(), "test2", null); SiteContainer sc = sitesProxy.getSingleSiteContainer(site1.getSiteId(), "test2"); check(expectedSiteContainer, sc); } // site does not exist try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.getSingleSiteContainer("gfyuosfgsf8y7s", "documentLibrary"); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // container does not exist try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.getSingleSiteContainer(site1.getSiteId(), "container1"); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // site containers - site does not exist try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSiteContainers.size(), expectedSiteContainers.size()); sitesProxy.getSiteContainers(GUID.generate(), createParams(paging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // a user in the same network, not invited to the site { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12.getId())); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSiteContainers.size(), expectedSiteContainers.size()); ListResponse<SiteContainer> ret = sitesProxy.getSiteContainers(site1.getSiteId(), createParams(paging, null)); checkList(expectedSiteContainers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), ret); } // a user in a different network try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person21.getId())); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSiteContainers.size(), expectedSiteContainers.size()); sitesProxy.getSiteContainers(site1.getSiteId(), createParams(paging, null)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // TODO a user in the same network, invited to the site { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12.getId())); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSiteContainers.size(), expectedSiteContainers.size()); ListResponse<SiteContainer> ret = sitesProxy.getSiteContainers(site1.getSiteId(), createParams(paging, null)); checkList(expectedSiteContainers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), ret); } // person invited to site { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person13.getId())); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSiteContainers.size(), expectedSiteContainers.size()); ListResponse<SiteContainer> resp = sitesProxy.getSiteContainers(site1.getSiteId(), createParams(paging, null)); checkList(expectedSiteContainers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } // invalid methods try { sitesProxy.create("sites", site1.getSiteId(), "containers", null, null, "Unable to POST to site containers"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { sitesProxy.create("sites", site1.getSiteId(), "containers", "documentLibrary", null, "Unable to POST to a site container"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { sitesProxy.update("sites", site1.getSiteId(), "containers", null, null, "Unable to PUT site containers"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { sitesProxy.update("sites", site1.getSiteId(), "containers", "documentLibrary", null, "Unable to PUT a site container"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { sitesProxy.remove("sites", site1.getSiteId(), "containers", null, "Unable to DELETE site containers"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { sitesProxy.remove("sites", site1.getSiteId(), "containers", "documentLibrary", "Unable to DELETE a site container"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // 1481 // user in external network, list site containers }
From source file:org.alfresco.rest.api.tests.TestSiteMembers.java
@Test public void testSiteMembers() throws Exception { Iterator<TestNetwork> networksIt = getTestFixture().getNetworksIt(); final TestNetwork testNetwork = networksIt.next(); final List<String> networkPeople = testNetwork.getPersonIds(); String personId = networkPeople.get(0); Sites sitesProxy = publicApiClient.sites(); {/*w ww. j av a 2s . co m*/ final List<SiteMember> expectedSiteMembers = new ArrayList<SiteMember>(); // Create a private site and invite some users // TODO create site members using public api rather than directly using the services TestSite testSite = TenantUtil.runAsUserTenant(new TenantRunAsWork<TestSite>() { @Override public TestSite doWork() throws Exception { TestSite testSite = testNetwork.createSite(SiteVisibility.PRIVATE); for (int i = 1; i <= 5; i++) { String inviteeId = networkPeople.get(i); testSite.inviteToSite(inviteeId, SiteRole.SiteConsumer); SiteMember sm = new SiteMember(inviteeId, repoService.getPerson(inviteeId), testSite.getSiteId(), SiteRole.SiteConsumer.toString()); expectedSiteMembers.add(sm); } return testSite; } }, personId, testNetwork.getId()); { SiteMember sm = new SiteMember(personId, repoService.getPerson(personId), testSite.getSiteId(), SiteRole.SiteManager.toString()); expectedSiteMembers.add(sm); Collections.sort(expectedSiteMembers); } // Test Case cloud-1482 { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSiteMembers.size(), null); publicApiClient.setRequestContext(new RequestContext(testNetwork.getId(), personId)); ListResponse<SiteMember> siteMembers = sitesProxy.getSiteMembers(testSite.getSiteId(), createParams(paging, null)); checkList(expectedSiteMembers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), siteMembers); } { int skipCount = 2; int maxItems = 10; Paging paging = getPaging(skipCount, maxItems, expectedSiteMembers.size(), null); publicApiClient.setRequestContext(new RequestContext(testNetwork.getId(), personId)); ListResponse<SiteMember> siteMembers = sitesProxy.getSiteMembers(testSite.getSiteId(), createParams(paging, null)); checkList(expectedSiteMembers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), siteMembers); HttpResponse response = sitesProxy.getAll("sites", testSite.getSiteId(), "members", null, createParams(paging, Collections.singletonMap("includeSource", "true")), "Failed to get all site members"); checkList(expectedSiteMembers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), SiteMember.parseSiteMembers(testSite.getSiteId(), response.getJsonResponse())); JSONObject source = sitesProxy.parseListSource(response.getJsonResponse()); Site sourceSite = SiteImpl.parseSite(source); assertNotNull(sourceSite); testSite.expected(sourceSite); } // invalid site id try { int skipCount = 2; int maxItems = 10; Paging paging = getPaging(skipCount, maxItems, expectedSiteMembers.size(), null); publicApiClient.setRequestContext(new RequestContext(testNetwork.getId(), personId)); sitesProxy.getSiteMembers(GUID.generate(), createParams(paging, null)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // invalid methods try { SiteMember siteMember = expectedSiteMembers.get(0); publicApiClient.setRequestContext(new RequestContext(testNetwork.getId(), personId)); sitesProxy.update("sites", testSite.getSiteId(), "members", null, siteMember.toJSON().toString(), "Unable to PUT site members"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // Test Case cloud-1965 try { SiteMember siteMember1 = expectedSiteMembers.get(0); publicApiClient.setRequestContext(new RequestContext(testNetwork.getId(), personId)); sitesProxy.create("sites", testSite.getSiteId(), "members", siteMember1.getMemberId(), siteMember1.toJSON().toString(), "Unable to POST to a site member"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { SiteMember siteMember1 = expectedSiteMembers.get(0); publicApiClient.setRequestContext(new RequestContext(testNetwork.getId(), personId)); sitesProxy.update("sites", testSite.getSiteId(), "members", null, siteMember1.toJSON().toString(), "Unable to PUT site members"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(testNetwork.getId(), personId)); sitesProxy.remove("sites", testSite.getSiteId(), "members", null, "Unable to DELETE site members"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // update site member { SiteMember siteMember1 = expectedSiteMembers.get(0); publicApiClient.setRequestContext(new RequestContext(testNetwork.getId(), personId)); SiteMember ret = sitesProxy.updateSiteMember(testSite.getSiteId(), siteMember1); assertEquals(siteMember1.getRole(), ret.getRole()); Person expectedSiteMember = repoService.getPerson(siteMember1.getMemberId()); expectedSiteMember.expected(ret.getMember()); } // GET single site member { SiteMember siteMember1 = expectedSiteMembers.get(0); publicApiClient.setRequestContext(new RequestContext(testNetwork.getId(), personId)); SiteMember ret = sitesProxy.getSingleSiteMember(testSite.getSiteId(), siteMember1.getMemberId()); siteMember1.expected(ret); } } // test: user is member of different tenant, but has site membership(s) in common with the http request user { Iterator<TestNetwork> accountsIt = getTestFixture().getNetworksIt(); assertTrue(accountsIt.hasNext()); final TestNetwork network1 = accountsIt.next(); assertTrue(accountsIt.hasNext()); final TestNetwork network2 = accountsIt.next(); final List<TestPerson> people = new ArrayList<TestPerson>(); // Create users TenantUtil.runAsSystemTenant(new TenantRunAsWork<Void>() { @Override public Void doWork() throws Exception { TestPerson person = network1.createUser(); people.add(person); person = network1.createUser(); people.add(person); person = network1.createUser(); people.add(person); return null; } }, network1.getId()); TenantUtil.runAsSystemTenant(new TenantRunAsWork<Void>() { @Override public Void doWork() throws Exception { TestPerson person = network2.createUser(); people.add(person); return null; } }, network2.getId()); final TestPerson person1 = people.get(0); final TestPerson person2 = people.get(1); final TestPerson person3 = people.get(2); final TestPerson person4 = people.get(3); // Create site final TestSite site = TenantUtil.runAsUserTenant(new TenantRunAsWork<TestSite>() { @Override public TestSite doWork() throws Exception { TestSite site = network1.createSite(SiteVisibility.PUBLIC); return site; } }, person2.getId(), network1.getId()); // invalid role - 400 try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.createSiteMember(site.getSiteId(), new SiteMember(person1.getId(), "dodgyRole")); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } // user in network but not site member, try to create site member try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); sitesProxy.createSiteMember(site.getSiteId(), new SiteMember(person3.getId(), SiteRole.SiteContributor.toString())); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_FORBIDDEN, e.getHttpResponse().getStatusCode()); } // unknown invitee - 404 try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.createSiteMember(site.getSiteId(), new SiteMember("dodgyUser", SiteRole.SiteContributor.toString())); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // unknown site - 404 try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.createSiteMember("dodgySite", new SiteMember(person1.getId(), SiteRole.SiteContributor.toString())); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // inviter is not a member of the site try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); sitesProxy.createSiteMember(site.getSiteId(), new SiteMember(person1.getId(), SiteRole.SiteContributor.toString())); fail(""); } catch (PublicApiException e) { assertEquals(e.getMessage(), HttpStatus.SC_FORBIDDEN, e.getHttpResponse().getStatusCode()); } // inviter is not a member of the site nor a member of the tenant try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person4.getId())); sitesProxy.createSiteMember(site.getSiteId(), new SiteMember(person1.getId(), SiteRole.SiteContributor.toString())); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); // TODO check that 404 is correct here - external user of network can't see public site?? } { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); SiteMember sm = new SiteMember(person1.getId(), SiteRole.SiteConsumer.toString()); SiteMember siteMember = sitesProxy.createSiteMember(site.getSiteId(), sm); assertEquals(person1.getId(), siteMember.getMemberId()); assertEquals(SiteRole.SiteConsumer.toString(), siteMember.getRole()); } // already invited try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.createSiteMember(site.getSiteId(), new SiteMember(person1.getId(), SiteRole.SiteContributor.toString())); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_CONFLICT, e.getHttpResponse().getStatusCode()); } // inviter is consumer member of the site, should not be able to add site member try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); sitesProxy.createSiteMember(site.getSiteId(), new SiteMember(person4.getId(), SiteRole.SiteContributor.toString())); fail(""); } catch (PublicApiException e) { assertEquals(e.getMessage(), HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // invitee from another network try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); sitesProxy.createSiteMember(site.getSiteId(), new SiteMember(person4.getId(), SiteRole.SiteContributor.toString())); fail(""); } catch (PublicApiException e) { assertEquals(e.getMessage(), HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // check site membership in GET List<SiteMember> expectedSiteMembers = site.getMembers(); { int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedSiteMembers.size(), null); ListResponse<SiteMember> siteMembers = sitesProxy.getSiteMembers(site.getSiteId(), createParams(paging, null)); checkList(expectedSiteMembers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), siteMembers); } } // test: create site membership, remove it, get list of site memberships { Iterator<TestNetwork> accountsIt = getTestFixture().getNetworksIt(); assertTrue(accountsIt.hasNext()); final TestNetwork network1 = accountsIt.next(); assertTrue(accountsIt.hasNext()); final List<TestPerson> people = new ArrayList<TestPerson>(); // Create user TenantUtil.runAsSystemTenant(new TenantRunAsWork<Void>() { @Override public Void doWork() throws Exception { TestPerson person = network1.createUser(); people.add(person); person = network1.createUser(); people.add(person); return null; } }, network1.getId()); TestPerson person1 = people.get(0); TestPerson person2 = people.get(1); // Create site TestSite site = TenantUtil.runAsUserTenant(new TenantRunAsWork<TestSite>() { @Override public TestSite doWork() throws Exception { TestSite site = network1.createSite(SiteVisibility.PRIVATE); return site; } }, person2.getId(), network1.getId()); // remove site membership // for -me- user (PUBLICAPI-90) { // create a site member publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); SiteMember siteMember = sitesProxy.createSiteMember(site.getSiteId(), new SiteMember(person1.getId(), SiteRole.SiteContributor.toString())); assertEquals(person1.getId(), siteMember.getMemberId()); assertEquals(SiteRole.SiteContributor.toString(), siteMember.getRole()); SiteMember toRemove = new SiteMember("-me-"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); sitesProxy.removeSiteMember(site.getSiteId(), toRemove); } { // create a site member publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); SiteMember siteMember = sitesProxy.createSiteMember(site.getSiteId(), new SiteMember(person1.getId(), SiteRole.SiteContributor.toString())); assertEquals(person1.getId(), siteMember.getMemberId()); assertEquals(SiteRole.SiteContributor.toString(), siteMember.getRole()); // unknown site try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.removeSiteMember(GUID.generate(), siteMember); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // unknown user try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.removeSiteMember(site.getSiteId(), new SiteMember(GUID.generate())); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.removeSiteMember(site.getSiteId(), siteMember); } // check site membership in GET List<SiteMember> expectedSiteMembers = site.getMembers(); assertFalse(expectedSiteMembers.contains(siteMember)); { int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedSiteMembers.size(), null); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); ListResponse<SiteMember> siteMembers = sitesProxy.getSiteMembers(site.getSiteId(), createParams(paging, null)); checkList( expectedSiteMembers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), siteMembers); } // update site membership // unknown site try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.updateSiteMember(GUID.generate(), siteMember); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // unknown user try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.updateSiteMember(site.getSiteId(), new SiteMember(GUID.generate())); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // invalid role try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.updateSiteMember(site.getSiteId(), new SiteMember(person1.getId(), "invalidRole")); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } // user is not a member of the site - 400 try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.updateSiteMember(site.getSiteId(), new SiteMember(person1.getId(), SiteRole.SiteContributor.toString())); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } // successful update { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); SiteMember sm = new SiteMember(person1.getId(), SiteRole.SiteContributor.toString()); SiteMember ret = sitesProxy.createSiteMember(site.getSiteId(), sm); assertEquals(SiteRole.SiteContributor.toString(), ret.getRole()); person1.expected(ret.getMember()); sm = new SiteMember(person1.getId(), SiteRole.SiteCollaborator.toString()); ret = sitesProxy.updateSiteMember(site.getSiteId(), sm); assertEquals(SiteRole.SiteCollaborator.toString(), ret.getRole()); person1.expected(ret.getMember()); // check site membership in GET expectedSiteMembers = site.getMembers(); SiteMember toCheck = null; for (SiteMember sm1 : expectedSiteMembers) { if (sm1.getMemberId().equals(person1.getId())) { toCheck = sm1; } } assertNotNull(toCheck); // check that the update site membership is present assertEquals(sm.getRole(), toCheck.getRole()); // check that the role is correct int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedSiteMembers.size(), null); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); ListResponse<SiteMember> siteMembers = sitesProxy.getSiteMembers(site.getSiteId(), createParams(paging, null)); checkList( expectedSiteMembers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), siteMembers); } } } }
From source file:org.alfresco.rest.api.tests.TestSiteMembershipRequests.java
@Test public void testInvalidRequests() throws Exception { {//from www . j av a 2 s .c o m try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12Id)); // unknown invitee SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(person1ModeratedSites.get(0).getSiteId()); siteMembershipRequest.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.createSiteMembershipRequest(GUID.generate(), siteMembershipRequest); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12Id)); // unknown siteId SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(GUID.generate()); siteMembershipRequest.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.createSiteMembershipRequest(person11Id, siteMembershipRequest); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12Id)); // create site membership for another user SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(person1ModeratedSites.get(0).getSiteId()); siteMembershipRequest.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.createSiteMembershipRequest(person11Id, siteMembershipRequest); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // cloud-2506 // get requests for another user try { log("cloud-2506"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11Id)); // get site membership requests for another user int skipCount = 0; int maxItems = 4; Paging paging = getPaging(skipCount, maxItems); siteMembershipRequestsProxy.getSiteMembershipRequests(person12Id, createParams(paging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // get site membership requests for unknown user try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11Id)); int skipCount = 0; int maxItems = 4; Paging paging = getPaging(skipCount, maxItems); siteMembershipRequestsProxy.getSiteMembershipRequests(GUID.generate(), createParams(paging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // DELETEs { { // cloud-2524 // runAs user != target user log("cloud-2524"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person14Id)); // create moderated site invitation to delete SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(person1ModeratedSites.get(0).getSiteId()); siteMembershipRequest.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.createSiteMembershipRequest(person14Id, siteMembershipRequest); SiteMembershipRequest request = getSiteMembershipRequest(network1.getId(), person14Id, person14Id); // user from another network try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person24Id)); siteMembershipRequestsProxy.cancelSiteMembershipRequest(person14Id, request.getId()); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // cloud-2525 // unknown personId try { log("cloud-2525"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person14Id)); siteMembershipRequestsProxy.cancelSiteMembershipRequest(GUID.generate(), request.getId()); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } } // cloud-2526 // cloud-2527 // unknown siteId try { log("cloud-2526"); log("cloud-2527"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person14Id)); SiteMembershipRequest request = new SiteMembershipRequest(); request.setId(GUID.generate()); siteMembershipRequestsProxy.cancelSiteMembershipRequest(person14Id, request.getId()); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // unknown request id try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person14Id)); siteMembershipRequestsProxy.cancelSiteMembershipRequest(person14Id, GUID.generate()); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } } // PUTs // cloud-2519 - PUT to site membership requests try { log("cloud-2519"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11Id)); SiteMembershipRequest request = new SiteMembershipRequest(); request.setId(GUID.generate()); request.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.update("people", person11Id, "favorites", null, request.toJSON().toString(), "Unable to PUT site membership requests"); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // cloud-2520 - unknown request/site id try { log("cloud-2516"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11Id)); SiteMembershipRequest request = new SiteMembershipRequest(); request.setId(GUID.generate()); request.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.updateSiteMembershipRequest(person11Id, request); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } } }
From source file:org.alfresco.rest.api.tests.TestSiteMembershipRequests.java
@Test public void testValidRequests() throws Exception { final List<SiteMembershipRequest> expectedSiteMembershipRequests = new ArrayList<SiteMembershipRequest>(); {/* w ww . j a v a 2s . c om*/ // GET // cloud-2531 // user has no site membership requests { log("cloud-2531"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11Id)); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSiteMembershipRequests.size(), expectedSiteMembershipRequests.size()); ListResponse<SiteMembershipRequest> resp = siteMembershipRequestsProxy .getSiteMembershipRequests(person11Id, createParams(paging, null)); checkList( expectedSiteMembershipRequests.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11Id)); int skipCount = 0; Paging paging = getPaging(skipCount, null, expectedSiteMembershipRequests.size(), expectedSiteMembershipRequests.size()); ListResponse<SiteMembershipRequest> resp = siteMembershipRequestsProxy .getSiteMembershipRequests(person11Id, createParams(paging, null)); checkList( expectedSiteMembershipRequests.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } // POSTs // cloud-2502 // cloud-2510 { log("cloud-2502"); log("cloud-2510"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11Id)); // moderated site SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(person1ModeratedSites.get(0).getSiteId()); siteMembershipRequest.setMessage("Please can I join your site?"); final SiteMembershipRequest moderatedSiteResponse = siteMembershipRequestsProxy .createSiteMembershipRequest("-me-", siteMembershipRequest); expectedSiteMembershipRequests.add(moderatedSiteResponse); siteMembershipRequest.expected(moderatedSiteResponse); // public site siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(person1PublicSites.get(0).getSiteId()); siteMembershipRequest.setMessage("Please can I join your site?"); SiteMembershipRequest ret = siteMembershipRequestsProxy.createSiteMembershipRequest(person11Id, siteMembershipRequest); siteMembershipRequest.expected(ret); // test we have a moderated site request only // cloud-2532 { log("cloud-2532"); int skipCount = 0; int maxItems = 4; Paging paging = getPaging(skipCount, maxItems, expectedSiteMembershipRequests.size(), expectedSiteMembershipRequests.size()); ListResponse<SiteMembershipRequest> resp = siteMembershipRequestsProxy .getSiteMembershipRequests(person11Id, createParams(paging, null)); checkList(expectedSiteMembershipRequests, paging.getExpectedPaging(), resp); } // test against the underlying invitation service List<Invitation> invitations = repoService.getModeratedSiteInvitations(network1.getId(), person11Id, person11Id, null); assertEquals(1, invitations.size()); Invitation invitation = invitations.get(0); assertTrue(invitation instanceof ModeratedInvitation); ModeratedInvitation moderatedInvitation = (ModeratedInvitation) invitation; String siteId = moderatedInvitation.getResourceName(); Invitation.InvitationType invitationType = moderatedInvitation.getInvitationType(); Invitation.ResourceType resourceType = moderatedInvitation.getResourceType(); String inviteeId = moderatedInvitation.getInviteeUserName(); assertEquals(person11Id, inviteeId); assertEquals(Invitation.ResourceType.WEB_SITE, resourceType); assertEquals(Invitation.InvitationType.MODERATED, invitationType); assertEquals(person1ModeratedSites.get(0).getSiteId(), siteId); // test that personId is a member of the public site assertTrue(person1PublicSites.get(0).isMember(person11Id)); // cloud-2534 // approve the moderated site invitation and check that it is gone from the list { log("cloud-2534"); TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>() { @Override public Void doWork() throws Exception { repoService.approveSiteInvitation(person11Id, moderatedSiteResponse.getId()); expectedSiteMembershipRequests.remove(0); return null; } }, person12Id, network1.getId()); // make sure the outstanding request has gone int skipCount = 0; int maxItems = 4; Paging paging = getPaging(skipCount, maxItems, expectedSiteMembershipRequests.size(), expectedSiteMembershipRequests.size()); ListResponse<SiteMembershipRequest> resp = siteMembershipRequestsProxy .getSiteMembershipRequests(person11Id, createParams(paging, null)); checkList(expectedSiteMembershipRequests, paging.getExpectedPaging(), resp); } } // user from another network - un-authorised try { log("cloud-2511"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person24Id)); // moderated site SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(person1ModeratedSites.get(0).getSiteId()); siteMembershipRequest.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.createSiteMembershipRequest(person24Id, siteMembershipRequest); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // cloud-2512 // cloud-2535 // invitee from another network { log("cloud-2512"); log("cloud-2535"); log("cloud-2536"); final List<SiteMembershipRequest> person4ExpectedSiteMembershipRequests = new ArrayList<SiteMembershipRequest>(); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person24Id)); { // public site try { SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(person1PublicSites.get(0).getSiteId()); siteMembershipRequest.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.createSiteMembershipRequest(person24Id, siteMembershipRequest); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } } { // moderated site try { SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(person1ModeratedSites.get(0).getSiteId()); siteMembershipRequest.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.createSiteMembershipRequest(person24Id, siteMembershipRequest); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } try { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSiteMembershipRequests.size(), expectedSiteMembershipRequests.size()); siteMembershipRequestsProxy.getSiteMembershipRequests(person24Id, createParams(paging, null)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } } { // private site try { SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(person1PrivateSites.get(0).getSiteId()); siteMembershipRequest.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.createSiteMembershipRequest(person24Id, siteMembershipRequest); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } try { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSiteMembershipRequests.size(), expectedSiteMembershipRequests.size()); siteMembershipRequestsProxy.getSiteMembershipRequests(person24Id, createParams(paging, null)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } } } // cloud-2513 try { log("cloud-2513"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11Id)); // unknown site SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(GUID.generate()); siteMembershipRequest.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.createSiteMembershipRequest(person11Id, siteMembershipRequest); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11Id)); // private site SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(person1PrivateSites.get(0).getSiteId()); siteMembershipRequest.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.createSiteMembershipRequest(person11Id, siteMembershipRequest); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11Id)); // moderated site in another network SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(person4ModeratedSites.get(0).getSiteId()); siteMembershipRequest.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.createSiteMembershipRequest(person11Id, siteMembershipRequest); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // cloud-2514 try { log("cloud-2514"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11Id)); // already joined the site SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(person1ModeratedSites.get(0).getSiteId()); siteMembershipRequest.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.createSiteMembershipRequest(person11Id, siteMembershipRequest); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11Id)); // already requested to join the site but not yet joined SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(person1ModeratedSites.get(0).getSiteId()); siteMembershipRequest.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.createSiteMembershipRequest(person11Id, siteMembershipRequest); siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(person1ModeratedSites.get(0).getSiteId()); siteMembershipRequest.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.createSiteMembershipRequest(person11Id, siteMembershipRequest); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } // cloud-2538 // blank message { log("cloud-2538"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11Id)); SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(person1ModeratedSites.get(1).getSiteId()); siteMembershipRequest.setMessage(""); SiteMembershipRequest ret = siteMembershipRequestsProxy.createSiteMembershipRequest(person11Id, siteMembershipRequest); expectedSiteMembershipRequests.add(ret); } // GETs // cloud-2501 // cloud-2509 // test paging { log("cloud-2501"); log("cloud-2509"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11Id)); // add some more site membership requests to moderated sites for (int i = 1; i < person1ModeratedSites.size(); i++) { SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(person1ModeratedSites.get(i).getSiteId()); siteMembershipRequest.setMessage("Please can I join your site?"); try { SiteMembershipRequest ret = siteMembershipRequestsProxy .createSiteMembershipRequest(person11Id, siteMembershipRequest); expectedSiteMembershipRequests.add(ret); siteMembershipRequest.expected(ret); } catch (PublicApiException e) { // this is ok, already created } } Collections.sort(expectedSiteMembershipRequests); { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSiteMembershipRequests.size(), expectedSiteMembershipRequests.size()); ListResponse<SiteMembershipRequest> resp = siteMembershipRequestsProxy .getSiteMembershipRequests(person11Id, createParams(paging, null)); checkList( expectedSiteMembershipRequests.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); skipCount = 2; maxItems = 5; paging = getPaging(skipCount, maxItems, expectedSiteMembershipRequests.size(), expectedSiteMembershipRequests.size()); resp = siteMembershipRequestsProxy.getSiteMembershipRequests(person11Id, createParams(paging, null)); checkList( expectedSiteMembershipRequests.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); skipCount = 5; maxItems = 10; paging = getPaging(skipCount, maxItems, expectedSiteMembershipRequests.size(), expectedSiteMembershipRequests.size()); resp = siteMembershipRequestsProxy.getSiteMembershipRequests(person11Id, createParams(paging, null)); checkList( expectedSiteMembershipRequests.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); skipCount = 0; maxItems = expectedSiteMembershipRequests.size(); paging = getPaging(skipCount, maxItems, expectedSiteMembershipRequests.size(), expectedSiteMembershipRequests.size()); resp = siteMembershipRequestsProxy.getSiteMembershipRequests(person11Id, createParams(paging, null)); checkList( expectedSiteMembershipRequests.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } // skipCount is greater than the number of site membership requests in the list { int skipCount = 1000; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSiteMembershipRequests.size(), expectedSiteMembershipRequests.size()); ListResponse<SiteMembershipRequest> resp = siteMembershipRequestsProxy .getSiteMembershipRequests(person11Id, createParams(paging, null)); checkList( sublist(expectedSiteMembershipRequests, skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } // cloud-2537 // -me- user { log("cloud-2537"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11Id)); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSiteMembershipRequests.size(), expectedSiteMembershipRequests.size()); ListResponse<SiteMembershipRequest> resp = siteMembershipRequestsProxy .getSiteMembershipRequests("-me-", createParams(paging, null)); checkList( expectedSiteMembershipRequests.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } } // DELETEs // cloud-2504 { log("cloud-2504"); SiteMembershipRequest request = getSiteMembershipRequest(network1.getId(), person11Id, person11Id); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11Id)); siteMembershipRequestsProxy.cancelSiteMembershipRequest(person11Id, request.getId()); expectedSiteMembershipRequests.remove(request); Collections.sort(expectedSiteMembershipRequests); // cloud-2533 // check that the site membership request has gone log("cloud-2533"); int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedSiteMembershipRequests.size(), expectedSiteMembershipRequests.size()); ListResponse<SiteMembershipRequest> resp = siteMembershipRequestsProxy .getSiteMembershipRequests(person11Id, createParams(paging, null)); checkList(expectedSiteMembershipRequests, paging.getExpectedPaging(), resp); // cloud-2528 // try to cancel the same request try { log("cloud-2528"); siteMembershipRequestsProxy.cancelSiteMembershipRequest(person11Id, request.getId()); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } } // cloud-2529 // cancel a site membership request that has been rejected { log("cloud-2529"); final String siteId = person1ModeratedSites.get(1).getSiteId(); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person14Id)); SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(siteId); siteMembershipRequest.setMessage("Please can I join your site?"); SiteMembershipRequest moderatedSiteResponse = siteMembershipRequestsProxy .createSiteMembershipRequest(person14Id, siteMembershipRequest); expectedSiteMembershipRequests.add(moderatedSiteResponse); Collections.sort(expectedSiteMembershipRequests); siteMembershipRequest.expected(moderatedSiteResponse); TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>() { @Override public Void doWork() throws Exception { Invitation invitation = repoService.rejectSiteInvitation(person14Id, siteId); assertNotNull(invitation); return null; } }, person12Id, network1.getId()); // try to cancel the request try { siteMembershipRequestsProxy.cancelSiteMembershipRequest(person14Id, siteId); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } } // cloud-2530 // cancel a site membership request that has been approved { log("cloud-2530"); final String siteId = person1ModeratedSites.get(2).getSiteId(); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person14Id)); SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(siteId); siteMembershipRequest.setMessage("Please can I join your site?"); SiteMembershipRequest moderatedSiteResponse = siteMembershipRequestsProxy .createSiteMembershipRequest(person14Id, siteMembershipRequest); expectedSiteMembershipRequests.add(moderatedSiteResponse); Collections.sort(expectedSiteMembershipRequests); siteMembershipRequest.expected(moderatedSiteResponse); TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>() { @Override public Void doWork() throws Exception { Invitation invitation = repoService.approveSiteInvitation(person14Id, siteId); assertNotNull(invitation); return null; } }, person12Id, network1.getId()); // try to cancel the request try { siteMembershipRequestsProxy.cancelSiteMembershipRequest(person14Id, siteId); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } } // PUTs // cloud-2503 // cloud-2517 // cloud-2518 { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person14Id)); // merged these tests // cloud-2503: use -me- pseudo user // cloud-2517: initially no message log("cloud-2503"); log("cloud-2517"); // create a request without a message String siteId = person1ModeratedSites.get(7).getSiteId(); SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(siteId); SiteMembershipRequest request = siteMembershipRequestsProxy.createSiteMembershipRequest(person14Id, siteMembershipRequest); assertNotNull(request); // update it, with a message request.setMessage("Please can I join your site?"); SiteMembershipRequest updated = siteMembershipRequestsProxy.updateSiteMembershipRequest(person14Id, request); request.expected(updated); // check it's updated int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSiteMembershipRequests.size(), expectedSiteMembershipRequests.size()); ListResponse<SiteMembershipRequest> resp = siteMembershipRequestsProxy .getSiteMembershipRequests(person14Id, createParams(paging, null)); List<SiteMembershipRequest> requests = resp.getList(); assertTrue(requests.size() > 0); int idx = requests.indexOf(request); SiteMembershipRequest toCheck = requests.get(idx); updated.expected(toCheck); // cloud-2518 // update it again, with ammended message log("cloud-2518"); request.setMessage("Please can I join your site, pretty please?"); updated = siteMembershipRequestsProxy.updateSiteMembershipRequest(person14Id, request); request.expected(updated); // check it's updated skipCount = 0; maxItems = 2; paging = getPaging(skipCount, maxItems, expectedSiteMembershipRequests.size(), expectedSiteMembershipRequests.size()); resp = siteMembershipRequestsProxy.getSiteMembershipRequests(person14Id, createParams(paging, null)); requests = resp.getList(); assertTrue(requests.size() > 0); idx = requests.indexOf(request); toCheck = requests.get(idx); updated.expected(toCheck); } // cloud-2515 - no changes { log("cloud-2515"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person14Id)); // create a request String siteId = person1ModeratedSites.get(8).getSiteId(); SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(siteId); siteMembershipRequest.setMessage("Please can I join your site?"); SiteMembershipRequest request = siteMembershipRequestsProxy.createSiteMembershipRequest(person14Id, siteMembershipRequest); assertNotNull(request); // update it, with no changes SiteMembershipRequest updated = siteMembershipRequestsProxy.updateSiteMembershipRequest(person14Id, request); request.expected(updated); // should not have changed } // cloud-2516 - unknown person id try { log("cloud-2516"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11Id)); // get an outstanding request int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSiteMembershipRequests.size(), expectedSiteMembershipRequests.size()); ListResponse<SiteMembershipRequest> resp = siteMembershipRequestsProxy .getSiteMembershipRequests(person11Id, createParams(paging, null)); List<SiteMembershipRequest> requests = resp.getList(); assertTrue(requests.size() > 0); SiteMembershipRequest request = requests.get(0); siteMembershipRequestsProxy.updateSiteMembershipRequest(GUID.generate(), request); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // cloud-2521 - unknown site membership request try { log("cloud-2521"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11Id)); SiteMembershipRequest request = new SiteMembershipRequest(); request.setId(GUID.generate()); siteMembershipRequestsProxy.updateSiteMembershipRequest(person11Id, request); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // cloud-2522 // update a site membership request that has been rejected { log("cloud-2522"); String siteId = person1ModeratedSites.get(5).getSiteId(); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person14Id)); SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(siteId); siteMembershipRequest.setMessage("Please can I join your site?"); SiteMembershipRequest moderatedSiteResponse = siteMembershipRequestsProxy .createSiteMembershipRequest(person14Id, siteMembershipRequest); expectedSiteMembershipRequests.add(moderatedSiteResponse); Collections.sort(expectedSiteMembershipRequests); siteMembershipRequest.expected(moderatedSiteResponse); repoService.rejectSiteInvitation(person14Id, siteId); // try to update the request try { siteMembershipRequestsProxy.updateSiteMembershipRequest(siteId, moderatedSiteResponse); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } } // cloud-2523 // update a site membership request that has been approved { log("cloud-2523"); String siteId = person1ModeratedSites.get(6).getSiteId(); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person14Id)); SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(siteId); siteMembershipRequest.setMessage("Please can I join your site?"); SiteMembershipRequest moderatedSiteResponse = siteMembershipRequestsProxy .createSiteMembershipRequest(person14Id, siteMembershipRequest); expectedSiteMembershipRequests.add(moderatedSiteResponse); Collections.sort(expectedSiteMembershipRequests); siteMembershipRequest.expected(moderatedSiteResponse); repoService.approveSiteInvitation(person14Id, siteId); // try to update the request try { siteMembershipRequestsProxy.updateSiteMembershipRequest(siteId, moderatedSiteResponse); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } } { // cloud-2539 - probing attack tests log("cloud-2539"); // i) create site membership request to a moderated site // ii) site owner changes the site to a private site // iii) re-issue create site membership request should be a 404 { final List<SiteMembershipRequest> person2ExpectedSiteMembershipRequests = new ArrayList<SiteMembershipRequest>(); final TestSite site = person1ModeratedSites.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person13Id)); SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(site.getSiteId()); siteMembershipRequest.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.createSiteMembershipRequest(person13Id, siteMembershipRequest); TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>() { @Override public Void doWork() throws Exception { site.setSiteVisibility(SiteVisibility.PRIVATE); return null; } }, person12Id, network1.getId()); // Can we still GET it? Should be a 404 (private site) try { siteMembershipRequestsProxy.getSiteMembershipRequest(person13Id, siteMembershipRequest.getId()); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // GET should not contain the site { int skipCount = 0; int maxItems = 10; assertEquals(0, person2ExpectedSiteMembershipRequests.size()); Paging paging = getPaging(skipCount, maxItems, person2ExpectedSiteMembershipRequests.size(), person2ExpectedSiteMembershipRequests.size()); ListResponse<SiteMembershipRequest> resp = siteMembershipRequestsProxy .getSiteMembershipRequests(person13Id, createParams(paging, null)); checkList( sublist(person2ExpectedSiteMembershipRequests, skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } try { siteMembershipRequestsProxy.createSiteMembershipRequest(person13Id, siteMembershipRequest); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } } // i) create site membership request to a public site // ii) site owner changes the site to a private site // iii) re-issue create site membership request should be a 404 { final TestSite site = person1PublicSites.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person13Id)); SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(site.getSiteId()); siteMembershipRequest.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.createSiteMembershipRequest(person13Id, siteMembershipRequest); TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>() { @Override public Void doWork() throws Exception { site.setSiteVisibility(SiteVisibility.PRIVATE); return null; } }, person12Id, network1.getId()); try { siteMembershipRequestsProxy.createSiteMembershipRequest(person13Id, siteMembershipRequest); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } try { siteMembershipRequestsProxy.updateSiteMembershipRequest(person13Id, siteMembershipRequest); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } try { siteMembershipRequestsProxy.cancelSiteMembershipRequest(person13Id, siteMembershipRequest.getId()); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } } } // i) create site membership request to a moderated site // ii) site owner accepts the request -> user is now a member of the site // iii) site owner changes the site to a private site // iv) re-issue create site membership request should be a 404 { final TestSite site = person1ModeratedSites.get(1); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person13Id)); SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(site.getSiteId()); siteMembershipRequest.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.createSiteMembershipRequest(person13Id, siteMembershipRequest); // approve the site invitation request and convert the site to a private site TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>() { @Override public Void doWork() throws Exception { repoService.approveSiteInvitation(person13Id, site.getSiteId()); site.setSiteVisibility(SiteVisibility.PRIVATE); return null; } }, person12Id, network1.getId()); try { siteMembershipRequestsProxy.createSiteMembershipRequest(person13Id, siteMembershipRequest); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } } // blank message in POST and PUT { final TestSite site = person1ModeratedSites.get(2); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person13Id)); SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(site.getSiteId()); siteMembershipRequest.setMessage(""); SiteMembershipRequest created = siteMembershipRequestsProxy.createSiteMembershipRequest(person13Id, siteMembershipRequest); SiteMembershipRequest updated = siteMembershipRequestsProxy.updateSiteMembershipRequest(person13Id, siteMembershipRequest); assertTrue(updated.getModifiedAt().after(created.getCreatedAt())); } } }