Merged V3.2 to HEAD

15596: Merged V3.1 to V3.2
        14017: Fix ETHREEOH-1880 - remove (double-)reverse of WCM staging snapshot order
        14112: Fix ETHREEOH-1758 - apply contributed patch
        14447: Merged V2.2 to V3.1
            14276: ETWOTWO-1224 / WCM-948 - browsing staging area during (commit of) large submit can cause AVMNotFoundException: Path /www/avm_webapps not found.
       14452: Add WCM services-based unit test for ETWOTWO-1224 / WCM-948
       14589: ETHREEOH-1646 - User Sandboxes aren't visible for Content Publisher
    15604: Merged V3.1 to V3.2
        14734: Merged V2.2 to V3.1
            14718: ETWOTWO-1244 - unable to revert some snapshots ("Does not exist: xxx")
        14852: Merged V2.2 to V3.1
            14720: ETWOTWO-1183 - "Show All Sandboxes" checkbox should only be visible for "Content Publisher" or "Content Manager"
        15032: Fix ETHREEOH-2240 - delete WCM web project (does not clean-up workflow sandboxes and also appears in archive store)
        15037: Fix ETHREEOH-2240 - follow-on for Alfresco Explorer's Manage (Review) Task Dialog
        15056: Fix ETHREEOH-2297 - WCM layered folder - problem deleting file
        15072: Minor - fix remote AVM test
    15605: Merged V3.1 to V3.2
        15082: Merged V2.2 to V3.1
            15081: AVM - add tests only
        15083: Fix ETHREEOH-2296 - user conflict when updating an AVM layered file
        15118: Merged V2.2 to V3.1
            15115: Fix ETWOTWO-1265 - WCM locking not working as expected (+ add WCM services test)
        15137: Fix ETHREEOH-2309 and ETHREEOH-227 - including refactor (& clean-up) of WCM-related actions
        15156: Fix ETHREEOH-2078 & ETHREEOH-2040 - WCM - deploy to localhost causes "Must have at least one store" errors
        15175: Fix ETHREEOH-2309 and ETHREEOH-227 - further clean-up of WCM submit/undo actions (for consistency)
        15190: Minor: message updates for WCM submit/undo actions


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@16858 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Jan Vonka
2009-10-13 11:34:23 +00:00
parent 69f987c456
commit 2eeefe0a72
33 changed files with 2983 additions and 323 deletions

View File

@@ -36,16 +36,20 @@ import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.permissions.AccessDeniedException;
import org.alfresco.service.cmr.avm.AVMExistsException;
import org.alfresco.service.cmr.avm.AVMNotFoundException;
import org.alfresco.service.cmr.avm.AVMService;
import org.alfresco.service.cmr.avm.AVMStoreDescriptor;
import org.alfresco.service.cmr.model.FileFolderService;
import org.alfresco.service.cmr.model.FileInfo;
import org.alfresco.service.cmr.repository.DuplicateChildNodeNameException;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.security.AuthenticationService;
import org.alfresco.service.cmr.security.AuthorityService;
import org.alfresco.service.cmr.security.AuthorityType;
import org.alfresco.service.cmr.security.PermissionService;
import org.alfresco.service.cmr.security.PersonService;
import org.alfresco.wcm.AbstractWCMServiceImplTest;
import org.alfresco.wcm.asset.AssetInfo;
import org.alfresco.wcm.sandbox.SandboxInfo;
import org.alfresco.wcm.util.WCMUtil;
/**
@@ -74,7 +78,6 @@ public class WebProjectServiceImplTest extends AbstractWCMServiceImplTest
private static final int SCALE_WEBPROJECTS = 5;
private static final int SCALE_WEBAPPS = 5;
//
// services
//
@@ -82,6 +85,8 @@ public class WebProjectServiceImplTest extends AbstractWCMServiceImplTest
private FileFolderService fileFolderService;
private AuthorityService authorityService;
private PermissionService permissionService;
private AVMService avmService;
private NodeService nodeService;
@Override
@@ -95,6 +100,8 @@ public class WebProjectServiceImplTest extends AbstractWCMServiceImplTest
fileFolderService = (FileFolderService)ctx.getBean("FileFolderService");
authorityService = (AuthorityService)ctx.getBean("AuthorityService");
permissionService = (PermissionService)ctx.getBean("PermissionService");
avmService = (AVMService)ctx.getBean("AVMService");
nodeService = (NodeService)ctx.getBean("NodeService");
createUser(USER_FIVE);
createUser(USER_SIX);
@@ -118,16 +125,6 @@ public class WebProjectServiceImplTest extends AbstractWCMServiceImplTest
deleteUser(USER_FIVE);
deleteUser(USER_SIX);
NodeRef wpRoot = wpService.getWebProjectsRoot();
List<FileInfo> list = fileFolderService.list(wpRoot);
for (FileInfo fileOrFolder : list)
{
if (fileOrFolder.getName().contains(TEST_RUN))
{
fileFolderService.delete(fileOrFolder.getNodeRef());
}
}
}
super.tearDown();
@@ -521,7 +518,7 @@ public class WebProjectServiceImplTest extends AbstractWCMServiceImplTest
// Switch back to admin
AuthenticationUtil.setFullyAuthenticatedUser(AuthenticationUtil.getAdminUserName());
// Delete the web project
wpService.deleteWebProject(wpStoreId);
assertNull(wpService.getWebProject(wpStoreId));
@@ -562,6 +559,47 @@ public class WebProjectServiceImplTest extends AbstractWCMServiceImplTest
// Delete the web project
wpService.deleteWebProject(TEST_WEBPROJ_DNS+"-delete2");
// Switch back to admin
AuthenticationUtil.setFullyAuthenticatedUser(AuthenticationUtil.getAdminUserName());
// Create another test web project
wpInfo = wpService.createWebProject(TEST_WEBPROJ_DNS+"-delete3", TEST_WEBPROJ_NAME+"-delete3", TEST_WEBPROJ_TITLE, TEST_WEBPROJ_DESCRIPTION, TEST_WEBPROJ_DEFAULT_WEBAPP, true, null);
wpStoreId = wpInfo.getStoreId();
NodeRef wpNodeRef = wpInfo.getNodeRef();
String defaultWebApp = wpInfo.getDefaultWebApp();
SandboxInfo sbInfo = sbService.getAuthorSandbox(wpStoreId);
final String authorSandboxId = sbInfo.getSandboxId();
// no changes yet
List<AssetInfo> assets = sbService.listChangedAll(authorSandboxId, true);
assertEquals(0, assets.size());
String authorSandboxPath = sbInfo.getSandboxRootPath() + "/" + defaultWebApp;
for (int i = 1; i <= 100; i++)
{
assetService.createFile(authorSandboxId, authorSandboxPath, "myFile-"+i, null);
}
sbService.submitAll(authorSandboxId, "s1", "s2");
// delete immediately - don't wait for async submit to finish - this should leave an in-flight workflow
wpService.deleteWebProject(wpStoreId);
List<AVMStoreDescriptor> avmStores = avmService.getStores();
for (AVMStoreDescriptor avmStore : avmStores)
{
assertFalse("Unexpected store: "+avmStore.getName(), avmStore.getName().startsWith(wpStoreId));
}
NodeRef wpArchiveNodeRef = new NodeRef(nodeService.getStoreArchiveNode(wpNodeRef.getStoreRef()).getStoreRef(), wpNodeRef.getId());
assertFalse(nodeService.exists(wpArchiveNodeRef));
// TODO add more tests when WCM services explicitly support WCM workflows (eg. submit approval)
}
public void testCreateWebApp()