mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Site Service CRUD API's (Java, JavaScript and REST), unit test methods added to JS API to help unit test JS API's
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@8986 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -71,11 +71,27 @@ public abstract class BaseWebScriptTest extends TestCase
|
||||
return sendRequest(METHOD_GET, url, expectedStatus, null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* "DELETE" the url and check for the expected status code
|
||||
*
|
||||
* @param url
|
||||
* @param expectedStatus
|
||||
* @return
|
||||
* @throws IOException
|
||||
*/
|
||||
protected MockHttpServletResponse deleteRequest(String url, int expectedStatus)
|
||||
throws IOException
|
||||
{
|
||||
return sendRequest(METHOD_DELETE, url, expectedStatus, null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* "POST" the url and check for the expected status code
|
||||
*
|
||||
* @param url
|
||||
* @param expectedStatus
|
||||
* @param body
|
||||
* @param contentType
|
||||
* @return
|
||||
* @throws IOException
|
||||
*/
|
||||
@@ -85,6 +101,22 @@ public abstract class BaseWebScriptTest extends TestCase
|
||||
return sendRequest(METHOD_POST, url, expectedStatus, body, contentType);
|
||||
}
|
||||
|
||||
/**
|
||||
* "PUT" the url and check for the expected status code
|
||||
*
|
||||
* @param url
|
||||
* @param expectedStatus
|
||||
* @param body
|
||||
* @param contentType
|
||||
* @return
|
||||
* @throws IOException
|
||||
*/
|
||||
protected MockHttpServletResponse putRequest(String url, int expectedStatus, String body, String contentType)
|
||||
throws IOException
|
||||
{
|
||||
return sendRequest(METHOD_PUT, url, expectedStatus, body, contentType);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param method
|
||||
|
@@ -0,0 +1,140 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2007 Alfresco Software Limited.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
* As a special exception to the terms and conditions of version 2.0 of
|
||||
* the GPL, you may redistribute this Program in connection with Free/Libre
|
||||
* and Open Source Software ("FLOSS") applications as described in Alfresco's
|
||||
* FLOSS exception. You should have recieved a copy of the text describing
|
||||
* the FLOSS exception, and it is also available here:
|
||||
* http://www.alfresco.com/legal/licensing"
|
||||
*/
|
||||
package org.alfresco.repo.web.scripts.site;
|
||||
|
||||
import org.alfresco.repo.web.scripts.BaseWebScriptTest;
|
||||
import org.alfresco.util.GUID;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
import org.springframework.mock.web.MockHttpServletResponse;
|
||||
|
||||
/**
|
||||
* Unit test to test site Web Script API
|
||||
*
|
||||
* @author Roy Wetherall
|
||||
*/
|
||||
public class SiteServiceTest extends BaseWebScriptTest
|
||||
{
|
||||
private static final String URL_SITES = "/api/sites";
|
||||
private static final String URL_SITE = "/api/site/";
|
||||
|
||||
public void testCreateSite() throws Exception
|
||||
{
|
||||
String shortName = GUID.generate();
|
||||
|
||||
// Create a new site
|
||||
JSONObject result = createSite("myPreset", shortName, "myTitle", "myDescription", true, 200);
|
||||
assertEquals("myPreset", result.get("sitePreset"));
|
||||
assertEquals(shortName, result.get("shortName"));
|
||||
assertEquals("myTitle", result.get("title"));
|
||||
assertEquals("myDescription", result.get("description"));
|
||||
assertTrue(result.getBoolean("isPublic"));
|
||||
|
||||
// Check for duplicate names
|
||||
createSite("myPreset", shortName, "myTitle", "myDescription", true, 500);
|
||||
}
|
||||
|
||||
private JSONObject createSite(String sitePreset, String shortName, String title, String description, boolean isPublic, int expectedStatus)
|
||||
throws Exception
|
||||
{
|
||||
JSONObject site = new JSONObject();
|
||||
site.put("sitePreset", sitePreset);
|
||||
site.put("shortName", shortName);
|
||||
site.put("title", title);
|
||||
site.put("description", description);
|
||||
site.put("isPublic", isPublic);
|
||||
MockHttpServletResponse response = postRequest(URL_SITES, expectedStatus, site.toString(), "application/json");
|
||||
return new JSONObject(response.getContentAsString());
|
||||
}
|
||||
|
||||
public void testGetSites() throws Exception
|
||||
{
|
||||
// == Test basic GET with no filters ==
|
||||
|
||||
MockHttpServletResponse response = getRequest(URL_SITES, 200);
|
||||
JSONArray result = new JSONArray(response.getContentAsString());
|
||||
|
||||
// TODO formalise this test once i can be sure that i know what's already in the site store
|
||||
// ie: .. i need to clean up after myself in this test
|
||||
|
||||
System.out.println(response.getContentAsString());
|
||||
}
|
||||
|
||||
public void testGetSite() throws Exception
|
||||
{
|
||||
// Get a site that doesn't exist
|
||||
MockHttpServletResponse response = getRequest(URL_SITE + "somerandomshortname", 404);
|
||||
|
||||
// Create a site and get it
|
||||
String shortName = GUID.generate();
|
||||
JSONObject result = createSite("myPreset", shortName, "myTitle", "myDescription", true, 200);
|
||||
response = getRequest(URL_SITE + shortName, 200);
|
||||
|
||||
}
|
||||
|
||||
public void testUpdateSite() throws Exception
|
||||
{
|
||||
// Create a site
|
||||
String shortName = GUID.generate();
|
||||
JSONObject result = createSite("myPreset", shortName, "myTitle", "myDescription", true, 200);
|
||||
|
||||
// Update the site
|
||||
result.put("title", "abs123abc");
|
||||
result.put("description", "123abc123");
|
||||
result.put("isPublic", false);
|
||||
MockHttpServletResponse response = putRequest(URL_SITE + shortName, 200, result.toString(), "application/json");
|
||||
result = new JSONObject(response.getContentAsString());
|
||||
assertEquals("abs123abc", result.get("title"));
|
||||
assertEquals("123abc123", result.get("description"));
|
||||
assertFalse(result.getBoolean("isPublic"));
|
||||
|
||||
// Try and get the site and double check it's changed
|
||||
response = getRequest(URL_SITE + shortName, 200);
|
||||
result = new JSONObject(response.getContentAsString());
|
||||
assertEquals("abs123abc", result.get("title"));
|
||||
assertEquals("123abc123", result.get("description"));
|
||||
assertFalse(result.getBoolean("isPublic"));
|
||||
}
|
||||
|
||||
public void testDeleteSite() throws Exception
|
||||
{
|
||||
// Delete non-existant site
|
||||
MockHttpServletResponse response = deleteRequest(URL_SITE + "somerandomshortname", 404);
|
||||
|
||||
// Create a site
|
||||
String shortName = GUID.generate();
|
||||
JSONObject result = createSite("myPreset", shortName, "myTitle", "myDescription", true, 200);
|
||||
|
||||
// Get the site
|
||||
response = getRequest(URL_SITE + shortName, 200);
|
||||
|
||||
// Delete the site
|
||||
response = deleteRequest(URL_SITE + shortName, 200);
|
||||
|
||||
// Get the site
|
||||
response = getRequest(URL_SITE + shortName, 404);
|
||||
}
|
||||
|
||||
}
|
@@ -1,84 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2007 Alfresco Software Limited.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
* As a special exception to the terms and conditions of version 2.0 of
|
||||
* the GPL, you may redistribute this Program in connection with Free/Libre
|
||||
* and Open Source Software ("FLOSS") applications as described in Alfresco's
|
||||
* FLOSS exception. You should have recieved a copy of the text describing
|
||||
* the FLOSS exception, and it is also available here:
|
||||
* http://www.alfresco.com/legal/licensing"
|
||||
*/
|
||||
package org.alfresco.repo.web.scripts.site;
|
||||
|
||||
import org.alfresco.repo.web.scripts.BaseWebScriptTest;
|
||||
import org.alfresco.util.GUID;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
import org.springframework.mock.web.MockHttpServletResponse;
|
||||
|
||||
/**
|
||||
* Unit test to test site Web Script API
|
||||
*
|
||||
* @author Roy Wetherall
|
||||
*/
|
||||
public class TestSiteService extends BaseWebScriptTest
|
||||
{
|
||||
private static final String URL_SITES = "/api/sites";
|
||||
|
||||
public void testCreateSite() throws Exception
|
||||
{
|
||||
String shortName = GUID.generate();
|
||||
|
||||
// == Create a new site ==
|
||||
|
||||
JSONObject site = new JSONObject();
|
||||
site.put("sitePreset", "myPreset");
|
||||
site.put("shortName", shortName);
|
||||
site.put("title", "myTitle");
|
||||
site.put("description", "myDescription");
|
||||
site.put("isPublic", true);
|
||||
|
||||
MockHttpServletResponse response = postRequest(URL_SITES, 200, site.toString(), "application/json");
|
||||
|
||||
JSONObject result = new JSONObject(response.getContentAsString());
|
||||
|
||||
assertEquals("myPreset", result.get("sitePreset"));
|
||||
assertEquals(shortName, result.get("shortName"));
|
||||
assertEquals("myTitle", result.get("title"));
|
||||
assertEquals("myDescription", result.get("description"));
|
||||
assertTrue(result.getBoolean("isPublic"));
|
||||
|
||||
// == Create a site with a duplicate shortName ==
|
||||
|
||||
response = postRequest(URL_SITES, 500, site.toString(), "application/json");
|
||||
result = new JSONObject(response.getContentAsString());
|
||||
}
|
||||
|
||||
public void testGetSites() throws Exception
|
||||
{
|
||||
// == Test basic GET with no filters ==
|
||||
|
||||
MockHttpServletResponse response = getRequest(URL_SITES, 200);
|
||||
JSONArray result = new JSONArray(response.getContentAsString());
|
||||
|
||||
// TODO formalise this test once i can be sure that i know what's already in the site store
|
||||
// ie: .. i need to clean up after myself in this test
|
||||
|
||||
System.out.println(response.getContentAsString());
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user