Merged BRANCHES/DEV/VF_REP_INT_51 to HEAD

ACE-4716 Can't rename a document in a virtual context from CMIS
ACE-4752 Type virtualization method does not work
ACE-4717 Document name is renamed when making "Check in" for a document edited in Google Docs
ACE-4700 Can't upload to a virtual folder when filename starts with a number and includes dashes


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@119450 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Mihai Cozma
2015-12-02 14:27:31 +00:00
parent 75a5b793e5
commit 6f16b07e61
29 changed files with 1228 additions and 422 deletions

View File

@@ -29,11 +29,14 @@ import java.util.List;
import java.util.Set;
import org.alfresco.model.ContentModel;
import org.alfresco.query.CannedQueryPageDetails;
import org.alfresco.query.PagingRequest;
import org.alfresco.query.PagingResults;
import org.alfresco.repo.content.MimetypeMap;
import org.alfresco.repo.virtual.VirtualizationIntegrationTest;
import org.alfresco.service.cmr.coci.CheckOutCheckInService;
import org.alfresco.service.cmr.model.FileInfo;
import org.alfresco.service.cmr.repository.MimetypeService;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
@@ -45,6 +48,7 @@ public class VirtualFileFolderServiceExtensionTest extends VirtualizationIntegra
{
private static final String NEW_FILE_NAME_2 = "RenameTest2";
private static final String NEW_FILE_NAME_1 = "RenamedTest";
@Test
@@ -126,22 +130,9 @@ public class VirtualFileFolderServiceExtensionTest extends VirtualizationIntegra
ContentModel.ASSOC_CONTAINS,
"Node2");
HashMap<QName, Serializable> properties = new HashMap<QName, Serializable>();
properties.put(ContentModel.PROP_NAME,
"testfile.txt");
QName assocQName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI,
QName.createValidLocalName("testfile.txt"));
nodeService.createNode(node1,
ContentModel.ASSOC_CONTAINS,
assocQName,
ContentModel.TYPE_CONTENT,
properties);
nodeService.createNode(node2,
ContentModel.ASSOC_CONTAINS,
assocQName,
ContentModel.TYPE_CONTENT,
properties);
String fileName="testfile.txt";
fileAndFolderService.create(node1, fileName, ContentModel.TYPE_CONTENT);
fileAndFolderService.create(node2, fileName, ContentModel.TYPE_CONTENT);
List<FileInfo> search = fileAndFolderService.search(virtualFolder1NodeRef,
"testfile.txt",
@@ -298,14 +289,14 @@ public class VirtualFileFolderServiceExtensionTest extends VirtualizationIntegra
contentName);
{
PagingResults<FileInfo> folderChildren = fileAndFolderService
.list(node2,
false,
true,
"*",
Collections.<QName> emptySet(),
Collections.<Pair<QName, Boolean>> emptyList(),
new PagingRequest(100));
PagingResults<FileInfo> folderChildren = fileAndFolderService.list(node2,
false,
true,
"*",
Collections.<QName> emptySet(),
Collections
.<Pair<QName, Boolean>> emptyList(),
new PagingRequest(100));
List<FileInfo> page = folderChildren.getPage();
assertContainsNames(page,
folderName);
@@ -314,14 +305,14 @@ public class VirtualFileFolderServiceExtensionTest extends VirtualizationIntegra
}
{
PagingResults<FileInfo> contentChildren = fileAndFolderService
.list(node2,
true,
false,
"*",
Collections.<QName> emptySet(),
Collections.<Pair<QName, Boolean>> emptyList(),
new PagingRequest(100));
PagingResults<FileInfo> contentChildren = fileAndFolderService.list(node2,
true,
false,
"*",
Collections.<QName> emptySet(),
Collections
.<Pair<QName, Boolean>> emptyList(),
new PagingRequest(100));
List<FileInfo> page = contentChildren.getPage();
assertMissesNames(page,
folderName);
@@ -403,7 +394,7 @@ public class VirtualFileFolderServiceExtensionTest extends VirtualizationIntegra
NodeRef childByName = nodeService.getChildByName(node2,
ContentModel.ASSOC_CONTAINS,
contentName);
//rename file in virtual context
// rename file in virtual context
FileInfo renamedFileInfo = fileAndFolderService.rename(childByName,
NEW_FILE_NAME_1);
assertNotNull(renamedFileInfo);
@@ -417,13 +408,13 @@ public class VirtualFileFolderServiceExtensionTest extends VirtualizationIntegra
ContentModel.ASSOC_CONTAINS,
contentName));
assertNotNull(nodeService.getChildByName(node2,
ContentModel.ASSOC_CONTAINS,
NEW_FILE_NAME_1));
ContentModel.ASSOC_CONTAINS,
NEW_FILE_NAME_1));
assertNotNull(nodeService.getChildByName(vf,
ContentModel.ASSOC_CONTAINS,
NEW_FILE_NAME_1));
ContentModel.ASSOC_CONTAINS,
NEW_FILE_NAME_1));
//rename physical file
// rename physical file
childByName = nodeService.getChildByName(vf,
ContentModel.ASSOC_CONTAINS,
NEW_FILE_NAME_1);
@@ -447,4 +438,181 @@ public class VirtualFileFolderServiceExtensionTest extends VirtualizationIntegra
NEW_FILE_NAME_2));
}
@Test
public void testListNamePattern() throws Exception
{
List<Pair<QName, Boolean>> sortProps = new ArrayList<Pair<QName, Boolean>>(1);
sortProps.add(new Pair<QName, Boolean>(ContentModel.PROP_NAME,
false));
String name = "A N.&ame.txt";
String name1 = "A N.&ame-1.txt";
String nameAfter = "XXName.txt";
NodeRef vf = createVirtualizedFolder(testRootFolder.getNodeRef(),
"TestVirtualFileFolderService_testVirtualFolderVirtualChild",
TEST_TEMPLATE_3_JSON_SYS_PATH);
NodeRef node1 = nodeService.getChildByName(vf,
ContentModel.ASSOC_CONTAINS,
"Node1");
createContent(node1,
name,
"0",
MimetypeMap.MIMETYPE_TEXT_PLAIN,
"UTF-8");
createContent(node1,
name1,
"01",
MimetypeMap.MIMETYPE_TEXT_PLAIN,
"UTF-8");
createContent(node1,
nameAfter,
"1",
MimetypeMap.MIMETYPE_TEXT_PLAIN,
"UTF-8");
String namePattern = "A N.&ame*.txt";
PagingResults<FileInfo> results = fileAndFolderService.list(node1,
true,
false,
namePattern,
null,
sortProps,
new PagingRequest(CannedQueryPageDetails.DEFAULT_PAGE_SIZE));
List<FileInfo> page = results.getPage();
assertEquals(2,
page.size());
assertEquals(page.get(0).getName(),
name1);
assertEquals(page.get(1).getName(),
name);
}
@Test
public void testLastDuplicate() throws Exception
{
NodeRef lastDup = null;
List<Pair<QName, Boolean>> sortProps = new ArrayList<Pair<QName, Boolean>>(1);
sortProps.add(new Pair<QName, Boolean>(ContentModel.PROP_NAME,
false));
String name = "AName.txt";
String nameAfter = "XXName.txt";
NodeRef vf = createVirtualizedFolder(testRootFolder.getNodeRef(),
"TestVirtualFileFolderService_testVirtualFolderVirtualChild",
TEST_TEMPLATE_3_JSON_SYS_PATH);
NodeRef node1 = nodeService.getChildByName(vf,
ContentModel.ASSOC_CONTAINS,
"Node1");
createContent(node1,
name,
"0",
MimetypeMap.MIMETYPE_TEXT_PLAIN,
"UTF-8");
NodeRef aNameNodeRef = nodeService.getChildByName(node1,
ContentModel.ASSOC_CHILDREN,
name);
createContent(node1,
nameAfter,
"1",
MimetypeMap.MIMETYPE_TEXT_PLAIN,
"UTF-8");
NodeRef nameAfterNodeRef = nodeService.getChildByName(node1,
ContentModel.ASSOC_CHILDREN,
nameAfter);
String namePattern = addWildCardInName(name,
fileAndFolderService
.getFileInfo(aNameNodeRef)
.getContentData()
.getMimetype());
PagingResults<FileInfo> results = fileAndFolderService
.list(nodeService.getPrimaryParent(aNameNodeRef).getParentRef(),
true,
false,
namePattern,
null,
sortProps,
new PagingRequest(CannedQueryPageDetails.DEFAULT_PAGE_SIZE));
List<FileInfo> page = results.getPage();
FileInfo fileInfo = null;
if (page.size() > 0)
{
fileInfo = page.get(0);
lastDup = fileInfo.getNodeRef();
}
assertFalse(lastDup.equals(nameAfterNodeRef));
}
private String addWildCardInName(String name, String mimetype)
{
MimetypeService mimetypeService = ctx.getBean("mimetypeService",
MimetypeService.class);
String extension = mimetypeService.getExtension(mimetype);
return name.substring(0,
name.length() - (extension.length() + 1))
.concat("*." + extension);
}
@Test
public void testListUsedWithCMIS() throws Exception
{
NodeRef vf = createVirtualizedFolder(testRootFolder.getNodeRef(),
"TestVirtualFileFolderService_testVirtualFolderVirtualChild",
TEST_TEMPLATE_3_JSON_SYS_PATH);
NodeRef node2 = nodeService.getChildByName(vf,
ContentModel.ASSOC_CONTAINS,
"Node2");
String contentName = "ContentVirtualChild";
createContent(node2,
contentName);
NodeRef childByName = nodeService.getChildByName(node2,
ContentModel.ASSOC_CONTAINS,
contentName);
FileInfo renamedFileInfo = fileAndFolderService.rename(childByName,
NEW_FILE_NAME_1);
assertNotNull(renamedFileInfo);
assertEquals(NEW_FILE_NAME_1,
nodeService.getProperty(childByName,
ContentModel.PROP_NAME));
List<Pair<QName, Boolean>> sortProps = Collections.<Pair<QName, Boolean>> emptyList();
PagingRequest pagingRequest = new PagingRequest(100);
PagingResults<FileInfo> results = fileAndFolderService.list(vf,
true,
true,
null,
sortProps,
pagingRequest);
assertNotNull(results);
assertEquals(3,
results.getPage().size());
String contentName1 = "ContentVirtualChild";
createContent(node2,
contentName1);
results = fileAndFolderService.list(vf,
true,
true,
null,
sortProps,
pagingRequest);
assertNotNull(results);
assertEquals(4,
results.getPage().size());
}
}