From fb2bf792e7021e11f90e3287bf656f2222fed8ae Mon Sep 17 00:00:00 2001 From: Jamal Kaabi-Mofrad Date: Thu, 2 Jun 2016 21:26:16 +0000 Subject: [PATCH] Merged API-STRIKES-BACK (5.2.0) to HEAD (5.2) 125601 jvonka: RA-779: Sites API - create site - additional tests (site description & also max lengths for id, title & description) - fix site id validation (repeating valid chars) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@127555 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../org/alfresco/rest/api/impl/SitesImpl.java | 2 +- .../alfresco/rest/api/tests/TestSites.java | 40 +++++++++++++++++-- .../rest/api/tests/client/data/SiteImpl.java | 4 ++ 3 files changed, 42 insertions(+), 4 deletions(-) diff --git a/source/java/org/alfresco/rest/api/impl/SitesImpl.java b/source/java/org/alfresco/rest/api/impl/SitesImpl.java index 0de84308ee..90de278fd8 100644 --- a/source/java/org/alfresco/rest/api/impl/SitesImpl.java +++ b/source/java/org/alfresco/rest/api/impl/SitesImpl.java @@ -948,7 +948,7 @@ public class SitesImpl implements Sites } else { - if (! siteId.matches("[^"+SITE_ID_VALID_CHARS_PARTIAL_REGEX+"]")) + if (! siteId.matches("^["+SITE_ID_VALID_CHARS_PARTIAL_REGEX+"]+")) { throw new InvalidArgumentException("Invalid site id - should consist of alphanumeric/dash characters"); } diff --git a/source/test-java/org/alfresco/rest/api/tests/TestSites.java b/source/test-java/org/alfresco/rest/api/tests/TestSites.java index 9a6c0cb0f6..af15230369 100644 --- a/source/test-java/org/alfresco/rest/api/tests/TestSites.java +++ b/source/test-java/org/alfresco/rest/api/tests/TestSites.java @@ -139,13 +139,16 @@ public class TestSites extends EnterpriseTestApi publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1Id)); String siteTitle = "my site !*#$ 123"; + String siteDescription = "my site description"; + + SiteImpl site = new SiteImpl(siteTitle, SiteVisibility.PRIVATE.toString()); + site.setDescription(siteDescription); - Site site = new SiteImpl(siteTitle, SiteVisibility.PRIVATE.toString()); Site ret = sitesProxy.createSite(site); String siteId = ret.getSiteId(); String expectedSiteId = "my-site-123"; - Site siteExp = new SiteImpl(null, expectedSiteId, ret.getGuid(), siteTitle, null, SiteVisibility.PRIVATE.toString(), null, SiteRole.SiteManager); + Site siteExp = new SiteImpl(null, expectedSiteId, ret.getGuid(), siteTitle, siteDescription, SiteVisibility.PRIVATE.toString(), null, SiteRole.SiteManager); siteExp.expected(ret); ret = sitesProxy.getSite(siteId); @@ -175,7 +178,7 @@ public class TestSites extends EnterpriseTestApi // -ve - try to get unknown site sitesProxy.getSite(GUID.generate(), 404); - Site site = new SiteImpl("my site 123", "invalidsitevisibility"); + SiteImpl site = new SiteImpl("my site 123", "invalidsitevisibility"); sitesProxy.createSite(site, 400); site = new SiteImpl(null, "invalid site id", null, "my site 123", null, SiteVisibility.PRIVATE.toString(), null, null); @@ -184,6 +187,37 @@ public class TestSites extends EnterpriseTestApi site = new SiteImpl(null, "invalidsiteid*", null, "my site 123", null, SiteVisibility.PRIVATE.toString(), null, null); sitesProxy.createSite(site, 400); + site = new SiteImpl(); + site.setSiteId(new String(new char[72]).replace('\0', 'a')); + site.setTitle(new String(new char[256]).replace('\0', 'a')); + site.setDescription(new String(new char[512]).replace('\0', 'a')); + site.setVisibility(SiteVisibility.PUBLIC.toString()); + sitesProxy.createSite(site, 201); + + // -ve - site id too long + site = new SiteImpl(); + site.setSiteId(new String(new char[73]).replace('\0', 'a')); + site.setTitle("ok"); + site.setDescription("ok"); + site.setVisibility(SiteVisibility.PUBLIC.toString()); + sitesProxy.createSite(site, 400); + + // -ve - site title too long + site = new SiteImpl(); + site.setSiteId("ok"); + site.setTitle(new String(new char[257]).replace('\0', 'a')); + site.setDescription("ok"); + site.setVisibility(SiteVisibility.PUBLIC.toString()); + sitesProxy.createSite(site, 400); + + // -ve - site description too long + site = new SiteImpl(); + site.setSiteId("ok"); + site.setTitle("ok"); + site.setDescription(new String(new char[513]).replace('\0', 'a')); + site.setVisibility(SiteVisibility.PUBLIC.toString()); + sitesProxy.createSite(site, 400); + // site already exists (409) String siteTitle = "my site 456"; site = new SiteImpl(siteTitle, SiteVisibility.PRIVATE.toString()); diff --git a/source/test-java/org/alfresco/rest/api/tests/client/data/SiteImpl.java b/source/test-java/org/alfresco/rest/api/tests/client/data/SiteImpl.java index f09a28c966..7361ab355d 100644 --- a/source/test-java/org/alfresco/rest/api/tests/client/data/SiteImpl.java +++ b/source/test-java/org/alfresco/rest/api/tests/client/data/SiteImpl.java @@ -285,6 +285,10 @@ public class SiteImpl implements Serializable, Site, Comparable, Expec { siteJson.put("title", getTitle()); } + if (getDescription() != null) + { + siteJson.put("description", getDescription()); + } if (getVisibility() != null) { siteJson.put("visibility", getVisibility());