Added:
/trunk/src/main/resources/templates/cmis/doclink.vm
/trunk/src/test/java/com/sourcesense/confluence/cmis/TestDocLinkMacro.java
Modified:
/trunk/src/main/java/com/sourcesense/confluence/cmis/DoclinkMacro.java
/trunk/src/test/java/com/sourcesense/confluence/cmis/TestBaseCMISMacro.java
=======================================
--- /dev/null
+++ /trunk/src/main/resources/templates/cmis/doclink.vm Mon Jun 7 08:48:52
2010
@@ -0,0 +1,1 @@
+[$documentProperties.get("Name")|$documentLink]
=======================================
--- /dev/null
+++
/trunk/src/test/java/com/sourcesense/confluence/cmis/TestDocLinkMacro.java
Mon Jun 7 08:48:52 2010
@@ -0,0 +1,58 @@
+package com.sourcesense.confluence.cmis;
+
+import com.sourcesense.confluence.cmis.utils.ConfluenceCMISRepository;
+import com.sourcesense.confluence.cmis.utils.RepositoryStorage;
+import org.apache.chemistry.opencmis.client.api.*;
+import
org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException;
+import org.apache.log4j.Logger;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author Carlo Sciolla <c.sc...@sourcesense.com>
+ */
+public class TestDocLinkMacro extends AbstractBaseUnitTest
+{
+ Logger logger = Logger.getLogger(TestDocLinkMacro.class);
+
+ public void testRenderDocumentLink() throws Exception
+ {
+ Map<String, String> documentProperties = new HashMap<String,
String>();
+
+ Property<String> prop = createMockedProperty("Name", "A document
name.txt");
+ documentProperties.put(prop.getDisplayName(),
prop.getValueAsString());
+
+ vc.put("documentProperties", documentProperties);
+ vc.put("documentLink", "http://www.sourcesense.com");
+
+ String result = render("templates/cmis/doclink.vm");
+
+ assertEquals("[A document name.txt|http://www.sourcesense.com]",
result);
+ }
+
+ public void testCMISLinkGeneration()
+ {
+ RepositoryStorage repoStorage =
RepositoryStorage.getInstance(bandanaManager);
+
+ try
+ {
+ ConfluenceCMISRepository repo =
repoStorage.getRepository("test");
+ Session session = repo.getRepository().createSession();
+ ItemIterable<CmisObject> children =
session.getRootFolder().getChildren();
+ for (CmisObject obj : children)
+ {
+ if ("TODO.txt".equals(obj.getName()))
+ {
+ Document doc = (Document) obj;
+ logger.debug(doc);
+ }
+ }
+ }
+ catch (CmisRuntimeException e)
+ {
+ e.printStackTrace();
+ fail(e.getMessage());
+ }
+ }
+}
=======================================
--- /trunk/src/main/java/com/sourcesense/confluence/cmis/DoclinkMacro.java
Sat Jun 5 04:34:03 2010
+++ /trunk/src/main/java/com/sourcesense/confluence/cmis/DoclinkMacro.java
Mon Jun 7 08:48:52 2010
@@ -15,6 +15,7 @@
*/
package com.sourcesense.confluence.cmis;
+import com.atlassian.confluence.util.velocity.VelocityUtils;
import com.atlassian.renderer.RenderContext;
import com.atlassian.renderer.v2.macro.MacroException;
import com.sourcesense.confluence.cmis.utils.ConfluenceCMISRepository;
@@ -40,20 +41,9 @@
if (document == null) {
throw new MacroException("Cannot find any document with the
following ID: " + documentId);
}
- String link = Utils.getLink(session, confluenceCmisRepository,
documentId, useProxy);
-
- return renderDocumentLink(document, link);
- }
-
- protected String renderDocumentLink(Document document, String link) {
- StringBuilder out = new StringBuilder();
-
- out.append("[");
- out.append(document.getName());
- out.append("|");
- out.append(link);
- out.append("]");
-
- return out.toString();
+
+ renderContext.addParam(VM_DOCUMENT_LINK, Utils.getLink(session,
confluenceCmisRepository, documentId, useProxy));
+
+ return VelocityUtils.getRenderedTemplate("templates/cmis/doclink.vm",
renderContext.getParams());
}
}
=======================================
---
/trunk/src/test/java/com/sourcesense/confluence/cmis/TestBaseCMISMacro.java
Mon Jun 7 08:28:04 2010
+++
/trunk/src/test/java/com/sourcesense/confluence/cmis/TestBaseCMISMacro.java
Mon Jun 7 08:48:52 2010
@@ -99,24 +99,4 @@
}
}
-
- public void testCMISLinkGeneration() {
- RepositoryStorage repoStorage =
RepositoryStorage.getInstance(bandanaManager);
-
- try {
- ConfluenceCMISRepository repo = repoStorage.getRepository("test");
- Session session = repo.getRepository().createSession();
- ItemIterable<CmisObject> children =
session.getRootFolder().getChildren();
- for (CmisObject obj : children) {
- if ("TODO.txt".equals(obj.getName())) {
- Document doc = (Document) obj;
- logger.debug(doc);
- }
- }
- }
- catch (CmisRuntimeException e) {
- e.printStackTrace(); //To change body of catch statement use File |
Settings | File Templates.
- fail(e.getMessage());
- }
- }
-}
+}