diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/atomentry.lib.atom.ftl b/config/alfresco/templates/webscripts/org/alfresco/cmis/atomentry.lib.atom.ftl
index e0ee1461d9..cf4c6e7e1d 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/atomentry.lib.atom.ftl
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/atomentry.lib.atom.ftl
@@ -35,6 +35,7 @@
${xmldate(node.properties.modified)}
${absurl(url.context)}${node.icon16}
+${node.nodeRef}
[/@entry]
[/#macro]
@@ -83,6 +84,7 @@
${xmldate(node.properties.modified)}
${absurl(url.context)}${node.icon16}
+${node.nodeRef}
[/@entry]
[/#macro]
@@ -112,6 +114,7 @@
${xmldate(node.properties.modified)}
[#-- TODO: the edit link refers to the updatable node resource, allowing updates on PWCs without checkin --]
${absurl(url.context)}${node.icon16}
+${node.nodeRef}
[/@entry]
[/#macro]
@@ -149,6 +152,7 @@
${xmldate(node.properties.modified)}
${absurl(url.context)}${node.icon16}
+${node.nodeRef}
[/@entry]
[/#macro]
@@ -224,6 +228,7 @@
${absurl(url.context)}${node.icon16}
+${node.nodeRef}
[/@entry]
[/#macro]
diff --git a/source/java/org/alfresco/repo/cmis/rest/test/BaseCMISWebScriptTest.java b/source/java/org/alfresco/repo/cmis/rest/test/BaseCMISWebScriptTest.java
index 7406421ce2..8f7fc1eb43 100644
--- a/source/java/org/alfresco/repo/cmis/rest/test/BaseCMISWebScriptTest.java
+++ b/source/java/org/alfresco/repo/cmis/rest/test/BaseCMISWebScriptTest.java
@@ -34,6 +34,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import javax.xml.namespace.QName;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.dom.DOMSource;
import javax.xml.validation.Validator;
@@ -43,6 +44,7 @@ import junit.framework.Test;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.repo.cmis.rest.xsd.CMISValidator;
import org.alfresco.repo.web.scripts.BaseWebScriptTest;
+import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.util.Base64;
import org.alfresco.web.scripts.Format;
import org.alfresco.web.scripts.TestWebScriptServer.GetRequest;
@@ -58,6 +60,7 @@ import org.apache.abdera.ext.cmis.CMISObject;
import org.apache.abdera.ext.cmis.CMISRepositoryInfo;
import org.apache.abdera.i18n.iri.IRI;
import org.apache.abdera.model.Collection;
+import org.apache.abdera.model.Element;
import org.apache.abdera.model.Entry;
import org.apache.abdera.model.Feed;
import org.apache.abdera.model.Link;
@@ -613,5 +616,20 @@ public class BaseCMISWebScriptTest extends BaseWebScriptTest
Entry testFolder = createFolder(childrenLink.getHref(), name + " " + System.currentTimeMillis());
return testFolder;
}
+
+ //
+ // Alfresco specific helpers
+ //
+
+ protected NodeRef getNodeRef(Entry entry)
+ {
+ NodeRef nodeRef = null;
+ Element element = entry.getFirstChild(new QName("http://www.alfresco.org", "noderef"));
+ if (element != null)
+ {
+ nodeRef = new NodeRef(element.getText());
+ }
+ return nodeRef;
+ }
}
diff --git a/source/java/org/alfresco/repo/cmis/rest/test/CMISCustomTypeTest.java b/source/java/org/alfresco/repo/cmis/rest/test/CMISCustomTypeTest.java
index 9a15a1d6fc..4857b6b68c 100644
--- a/source/java/org/alfresco/repo/cmis/rest/test/CMISCustomTypeTest.java
+++ b/source/java/org/alfresco/repo/cmis/rest/test/CMISCustomTypeTest.java
@@ -24,6 +24,21 @@
*/
package org.alfresco.repo.cmis.rest.test;
+import java.io.Serializable;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.alfresco.repo.security.authentication.AuthenticationUtil;
+import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
+import org.alfresco.service.cmr.model.FileFolderService;
+import org.alfresco.service.cmr.model.FileInfo;
+import org.alfresco.service.cmr.repository.NodeRef;
+import org.alfresco.service.cmr.repository.NodeService;
+import org.alfresco.service.namespace.QName;
+import org.alfresco.web.scripts.TestWebScriptServer.GetRequest;
+import org.apache.abdera.i18n.iri.IRI;
+import org.apache.abdera.model.Entry;
/**
@@ -31,25 +46,80 @@ package org.alfresco.repo.cmis.rest.test;
*
* @author davidc
*/
-public class CMISCustomTypeTest extends CMISTest
+public class CMISCustomTypeTest extends BaseCMISWebScriptTest
{
+ private static String TEST_NAMESPACE = "http://www.alfresco.org/model/aiim";
+
@Override
protected void setUp()
throws Exception
{
- // Uncomment to change default behaviour of tests
+ // Uncomment to change default behaviour of tests
+ setCustomContext("classpath:cmis/cmis-test-context.xml");
setDefaultRunAs("admin");
-// RemoteServer server = new RemoteServer();
-// server.username = "admin";
-// server.password = "admin";
-// setRemoteServer(server);
+// RemoteServer server = new RemoteServer();
+// server.username = "admin";
+// server.password = "admin";
+// setRemoteServer(server);
// setArgsAsHeaders(false);
// setValidateResponse(false);
// setListener(new CMISTestListener(System.out));
// setTraceReqRes(true);
+
+// initServer("classpath:wcm/wcm-jbpm-context.xml");
+//
+// this.authenticationService = (AuthenticationService)getServer().getApplicationContext().getBean("AuthenticationService");
+// this.authenticationComponent = (AuthenticationComponent)getServer().getApplicationContext().getBean("authenticationComponent");
+// this.personService = (PersonService)getServer().getApplicationContext().getBean("PersonService");
+//
+// this.authenticationComponent.setSystemUserAsCurrentUser();
+//
+// // Create users
+// createUser(USER_ONE);
+// createUser(USER_TWO);
+// createUser(USER_THREE);
+// createUser(USER_FOUR);
+//
+// // Do tests as user one
+// this.authenticationComponent.setCurrentUser(USER_ONE);
+//
super.setUp();
}
+ public void testX()
+ throws Exception
+ {
+ IRI rootHREF = getRootChildrenCollection(getWorkspace(getRepository()));
+ sendRequest(new GetRequest(rootHREF.toString()), 200, getAtomValidator());
+ }
+
+
+ public void testCreateSubType()
+ throws Exception
+ {
+ final Entry testFolder = createTestFolder("testCreateSubType");
+ final NodeRef testFolderRef = getNodeRef(testFolder);
+
+ // create node
+ // TODO: For now create item via Alfresco foundation APIs
+ // When multi-valued props supported, move to pure CMIS Create
+ AuthenticationUtil.runAs(new RunAsWork