mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
Merged 5.1.N (5.1.1) to HEAD (5.2)
122555 aleahu: Merged 5.0.N (5.0.4) to 5.1.N (5.1.1) 122499 amorarasu: Merged V4.2-BUG-FIX (4.2.7) to 5.0.N (5.0.4) 122438 rneamtu: Merged V4.2.6 (4.2.6) to V4.2-BUG-FIX (4.2.7) 122396 amorarasu: MNT-13739: Site consumers are able to lock documents (they did not create) via WebDAV - Fixed failing tests + added a test for moving locked nodes. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@123677 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2005-2015 Alfresco Software Limited.
|
* Copyright (C) 2005-2016 Alfresco Software Limited.
|
||||||
*
|
*
|
||||||
* This file is part of Alfresco
|
* This file is part of Alfresco
|
||||||
*
|
*
|
||||||
@@ -77,6 +77,8 @@ public class MoveMethodTest
|
|||||||
private NodeRef rootNode;
|
private NodeRef rootNode;
|
||||||
private @Mock FileFolderService mockFileFolderService;
|
private @Mock FileFolderService mockFileFolderService;
|
||||||
private @Mock WebDAVLockService davLockService;
|
private @Mock WebDAVLockService davLockService;
|
||||||
|
private @Mock ServiceRegistry mockServiceRegistry;
|
||||||
|
private @Mock ContentService mockContentService;
|
||||||
private String destPath;
|
private String destPath;
|
||||||
private String sourcePath;
|
private String sourcePath;
|
||||||
private FileInfo sourceFileInfo;
|
private FileInfo sourceFileInfo;
|
||||||
@@ -200,7 +202,8 @@ public class MoveMethodTest
|
|||||||
moveMethod.moveOrCopy(sourceNodeRef, sourceParentNodeRef, destParentNodeRef, "dest.doc");
|
moveMethod.moveOrCopy(sourceNodeRef, sourceParentNodeRef, destParentNodeRef, "dest.doc");
|
||||||
|
|
||||||
verify(mockFileFolderService).rename(sourceNodeRef, "dest.doc");
|
verify(mockFileFolderService).rename(sourceNodeRef, "dest.doc");
|
||||||
verify(davLockService).unlock(sourceNodeRef);
|
// sourceNodeRef is not locked, so unlock should not be called after rename
|
||||||
|
verify(davLockService, never()).unlock(sourceNodeRef);
|
||||||
verify(mockFileFolderService, never()).create(destParentNodeRef, "dest.doc", ContentModel.TYPE_CONTENT);
|
verify(mockFileFolderService, never()).create(destParentNodeRef, "dest.doc", ContentModel.TYPE_CONTENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -214,11 +217,68 @@ public class MoveMethodTest
|
|||||||
// Test: Perform the rename
|
// Test: Perform the rename
|
||||||
moveMethod.moveOrCopy(sourceNodeRef, sourceParentNodeRef, destParentNodeRef, "dest.doc");
|
moveMethod.moveOrCopy(sourceNodeRef, sourceParentNodeRef, destParentNodeRef, "dest.doc");
|
||||||
|
|
||||||
|
|
||||||
verify(mockFileFolderService).rename(sourceNodeRef, "dest.doc");
|
verify(mockFileFolderService).rename(sourceNodeRef, "dest.doc");
|
||||||
verify(davLockService).unlock(sourceNodeRef);
|
// sourceNodeRef is not locked, so unlock should not be called after rename
|
||||||
|
verify(davLockService, never()).unlock(sourceNodeRef);
|
||||||
verify(mockFileFolderService, never()).create(destParentNodeRef, "dest.doc", ContentModel.TYPE_CONTENT);
|
verify(mockFileFolderService, never()).create(destParentNodeRef, "dest.doc", ContentModel.TYPE_CONTENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void canMoveFileUnlock() throws Exception
|
||||||
|
{
|
||||||
|
moveMethod = new MoveMethod()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
protected LockInfo checkNode(FileInfo fileInfo, boolean ignoreShared, boolean lockMethod) throws WebDAVServerException
|
||||||
|
{
|
||||||
|
LockInfoImpl lockInfo = new LockInfoImpl();
|
||||||
|
lockInfo.setExclusiveLockToken("opaque-lock-token");
|
||||||
|
lockInfo.setDepth(WebDAV.INFINITY);
|
||||||
|
lockInfo.setScope(WebDAV.XML_EXCLUSIVE);
|
||||||
|
return lockInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected LockInfo checkNode(FileInfo fileInfo) throws WebDAVServerException
|
||||||
|
{
|
||||||
|
return checkNode(fileInfo, false, false);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
moveMethod.setDetails(req, resp, davHelper, rootNode);
|
||||||
|
|
||||||
|
sourceFileInfo = Mockito.mock(FileInfo.class);
|
||||||
|
when(sourceFileInfo.isFolder()).thenReturn(true);
|
||||||
|
|
||||||
|
destPath = "/path/to/test.doc";
|
||||||
|
moveMethod.m_strDestinationPath = destPath;
|
||||||
|
|
||||||
|
sourcePath = "/path/from/test.doc";
|
||||||
|
moveMethod.m_strPath = sourcePath;
|
||||||
|
|
||||||
|
when(davHelper.getServiceRegistry()).thenReturn(mockServiceRegistry);
|
||||||
|
when(mockServiceRegistry.getContentService()).thenReturn(mockContentService);
|
||||||
|
|
||||||
|
List<String> sourcePathSplit = Arrays.asList("path", "from", "test.doc");
|
||||||
|
when(davHelper.splitAllPaths(sourcePath)).thenReturn(sourcePathSplit);
|
||||||
|
|
||||||
|
List<String> destPathSplit = Arrays.asList("path", "to", "dest.doc");
|
||||||
|
when(davHelper.splitAllPaths(destPath)).thenReturn(destPathSplit);
|
||||||
|
|
||||||
|
when(mockFileFolderService.resolveNamePath(rootNode, sourcePathSplit)).thenReturn(sourceFileInfo);
|
||||||
|
|
||||||
|
FileInfo destFileInfo = Mockito.mock(FileInfo.class);
|
||||||
|
when(mockFileFolderService.resolveNamePath(rootNode, destPathSplit)).thenReturn(destFileInfo);
|
||||||
|
|
||||||
|
sourceParentNodeRef = new NodeRef("workspace://SpacesStore/parent1");
|
||||||
|
destParentNodeRef = new NodeRef("workspace://SpacesStore/parent2");
|
||||||
|
sourceNodeRef = new NodeRef("workspace://SpacesStore/sourcefile");
|
||||||
|
|
||||||
|
moveMethod.moveOrCopy(sourceNodeRef, sourceParentNodeRef, destParentNodeRef, "test.doc");
|
||||||
|
|
||||||
|
verify(mockFileFolderService).moveFrom(sourceNodeRef, sourceParentNodeRef, destParentNodeRef, "test.doc");
|
||||||
|
verify(davLockService).unlock(sourceNodeRef);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testMNT_13144() throws Exception
|
public void testMNT_13144() throws Exception
|
||||||
@@ -302,7 +362,6 @@ public class MoveMethodTest
|
|||||||
moveMethod.moveOrCopy(atmpFI.getNodeRef(), companyHomeNodeRef, companyHomeNodeRef, bakFileName);
|
moveMethod.moveOrCopy(atmpFI.getNodeRef(), companyHomeNodeRef, companyHomeNodeRef, bakFileName);
|
||||||
|
|
||||||
verify(mockFileFolderService).rename(atmpFI.getNodeRef(), bakFileName);
|
verify(mockFileFolderService).rename(atmpFI.getNodeRef(), bakFileName);
|
||||||
verify(davLockService).unlock(atmpFI.getNodeRef());
|
|
||||||
verify(mockFileFolderService, never()).create(destParentNodeRef, bakFileName, ContentModel.TYPE_CONTENT);
|
verify(mockFileFolderService, never()).create(destParentNodeRef, bakFileName, ContentModel.TYPE_CONTENT);
|
||||||
|
|
||||||
// move webdav method tmp copy content to dwg
|
// move webdav method tmp copy content to dwg
|
||||||
|
Reference in New Issue
Block a user