mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
Merged RETURN-OF-THE-API (5.2.0) to 5.2.N (5.2.1)
128597 jvonka: REPO-900: Fix "autoRename not working if using a relativePath (with create/add node via json request)" git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@129175 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -1589,6 +1589,10 @@ public class NodesImpl implements Nodes
|
|||||||
props = mapToNodeProperties(nodeInfo.getProperties());
|
props = mapToNodeProperties(nodeInfo.getProperties());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Optionally, lookup by relative path
|
||||||
|
String relativePath = nodeInfo.getRelativePath();
|
||||||
|
parentNodeRef = getOrCreatePath(parentNodeRef, relativePath);
|
||||||
|
|
||||||
// Existing file/folder name handling
|
// Existing file/folder name handling
|
||||||
boolean autoRename = Boolean.valueOf(parameters.getParameter(PARAM_AUTO_RENAME));
|
boolean autoRename = Boolean.valueOf(parameters.getParameter(PARAM_AUTO_RENAME));
|
||||||
if (autoRename && (isContent || isSubClass(nodeTypeQName, ContentModel.TYPE_FOLDER)))
|
if (autoRename && (isContent || isSubClass(nodeTypeQName, ContentModel.TYPE_FOLDER)))
|
||||||
@@ -1601,9 +1605,6 @@ public class NodesImpl implements Nodes
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String relativePath = nodeInfo.getRelativePath();
|
|
||||||
parentNodeRef = getOrCreatePath(parentNodeRef, relativePath);
|
|
||||||
|
|
||||||
QName assocTypeQName = ContentModel.ASSOC_CONTAINS;
|
QName assocTypeQName = ContentModel.ASSOC_CONTAINS;
|
||||||
if ((nodeInfo.getAssociation() != null) && (nodeInfo.getAssociation().getAssocType() != null))
|
if ((nodeInfo.getAssociation() != null) && (nodeInfo.getAssociation().getAssocType() != null))
|
||||||
{
|
{
|
||||||
|
@@ -1960,17 +1960,35 @@ public class NodeApiTest extends AbstractBaseApiTest
|
|||||||
post(postUrl, user1, toJsonAsStringNonNull(f1), 409);
|
post(postUrl, user1, toJsonAsStringNonNull(f1), 409);
|
||||||
|
|
||||||
// Create a folder with a duplicate name (f1), but set the autoRename to true
|
// Create a folder with a duplicate name (f1), but set the autoRename to true
|
||||||
response = post(postUrl, user1, toJsonAsStringNonNull(f1), "?autoRename=true", 201);
|
response = post(postUrl, user1, toJsonAsStringNonNull(f1), "?"+Nodes.PARAM_AUTO_RENAME+"=true", 201);
|
||||||
documentResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Document.class);
|
documentResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Document.class);
|
||||||
assertEquals("f1-1", documentResp.getName());
|
assertEquals("f1-1", documentResp.getName());
|
||||||
|
|
||||||
// Create a folder with a duplicate name (f1) again, but set the autoRename to true
|
// Create a folder with a duplicate name (f1) again, but set the autoRename to true
|
||||||
response = post(postUrl, user1, toJsonAsStringNonNull(f1), "?autoRename=true", 201);
|
response = post(postUrl, user1, toJsonAsStringNonNull(f1), "?"+Nodes.PARAM_AUTO_RENAME+"=true", 201);
|
||||||
documentResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Document.class);
|
documentResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Document.class);
|
||||||
assertEquals("f1-2", documentResp.getName());
|
assertEquals("f1-2", documentResp.getName());
|
||||||
|
|
||||||
// -ve test - create a folder with a duplicate name (f1), but set the autoRename to false
|
// -ve test - create a folder with a duplicate name (f1), but set the autoRename to false
|
||||||
post(postUrl, user1, toJsonAsStringNonNull(f1), "?autoRename=false", 409);
|
post(postUrl, user1, toJsonAsStringNonNull(f1), "?"+Nodes.PARAM_AUTO_RENAME+"=false", 409);
|
||||||
|
|
||||||
|
// Create folder using relative path
|
||||||
|
n = new Node();
|
||||||
|
n.setName("fX");
|
||||||
|
n.setNodeType(TYPE_CM_FOLDER);
|
||||||
|
n.setRelativePath("/f1/f2");
|
||||||
|
|
||||||
|
response = post(postUrl, user1, toJsonAsStringNonNull(n), "?"+Nodes.PARAM_AUTO_RENAME+"=true", 201);
|
||||||
|
documentResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Document.class);
|
||||||
|
assertEquals("fX", documentResp.getName());
|
||||||
|
|
||||||
|
// Create a folder using relative path, with a duplicate name (fX) but set the autoRename to true
|
||||||
|
response = post(postUrl, user1, toJsonAsStringNonNull(n), "?"+Nodes.PARAM_AUTO_RENAME+"=true", 201);
|
||||||
|
documentResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Document.class);
|
||||||
|
assertEquals("fX-1", documentResp.getName());
|
||||||
|
|
||||||
|
// -ve test - create a folder with a duplicate name (fX), but set the autoRename to false
|
||||||
|
post(postUrl, user1, toJsonAsStringNonNull(n), "?"+Nodes.PARAM_AUTO_RENAME+"=false", 409);
|
||||||
|
|
||||||
// -ve test - invalid relative path
|
// -ve test - invalid relative path
|
||||||
n = new Node();
|
n = new Node();
|
||||||
@@ -2599,23 +2617,23 @@ public class NodeApiTest extends AbstractBaseApiTest
|
|||||||
post(postUrl, user1, toJsonAsStringNonNull(d1), 409);
|
post(postUrl, user1, toJsonAsStringNonNull(d1), 409);
|
||||||
|
|
||||||
// Create a file with a duplicate name (d1.txt), but set the autoRename to true
|
// Create a file with a duplicate name (d1.txt), but set the autoRename to true
|
||||||
response = post(postUrl, user1, toJsonAsStringNonNull(d1), "?autoRename=true", 201);
|
response = post(postUrl, user1, toJsonAsStringNonNull(d1), "?"+Nodes.PARAM_AUTO_RENAME+"=true", 201);
|
||||||
documentResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Document.class);
|
documentResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Document.class);
|
||||||
assertEquals("d1-1.txt", documentResp.getName());
|
assertEquals("d1-1.txt", documentResp.getName());
|
||||||
|
|
||||||
// Create a file with a duplicate name (d1.txt) again, but set the autoRename to true
|
// Create a file with a duplicate name (d1.txt) again, but set the autoRename to true
|
||||||
response = post(postUrl, user1, toJsonAsStringNonNull(d1), "?autoRename=true", 201);
|
response = post(postUrl, user1, toJsonAsStringNonNull(d1), "?"+Nodes.PARAM_AUTO_RENAME+"=true", 201);
|
||||||
documentResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Document.class);
|
documentResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Document.class);
|
||||||
assertEquals("d1-2.txt", documentResp.getName());
|
assertEquals("d1-2.txt", documentResp.getName());
|
||||||
|
|
||||||
// Create a file with a duplicate name (d1-2.txt) again, but set the autoRename to true
|
// Create a file with a duplicate name (d1-2.txt) again, but set the autoRename to true
|
||||||
d1.setName("d1-2.txt");
|
d1.setName("d1-2.txt");
|
||||||
response = post(postUrl, user1, toJsonAsStringNonNull(d1), "?autoRename=true", 201);
|
response = post(postUrl, user1, toJsonAsStringNonNull(d1), "?"+Nodes.PARAM_AUTO_RENAME+"=true", 201);
|
||||||
documentResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Document.class);
|
documentResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Document.class);
|
||||||
assertEquals("d1-2-1.txt", documentResp.getName());
|
assertEquals("d1-2-1.txt", documentResp.getName());
|
||||||
|
|
||||||
// -ve test - create a file with a duplicate name (d1-2.txt), but set the autoRename to false
|
// -ve test - create a file with a duplicate name (d1-2.txt), but set the autoRename to false
|
||||||
post(postUrl, user1, toJsonAsStringNonNull(d1), "?autoRename=false", 409);
|
post(postUrl, user1, toJsonAsStringNonNull(d1), "?"+Nodes.PARAM_AUTO_RENAME+"=false", 409);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user