mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
90946: Merged V4.2-BUG-FIX (4.2.5) to HEAD-BUG-FIX (5.0/Cloud) 90874: Merged DEV (4.2.4) to V4.2-BUG-FIX (4.2.5) 90590: MNT-12281 : Cannot set CSV delimiter in DeclarativeSpreadsheetWebScript Added CSV delimiter as a request parameter to the DeclarativeSpreadsheetWebScript implementations Added JUnit test. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@94749 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
87 lines
3.7 KiB
Java
87 lines
3.7 KiB
Java
/*
|
|
* Copyright (C) 2005-2014 Alfresco Software Limited.
|
|
*
|
|
* This file is part of Alfresco
|
|
*
|
|
* Alfresco is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* Alfresco 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 Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
package org.alfresco.repo.web.scripts;
|
|
|
|
import org.alfresco.model.ContentModel;
|
|
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
|
import org.alfresco.service.namespace.QName;
|
|
import org.springframework.extensions.webscripts.Status;
|
|
import org.springframework.extensions.webscripts.TestWebScriptServer;
|
|
import org.springframework.extensions.webscripts.TestWebScriptServer.Response;
|
|
|
|
/**
|
|
* Test for DeclarativeSpreadsheetWebScript class
|
|
*
|
|
* @author alex.mukha
|
|
* @since 4.2.4
|
|
*/
|
|
public class DeclarativeSpreadsheetWebScriptTest extends BaseWebScriptTest
|
|
{
|
|
private String admin;
|
|
private static String URL = "/api/test/getcsv";
|
|
protected static final QName[] COLUMNS = new QName[]
|
|
{
|
|
ContentModel.PROP_USERNAME,
|
|
ContentModel.PROP_FIRSTNAME,
|
|
ContentModel.PROP_LASTNAME
|
|
};
|
|
|
|
/** The context locations, in reverse priority order. */
|
|
private static final String CONFIG_LOCATION = "classpath:alfresco/declarative-spreadsheet-webscript-application-context.xml";
|
|
|
|
@Override
|
|
protected void setUp() throws Exception
|
|
{
|
|
super.setCustomContext(CONFIG_LOCATION);
|
|
super.setUp();
|
|
getServer().getApplicationContext();
|
|
admin = AuthenticationUtil.getAdminUserName();
|
|
AuthenticationUtil.setFullyAuthenticatedUser(admin);
|
|
}
|
|
|
|
@Override
|
|
protected void tearDown() throws Exception
|
|
{
|
|
AuthenticationUtil.clearCurrentSecurityContext();
|
|
};
|
|
|
|
public void testCSVStrategy() throws Exception
|
|
{
|
|
TestWebScriptServer.GetRequest req = new TestWebScriptServer.GetRequest(URL);
|
|
Response response = sendRequest(req, Status.STATUS_OK, admin);
|
|
// default excel, delimiter is a comma ","
|
|
assertEquals("The response CSV body was not correct.", "User Name,First Name,Last Name\n", response.getContentAsString());
|
|
|
|
req = new TestWebScriptServer.GetRequest(URL + "?" + DeclarativeSpreadsheetWebScript.PARAM_REQ_DELIMITER + "=%2C");
|
|
response = sendRequest(req, Status.STATUS_OK, admin);
|
|
// delimiter is a comma ","
|
|
assertEquals("The response CSV body was not correct.", "User Name,First Name,Last Name\n", response.getContentAsString());
|
|
|
|
req = new TestWebScriptServer.GetRequest(URL + "?" + DeclarativeSpreadsheetWebScript.PARAM_REQ_DELIMITER + "=%09");
|
|
response = sendRequest(req, Status.STATUS_OK, admin);
|
|
// delimiter is a tab space "\t"
|
|
assertEquals("The response CSV body was not correct.", "User Name\tFirst Name\tLast Name\n", response.getContentAsString());
|
|
|
|
req = new TestWebScriptServer.GetRequest(URL + "?" + DeclarativeSpreadsheetWebScript.PARAM_REQ_DELIMITER + "=%3B");
|
|
response = sendRequest(req, Status.STATUS_OK, admin);
|
|
// delimiter is a semicolon ";"
|
|
assertEquals("The response CSV body was not correct.", "User Name;First Name;Last Name\n", response.getContentAsString());
|
|
}
|
|
}
|