List of usage examples for org.apache.commons.httpclient HttpStatus SC_UNAUTHORIZED
int SC_UNAUTHORIZED
To view the source code for org.apache.commons.httpclient HttpStatus SC_UNAUTHORIZED.
Click Source Link
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);//from w w w. j a v a2s .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 av a2 s. c o 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(); {//from ww w . j a v a 2s . c om 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 { {// w w w . j a v a 2s . com 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>(); {/*from ww w .ja v a 2 s.c o m*/ // 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())); } } }
From source file:org.alfresco.rest.api.tests.TestTags.java
@Test public void testTags() throws Exception { Iterator<TestNetwork> networksIt = getTestFixture().getNetworksIt(); assertTrue(networksIt.hasNext());// w w w. j a v a2 s . c om final TestNetwork network1 = networksIt.next(); assertTrue(networksIt.hasNext()); final TestNetwork network2 = networksIt.next(); final List<TestPerson> people = new ArrayList<TestPerson>(3); // create users and some preferences 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 person1 = people.get(0); final TestPerson person2 = people.get(1); final TestPerson person3 = 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", "Test Content"); nodes.add(nodeRef); nodeRef = repoService.createDocument(site.getContainerNodeRef("documentLibrary"), "Test Doc 1", "Test Content 1"); nodes.add(nodeRef); return null; } }, person1.getId(), network1.getId()); final NodeRef nodeRef1 = nodes.get(0); final NodeRef nodeRef2 = nodes.get(1); Nodes nodesProxy = publicApiClient.nodes(); Comments commentsProxy = publicApiClient.comments(); Tags tagsProxy = publicApiClient.tags(); final List<Tag> tags = new ArrayList<Tag>(); tags.add(new Tag("tag 1")); tags.add(new Tag("tag 9")); tags.add(new Tag("other tag 3")); tags.add(new Tag("my tag 1")); tags.add(new Tag("tag 5")); // try to add a tag to a comment try { Comment comment = new Comment("Test Comment", "Test Comment"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); Comment newComment = commentsProxy.createNodeComment(nodeRef1.getId(), comment); Tag tag = new Tag("testTag"); nodesProxy.createNodeTag(newComment.getId(), tag); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // try to add a tag to a tag try { Tag tag = new Tag("testTag"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); Tag newTag = nodesProxy.createNodeTag(nodeRef1.getId(), tag); nodesProxy.createNodeTag(newTag.getId(), tag); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // Test Case cloud-2221 // Test Case cloud-2222 // multi-byte characters, special characters, create and update tags { Tag[] multiByteTags = new Tag[] { new Tag("\u67e5\u770b\u5168\u90e8"), new Tag("\u67e5\u770b\u5168\u91e8"), new Tag("%^&%&$^@") }; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); // first, create tags Map<String, Tag> createdTags = new HashMap<String, Tag>(); for (Tag tag : multiByteTags) { Tag ret = nodesProxy.createNodeTag(nodeRef2.getId(), tag); createdTags.put(ret.getId(), ret); } int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems); ListResponse<Tag> resp = nodesProxy.getNodeTags(nodeRef2.getId(), createParams(paging, null)); List<Tag> retTags = resp.getList(); assertEquals(createdTags.size(), retTags.size()); for (Tag tag : retTags) { String tagId = tag.getId(); Tag expectedTag = createdTags.get(tagId); expectedTag.expected(tag); } // special characters and update tags // { // Tag[] specialCharacterTags = new Tag[] // { // new Tag("\u67e5\u770b\u5168\u90e8"), // new Tag("\u67e5\u770b\u5168\u91e8") // }; // // createdTags = new HashMap<String, Tag>(); // for(Tag tag : specialCharacterTags) // { // Tag ret = nodesProxy.createNodeTag(nodeRef2.getId(), tag); // createdTags.put(ret.getId(), ret); // } // // // Tag tag = new Tag("%^&%&$^@"); // Tag ret = nodesProxy.createNodeTag(nodeRef2.getId(), tag); // createdTags.put(ret.getId(), ret); // } // update tags try { // update with an empty tag i.e. "" -> bad request Tag tag = new Tag(""); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.createNodeTag(nodeRef2.getId(), tag); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } List<Tag> tagUpdates = new ArrayList<Tag>(createdTags.values()); tagUpdates.get(0).setTag("\u4e00\u4e01\u4e02\u4e10"); tagUpdates.get(1).setTag("\u4e00\u4e01\u4e12\u4e11"); tagUpdates.get(2).setTag("\u4e00\u4e01\u4e12\u4e12"); Map<String, Tag> updatedTags = new HashMap<String, Tag>(); for (Tag tag : tagUpdates) { Tag ret = tagsProxy.update(tag); assertNotNull(ret.getId()); assertNotNull(ret.getTag()); // tag.expected(ret); disabled because tag id changes updatedTags.put(ret.getId(), ret); } // get updated tags List<Tag> expectedNodeTags = TenantUtil.runAsUserTenant(new TenantRunAsWork<List<Tag>>() { @Override public List<Tag> doWork() throws Exception { List<Tag> tags = repoService.getTags(nodeRef2); return tags; } }, person1.getId(), network1.getId()); skipCount = 0; maxItems = tagUpdates.size(); paging = getPaging(skipCount, maxItems, tagUpdates.size(), tagUpdates.size()); resp = nodesProxy.getNodeTags(nodeRef2.getId(), createParams(paging, null)); checkList(expectedNodeTags.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } { List<Tag> createdTags = new ArrayList<Tag>(); // Test Case cloud-1975 for (Tag tag : tags) { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); Tag ret = nodesProxy.createNodeTag(nodeRef1.getId(), tag); assertEquals(tag.getTag(), ret.getTag()); assertNotNull(ret.getId()); createdTags.add(ret); } // update tag, empty string try { Tag tag = new Tag(createdTags.get(0).getId(), ""); tagsProxy.update(tag); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } // invalid node id try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.createNodeTag(GUID.generate(), tags.get(0)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // Test Case cloud-1973 // Test Case cloud-2208 // Test Case cloud-2219 // check that the tags are there in the node tags, test paging List<Tag> expectedNodeTags = TenantUtil.runAsUserTenant(new TenantRunAsWork<List<Tag>>() { @Override public List<Tag> doWork() throws Exception { List<Tag> tags = repoService.getTags(nodeRef1); return tags; } }, person1.getId(), network1.getId()); { int skipCount = 0; int maxItems = 2; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); Paging paging = getPaging(skipCount, maxItems, expectedNodeTags.size(), expectedNodeTags.size()); ListResponse<Tag> resp = nodesProxy.getNodeTags(nodeRef1.getId(), createParams(paging, null)); checkList(expectedNodeTags.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } { int skipCount = 2; int maxItems = Integer.MAX_VALUE; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); Paging paging = getPaging(skipCount, maxItems, expectedNodeTags.size(), expectedNodeTags.size()); ListResponse<Tag> resp = nodesProxy.getNodeTags(nodeRef1.getId(), createParams(paging, null)); checkList(expectedNodeTags.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } // invalid node try { int skipCount = 0; int maxItems = 2; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); Paging paging = getPaging(skipCount, maxItems, expectedNodeTags.size(), expectedNodeTags.size()); ListResponse<Tag> allTags = nodesProxy.getNodeTags("invalidNode", createParams(paging, null)); checkList(expectedNodeTags.subList(skipCount, paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), allTags); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // user from another account - 403 try { int skipCount = 0; int maxItems = 2; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person3.getId())); Paging expectedPaging = getPaging(skipCount, maxItems, expectedNodeTags.size(), expectedNodeTags.size()); nodesProxy.getNodeTags(nodeRef1.getId(), createParams(expectedPaging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // another user from the same account try { int skipCount = 0; int maxItems = 2; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); Paging paging = getPaging(skipCount, maxItems, expectedNodeTags.size(), expectedNodeTags.size()); ListResponse<Tag> resp = nodesProxy.getNodeTags(nodeRef1.getId(), createParams(paging, null)); checkList(expectedNodeTags.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_FORBIDDEN, e.getHttpResponse().getStatusCode()); } // Test Case cloud-1519 // Test Case cloud-2206 // Test Case cloud-2218 // check that the tags are there in the network tags, test paging // TODO for user from another network who is invited to this network List<Tag> expectedNetworkTags = TenantUtil.runAsUserTenant(new TenantRunAsWork<List<Tag>>() { @Override public List<Tag> doWork() throws Exception { List<Tag> tags = repoService.getTags(); return tags; } }, person1.getId(), network1.getId()); { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedNetworkTags.size(), null); ListResponse<Tag> allTags = tagsProxy.getTags(createParams(paging, null)); checkList(expectedNetworkTags.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), allTags); } { int skipCount = 2; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedNetworkTags.size(), null); ListResponse<Tag> allTags = tagsProxy.getTags(createParams(paging, null)); checkList(expectedNetworkTags.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), allTags); } } { // Try a create with the same tag value Tag tag = tags.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.createNodeTag(nodeRef1.getId(), tag); } try { // Invalid node id Tag tag = tags.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.createNodeTag(GUID.generate(), tag); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // Test Case cloud-2183 // update tags { // get a network tag int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); ListResponse<Tag> allTags = tagsProxy.getTags(createParams(paging, null)); assertTrue(allTags.getList().size() > 0); // and update it Tag tag = allTags.getList().get(0); String newTagValue = GUID.generate(); Tag newTag = new Tag(tag.getId(), newTagValue); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); Tag ret = tagsProxy.update(newTag); assertEquals(newTagValue, ret.getTag()); // assertNotEquals(tag.getId, ret.getId()); // disabled due to CLOUD-628 } // update invalid/unknown tag id try { Tag unknownTag = new Tag(GUID.generate(), GUID.generate()); tagsProxy.update(unknownTag); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // Test Case cloud-1972 // Test Case cloud-1974 // not allowed methods { List<Tag> networkTags = TenantUtil.runAsUserTenant(new TenantRunAsWork<List<Tag>>() { @Override public List<Tag> doWork() throws Exception { List<Tag> tags = repoService.getTags(); return tags; } }, person1.getId(), network1.getId()); assertTrue(networkTags.size() > 0); try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.update("nodes", nodeRef1.getId(), "tags", null, null, "Unable to PUT node tags"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.remove("nodes", nodeRef1.getId(), "tags", null, "Unable to DELETE node tags"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { Tag tag = networkTags.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.update("nodes", nodeRef1.getId(), "tags", tag.getId(), null, "Unable to PUT node tag"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { Tag tag = networkTags.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.create("tags", null, null, null, tag.toJSON().toString(), "Unable to POST to tags"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { Tag tag = networkTags.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.update("tags", null, null, null, tag.toJSON().toString(), "Unable to PUT tags"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.remove("tags", null, null, null, "Unable to DELETE tags"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { Tag tag = networkTags.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.create("tags", tag.getId(), null, null, tag.toJSON().toString(), "Unable to POST to a tag"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { Tag tag = networkTags.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.remove("tags", tag.getId(), null, null, "Unable to DELETE a tag"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // delete node tag { Tag tag = networkTags.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.removeNodeTag(nodeRef1.getId(), tag.getId()); // check that the tag is gone ListResponse<Tag> resp = nodesProxy.getNodeTags(nodeRef1.getId(), createParams(getPaging(0, Integer.MAX_VALUE), null)); List<Tag> nodeTags = resp.getList(); assertTrue(!nodeTags.contains(tag)); } try { Tag tag = networkTags.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.getSingle("nodes", nodeRef1.getId(), "tags", tag.getId(), "Unable to GET node tag"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } } }
From source file:org.alfresco.rest.api.tests.TestUserPreferences.java
@Test public void testUserPreferences() throws Exception { Iterator<TestNetwork> networksIt = getTestFixture().getNetworksIt(); assertTrue(networksIt.hasNext());/*from www . j av a2 s.c om*/ final TestNetwork network1 = networksIt.next(); assertTrue(networksIt.hasNext()); final TestNetwork network2 = networksIt.next(); final List<TestPerson> people = new ArrayList<TestPerson>(3); // create users and some preferences 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 person1 = people.get(0); final TestPerson person2 = people.get(1); final TestPerson person3 = people.get(2); final List<Preference> expectedPreferences = new ArrayList<Preference>(); expectedPreferences .add(new Preference("org.alfresco.share.documentList.testPreference2", String.valueOf(true))); expectedPreferences .add(new Preference("org.alfresco.share.documentList.testPreference1", String.valueOf(true))); expectedPreferences .add(new Preference("org.alfresco.share.documentList.sortAscending", String.valueOf(true))); expectedPreferences .add(new Preference("org.alfresco.share.documentList.testPreference3", String.valueOf(true))); // new preference name for issue REPO-855 expectedPreferences.add(new Preference( "org.alfresco.ext.folders.favourites.workspace://SpacesStore/4e3d0779-388a-4b94-91e1-eab588a7da3d.createdAt", String.valueOf(true))); TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>() { @Override public Void doWork() throws Exception { for (Preference pref : expectedPreferences) { // TODO add preferences thru api repoService.addPreference(person1.getId(), pref.getId(), pref.getValue()); } return null; } }, person1.getId(), network1.getId()); Collections.sort(expectedPreferences); People peopleProxy = publicApiClient.people(); // GET preferences // Test case: cloud-1492 // unknown user try { int skipCount = 0; int maxItems = 2; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); Paging paging = getPaging(skipCount, maxItems, expectedPreferences.size(), expectedPreferences.size()); peopleProxy.getPreferences(GUID.generate(), createParams(paging, null)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // test paging { int skipCount = 0; int maxItems = 2; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); Paging paging = getPaging(skipCount, maxItems, expectedPreferences.size(), expectedPreferences.size()); ListResponse<Preference> resp = peopleProxy.getPreferences(person1.getId(), createParams(paging, null)); checkList(expectedPreferences.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } { int skipCount = 2; int maxItems = 10; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); Paging paging = getPaging(skipCount, maxItems, expectedPreferences.size(), expectedPreferences.size()); ListResponse<Preference> resp = peopleProxy.getPreferences(person1.getId(), createParams(paging, null)); checkList(expectedPreferences.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } // "-me-" user { int skipCount = 0; int maxItems = 2; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); Paging paging = getPaging(skipCount, maxItems, expectedPreferences.size(), expectedPreferences.size()); ListResponse<Preference> resp = peopleProxy.getPreferences(org.alfresco.rest.api.People.DEFAULT_USER, createParams(paging, null)); checkList(expectedPreferences.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } // invalid user - 404 try { int skipCount = 2; int maxItems = 10; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); Paging paging = getPaging(skipCount, maxItems, expectedPreferences.size(), expectedPreferences.size()); peopleProxy.getPreferences("invalid.user", createParams(paging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // user from another account - 401 try { int skipCount = 0; int maxItems = 2; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person3.getId())); Paging paging = getPaging(skipCount, maxItems, expectedPreferences.size(), expectedPreferences.size()); // ListResponse<Preference> resp = peopleProxy.getPreferences(person1.getId(), createParams(paging, null)); // checkList(expectedPreferences.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); peopleProxy.getPreferences(person1.getId(), createParams(paging, null)); fail(); } catch (PublicApiException e) { assertEquals(e.getHttpResponse().getStatusCode(), HttpStatus.SC_UNAUTHORIZED); } // another user from the same account - 403 try { int skipCount = 0; int maxItems = 2; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); Paging paging = getPaging(skipCount, maxItems, expectedPreferences.size(), expectedPreferences.size()); peopleProxy.getPreferences(person1.getId(), createParams(paging, null)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_FORBIDDEN, e.getHttpResponse().getStatusCode()); } // get a single preference // Test Case: cloud-1493 { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); Preference pref = expectedPreferences.get(0); Preference ret = peopleProxy.getPreference(person1.getId(), pref.getId()); pref.expected(ret); } // unknown person id try { Preference pref = expectedPreferences.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); peopleProxy.getPreference(GUID.generate(), pref.getId()); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // unknown preference id try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); peopleProxy.getPreference(person1.getId(), GUID.generate()); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // Invalid methods // Test case: cloud-1968 try { Preference pref = expectedPreferences.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); peopleProxy.create("people", person1.getId(), "preferences", pref.getId(), pref.toJSON().toString(), "Unable to POST to a preference"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { Preference pref = expectedPreferences.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); peopleProxy.update("people", person1.getId(), "preferences", pref.getId(), pref.toJSON().toString(), "Unable to PUT a preference"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { Preference pref = expectedPreferences.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); peopleProxy.remove("people", person1.getId(), "preferences", pref.getId(), "Unable to DELETE a preference"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { Preference pref = expectedPreferences.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); peopleProxy.create("people", person1.getId(), "preferences", null, pref.toJSON().toString(), "Unable to POST to preferences"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { Preference pref = expectedPreferences.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); peopleProxy.update("people", person1.getId(), "preferences", null, pref.toJSON().toString(), "Unable to PUT preferences"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); peopleProxy.remove("people", person1.getId(), "preferences", null, "Unable to DELETE preferences"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } { // REPO-1061, REPO-890 try { String skipCount = "a"; String maxItems = "hi"; HashMap<String, String> params = new HashMap<String, String>(); params.put("skipCount", skipCount); params.put("maxItems", maxItems); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); peopleProxy.getPreferences(person1.getId(), params); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } try { String skipCount = "a"; String maxItems = "null"; HashMap<String, String> params = new HashMap<String, String>(); params.put("skipCount", skipCount); params.put("maxItems", maxItems); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); peopleProxy.getPreferences(person1.getId(), params); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } try { String maxItems = "Red"; HashMap<String, String> params = new HashMap<String, String>(); params.put("maxItems", maxItems); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); peopleProxy.getPreferences(person1.getId(), params); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } try { String skipCount = "yuck"; HashMap<String, String> params = new HashMap<String, String>(); params.put("skipCount", skipCount); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); peopleProxy.getPreferences(person1.getId(), params); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } try { String skipCount = "-1"; HashMap<String, String> params = new HashMap<String, String>(); params.put("skipCount", skipCount); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); peopleProxy.getPreferences(person1.getId(), params); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } try { String maxItems = "0"; HashMap<String, String> params = new HashMap<String, String>(); params.put("maxItems", maxItems); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); peopleProxy.getPreferences(person1.getId(), params); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } } }
From source file:org.apache.cloudstack.network.element.SspClient.java
private String executeMethod(HttpMethod method) { String apiCallPath = null;//from w w w . j a va 2s. c o m try { apiCallPath = method.getName() + " " + method.getURI().toString(); } catch (URIException e) { s_logger.error("method getURI failed", e); } String response = null; try { client.executeMethod(method); response = method.getResponseBodyAsString(); } catch (HttpException e) { s_logger.error("ssp api call failed " + apiCallPath, e); return null; } catch (IOException e) { s_logger.error("ssp api call failed " + apiCallPath, e); return null; } finally { method.releaseConnection(); } if (method.getStatusCode() == HttpStatus.SC_UNAUTHORIZED) { if (!login()) { return null; } try { client.executeMethod(method); response = method.getResponseBodyAsString(); } catch (HttpException e) { s_logger.error("ssp api call failed " + apiCallPath, e); return null; } catch (IOException e) { s_logger.error("ssp api call failed " + apiCallPath, e); return null; } finally { method.releaseConnection(); } } s_logger.info("ssp api call:" + apiCallPath + " user=" + username + " status=" + method.getStatusLine()); if (method instanceof EntityEnclosingMethod) { EntityEnclosingMethod emethod = (EntityEnclosingMethod) method; RequestEntity reqEntity = emethod.getRequestEntity(); if (reqEntity instanceof StringRequestEntity) { StringRequestEntity strReqEntity = (StringRequestEntity) reqEntity; s_logger.debug("ssp api request body:" + strReqEntity.getContent()); } else { s_logger.debug("ssp api request body:" + emethod.getRequestEntity()); } } s_logger.debug("ssp api response body:" + response); return response; }
From source file:org.apache.hadoop.fs.swift.http.SwiftRestClient.java
/** * Execute a method in a new HttpClient instance. * If the auth failed, authenticate then retry the method. * @param method methot to exec// ww w. j a v a 2 s. c om * @param <M> Method type * @return the status code * @throws IOException on any failure * @throws SwiftConnectionException failure to connect or authenticate */ private <M extends HttpMethod> int exec(M method) throws IOException, SwiftConnectionException { final HttpClient client = new HttpClient(); if (proxyHost != null) { client.getParams().setParameter(HTTP_ROUTE_DEFAULT_PROXY, new HttpHost(proxyHost, proxyPort)); } int statusCode = execWithDebugOutput(method, client); if (method.getStatusCode() == HttpStatus.SC_UNAUTHORIZED) { //unauthed -look at what raised the response if (method.getURI().toString().equals(authUri.toString())) { //unauth response from the AUTH URI itself. throw new SwiftConnectionException("Authentication failed, URI credentials are incorrect," + " or Openstack Keystone is configured incorrectly. URL='" + authUri + "' " + "username={" + username + "} " + "password length=" + password.length()); } else { //any other URL: try again if (LOG.isDebugEnabled()) { LOG.debug("Reauthenticating"); } authenticate(); if (LOG.isDebugEnabled()) { LOG.debug("Retrying original request"); } statusCode = execWithDebugOutput(method, client); } } return statusCode; }
From source file:org.apache.jackrabbit.spi2dav.RepositoryServiceImpl.java
/** * @see RepositoryService#getRepositoryDescriptors() *///from w ww .ja va 2s.c o m public Map<String, QValue[]> getRepositoryDescriptors() throws RepositoryException { if (descriptors.isEmpty()) { ReportInfo info = new ReportInfo(JcrRemotingConstants.REPORT_REPOSITORY_DESCRIPTORS, ItemResourceConstants.NAMESPACE); ReportMethod method = null; try { method = new ReportMethod(uriResolver.getRepositoryUri(), info); int sc = getClient(null).executeMethod(method); if (sc == HttpStatus.SC_UNAUTHORIZED || sc == HttpStatus.SC_PROXY_AUTHENTICATION_REQUIRED) { // JCR-3076: Mandatory authentication prevents us from // accessing the descriptors on the server, so instead // of failing with an exception we simply return an empty // set of descriptors log.warn("Authentication required to access repository descriptors"); return descriptors; } method.checkSuccess(); Document doc = method.getResponseBodyAsDocument(); if (doc != null) { Element rootElement = doc.getDocumentElement(); ElementIterator nsElems = DomUtil.getChildren(rootElement, JcrRemotingConstants.XML_DESCRIPTOR, ItemResourceConstants.NAMESPACE); while (nsElems.hasNext()) { Element elem = nsElems.nextElement(); String key = DomUtil.getChildText(elem, JcrRemotingConstants.XML_DESCRIPTORKEY, ItemResourceConstants.NAMESPACE); ElementIterator it = DomUtil.getChildren(elem, JcrRemotingConstants.XML_DESCRIPTORVALUE, ItemResourceConstants.NAMESPACE); List<QValue> vs = new ArrayList<QValue>(); while (it.hasNext()) { Element dv = it.nextElement(); String descriptor = DomUtil.getText(dv); if (key != null && descriptor != null) { String typeStr = (DomUtil.getAttribute(dv, JcrRemotingConstants.ATTR_VALUE_TYPE, null)); int type = (typeStr == null) ? PropertyType.STRING : PropertyType.valueFromName(typeStr); vs.add(getQValueFactory().create(descriptor, type)); } else { log.error("Invalid descriptor key / value pair: " + key + " -> " + descriptor); } } descriptors.put(key, vs.toArray(new QValue[vs.size()])); } } } catch (IOException e) { throw new RepositoryException(e); } catch (DavException e) { throw ExceptionConverter.generate(e); } finally { if (method != null) { method.releaseConnection(); } } } return descriptors; }