package com.agiletec.plugins.jpremoteresourceloader.apsadmin.resource; import java.io.File; import java.util.Collection; import java.util.List; import java.util.Map; import org.apache.commons.io.FileUtils; import com.agiletec.plugins.jpremoteresourceloader.apsadmin.ApsAdminPluginBaseTestCase; import com.agiletec.apsadmin.system.ApsAdminSystemConstants; import com.agiletec.plugins.jacms.aps.system.JacmsSystemConstants; import com.agiletec.plugins.jacms.aps.system.services.resource.IResourceManager; import com.agiletec.plugins.jpremoteresourceloader.apsadmin.resource.RemoteResourceLoaderAction; import com.opensymphony.xwork2.Action; public class TestRemoteResourceLoaderAction extends ApsAdminPluginBaseTestCase { @Override protected void setUp() throws Exception { super.setUp(); this.init(); } public void testNew() throws Throwable { String result = this.executeNew(); assertEquals(Action.SUCCESS, result); } public void testAddValidation() throws Throwable { // no url param this.initAction("/do/jpremoteresourceloader/Resource", "save"); this.setUserOnSession("admin"); this.addParameter("ResourceTypeCode", "Image"); this.addParameter("strutsAction", "1"); this.addParameter("descr", "Image"); this.addParameter("alternateName", "Image"); this.addParameter("mainGroup", "free"); String result = this.executeAction(); assertEquals(Action.INPUT, result); RemoteResourceLoaderAction action = (RemoteResourceLoaderAction) this.getAction(); assertNotNull(action); Collection<String> actionErrors = action.getActionErrors(); assertNotNull(actionErrors); assertEquals(0, actionErrors.size()); Map<String,List<String>> fieldErrors = action.getFieldErrors(); assertNotNull(fieldErrors); assertEquals(1, fieldErrors.size()); // no well formed url this.initAction("/do/jpremoteresourceloader/Resource", "save"); this.setUserOnSession("admin"); this.addParameter("ResourceTypeCode", "Image"); this.addParameter("strutsAction", "1"); this.addParameter("descr", "Image"); this.addParameter("alternateName", "Image"); this.addParameter("mainGroup", "free"); this.addParameter("url", "fakeURL"); result = this.executeAction(); assertEquals(Action.INPUT, result); action = (RemoteResourceLoaderAction) this.getAction(); assertNotNull(action); actionErrors = action.getActionErrors(); assertNotNull(actionErrors); assertEquals(0, actionErrors.size()); fieldErrors = action.getFieldErrors(); assertNotNull(fieldErrors); assertEquals(1, fieldErrors.size()); // not valid url this.initAction("/do/jpremoteresourceloader/Resource", "save"); this.setUserOnSession("admin"); this.addParameter("ResourceTypeCode", "Image"); this.addParameter("strutsAction", "1"); this.addParameter("descr", "Image"); this.addParameter("alternateName", "Image"); this.addParameter("mainGroup", "free"); this.addParameter("url", "http://www.google.com/entando/resources/static/img/headerLogo_background.jpg"); result = this.executeAction(); assertEquals(Action.INPUT, result); action = (RemoteResourceLoaderAction) this.getAction(); assertNotNull(action); actionErrors = action.getActionErrors(); assertNotNull(actionErrors); assertEquals(0, actionErrors.size()); fieldErrors = action.getFieldErrors(); assertNotNull(fieldErrors); assertEquals(1, fieldErrors.size()); } public void testSaveHttp() throws Throwable { String result = this.executeSaveFromHttp(NAME_DESCR); assertEquals(Action.SUCCESS, result); List<String> resIds = this._resourceManager.searchResourcesId("Image", NAME_DESCR, null, null); assertEquals(1, resIds.size()); } public void testSaveFtp() throws Throwable { String result = this.executeSaveFromFtp(NAME_DESCR); assertEquals(Action.SUCCESS, result); List<String> resIds = this._resourceManager.searchResourcesId("Image", NAME_DESCR, null, null); assertEquals(1, resIds.size()); } public void testSaveFile() throws Throwable { File file = new File("admin/test/entando_logo.jpg"); File destFile = new File("admin/test/jpremoteresourceloader_entando_logo.jpg"); FileUtils.copyFile(file, destFile, true); String result = this.executeSaveFromFile(NAME_DESCR, destFile.getAbsolutePath()); assertEquals(Action.INPUT, result); // assertEquals(Action.SUCCESS, result); // List<String> resIds = this._resourceManager.searchResourcesId("Image", NAME_DESCR, null, null); // assertEquals(1, resIds.size()); } public void testSaveFileFromDefaultDir_1() throws Throwable { String result = this.executeSaveFromDefaultDir(NAME_DESCR, "label.jpg"); assertEquals(Action.SUCCESS, result); List<String> resIds = this._resourceManager.searchResourcesId("Image", NAME_DESCR, null, null); assertEquals(1, resIds.size()); } public void testSaveFileFromDefaultDir_2() throws Throwable { String result = this.executeSaveFromDefaultDir(NAME_DESCR, "/label.jpg"); assertEquals(Action.SUCCESS, result); List<String> resIds = this._resourceManager.searchResourcesId("Image", NAME_DESCR, null, null); assertEquals(1, resIds.size()); } public void testSaveFileFromDefaultDir_3() throws Throwable { String result = this.executeSaveFromDefaultDir(NAME_DESCR, "Immagini/teschio.png"); assertEquals(Action.SUCCESS, result); List<String> resIds = this._resourceManager.searchResourcesId("Image", NAME_DESCR, null, null); assertEquals(1, resIds.size()); } public void testSaveFileFromDefaultDir_4() throws Throwable { String result = this.executeSaveFromDefaultDir(NAME_DESCR, "/Immagini/teschio.png"); assertEquals(Action.SUCCESS, result); List<String> resIds = this._resourceManager.searchResourcesId("Image", NAME_DESCR, null, null); assertEquals(1, resIds.size()); } private String executeNew() throws Throwable { this.setUserOnSession("admin"); this.initAction("/do/jpremoteresourceloader/Resource", "new"); return this.executeAction(); } private String executeSaveFromHttp(String nameDescr) throws Throwable { this.setUserOnSession("admin"); this.initAction("/do/jpremoteresourceloader/Resource", "save"); this.addParameter("url", "http://www.japsportal.org/jAPSPortal/resources/cms/images/box3Interno_1_d0.jpg"); this.addParameter("alternateName", nameDescr); this.addParameter("descr", nameDescr); this.addParameter("resourceTypeCode", "Image"); this.addParameter("strutsAction", ApsAdminSystemConstants.ADD); this.addParameter("mainGroup", "free"); return this.executeAction(); } private String executeSaveFromFtp(String nameDescr) throws Throwable { this.setUserOnSession("admin"); this.initAction("/do/jpremoteresourceloader/Resource", "save"); this.addParameter("url", "ftp://spuddu:12345678@spuddu.altervista.org/tipa.png"); this.addParameter("alternateName", nameDescr); this.addParameter("descr", nameDescr); this.addParameter("resourceTypeCode", "Image"); this.addParameter("strutsAction", ApsAdminSystemConstants.ADD); this.addParameter("mainGroup", "free"); return this.executeAction(); } private String executeSaveFromFile(String nameDescr, String path) throws Throwable { this.setUserOnSession("admin"); this.initAction("/do/jpremoteresourceloader/Resource", "save"); this.addParameter("url", "file://" + path); this.addParameter("alternateName", nameDescr); this.addParameter("descr", nameDescr); this.addParameter("resourceTypeCode", "Image"); this.addParameter("strutsAction", ApsAdminSystemConstants.ADD); this.addParameter("mainGroup", "free"); return this.executeAction(); } private String executeSaveFromDefaultDir(String nameDescr, String path) throws Throwable { this.setUserOnSession("admin"); this.initAction("/do/jpremoteresourceloader/Resource", "save"); this.addParameter("url", path); this.addParameter("alternateName", nameDescr); this.addParameter("descr", nameDescr); this.addParameter("resourceTypeCode", "Image"); this.addParameter("strutsAction", ApsAdminSystemConstants.ADD); this.addParameter("mainGroup", "free"); return this.executeAction(); } @Override protected void tearDown() throws Exception { super.tearDown(); List<String> resIds = this._resourceManager.searchResourcesId("Image", NAME_DESCR, null, null); if (null != resIds && resIds.size() > 0) { String resId = resIds.get(0); this._resourceManager.deleteResource(this._resourceManager.loadResource(resId)); File destFile = new File("admin/test/jpremoteresourceloader_entando_logo.jpg"); if (destFile.exists()) { FileUtils.forceDelete(destFile); } } } private void init() { this._resourceManager = (IResourceManager) this.getService(JacmsSystemConstants.RESOURCE_MANAGER); } private IResourceManager _resourceManager; private static final String NAME_DESCR = "testFile"; }