svn commit: r753237 - /lenya/branches/BRANCH_2_0_X/src/modules-core/linking/java/test/org/apache/lenya/cms/linking/LinkTest.java

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
Author: andreas
Date: Fri Mar 13 13:22:54 2009
New Revision: 753237

URL: http://svn.apache.org/viewvc?rev=753237&view=rev
Log:
Adding test for cross-publication links.

Modified:
    lenya/branches/BRANCH_2_0_X/src/modules-core/linking/java/test/org/apache/lenya/cms/linking/LinkTest.java

Modified: lenya/branches/BRANCH_2_0_X/src/modules-core/linking/java/test/org/apache/lenya/cms/linking/LinkTest.java
URL: http://svn.apache.org/viewvc/lenya/branches/BRANCH_2_0_X/src/modules-core/linking/java/test/org/apache/lenya/cms/linking/LinkTest.java?rev=753237&r1=753236&r2=753237&view=diff
==============================================================================
--- lenya/branches/BRANCH_2_0_X/src/modules-core/linking/java/test/org/apache/lenya/cms/linking/LinkTest.java (original)
+++ lenya/branches/BRANCH_2_0_X/src/modules-core/linking/java/test/org/apache/lenya/cms/linking/LinkTest.java Fri Mar 13 13:22:54 2009
@@ -22,6 +22,7 @@
 import org.apache.lenya.ac.impl.AbstractAccessControlTest;
 import org.apache.lenya.cms.publication.Area;
 import org.apache.lenya.cms.publication.Document;
+import org.apache.lenya.cms.publication.DocumentFactory;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.site.SiteStructure;
 
@@ -29,28 +30,28 @@
  * Test for link functionality.
  */
 public class LinkTest extends AbstractAccessControlTest {
-    
+
     /**
      * Link test.
      * @throws Exception
      */
     public void testLinks() throws Exception {
-        
+
         Publication pub = getPublication("test");
         Area area = pub.getArea("authoring");
         SiteStructure site = area.getSite();
-        
+
         Document source = site.getNode("/index").getLink("en").getDocument();
         Document target = site.getNode("/tutorial").getLink("en").getDocument();
-        
+
         LinkManager linkManager = null;
         LinkResolver resolver = null;
         try {
             linkManager = (LinkManager) getManager().lookup(LinkManager.ROLE);
             resolver = (LinkResolver) getManager().lookup(LinkResolver.ROLE);
-            
+
             Link[] links = linkManager.getLinksFrom(source);
-            
+
             boolean matched = false;
             for (int i = 0; i < links.length; i++) {
                 LinkTarget linkTarget = resolver.resolve(source, links[i].getUri());
@@ -58,13 +59,12 @@
                     matched = true;
                 }
             }
-            
+
             assertTrue(matched);
-            
+
             Document[] references = linkManager.getReferencingDocuments(target);
             assertTrue(Arrays.asList(references).contains(source));
-        }
-        finally {
+        } finally {
             if (linkManager != null) {
                 getManager().release(linkManager);
             }
@@ -72,7 +72,45 @@
                 getManager().release(resolver);
             }
         }
-        
+
+    }
+
+    /**
+     * Test links across publications.
+     * @throws Exception
+     */
+    public void testInterPublicationLinks() throws Exception {
+
+        final Publication defaultPub = getPublication("default");
+        final Document[] docs = defaultPub.getArea(Publication.AUTHORING_AREA).getDocuments();
+        if (docs.length == 0) {
+            getLogger().warn("To run this test, the default publication has to contain documents.");
+        }
+
+        final Document source = docs[0];
+
+        final Publication pub = getPublication("test");
+        final Area area = pub.getArea("authoring");
+        final SiteStructure site = area.getSite();
+
+        final Document target = site.getNode("/index").getLink("en").getDocument();
+        final String relativeLink = "lenya-document:" + target.getUUID() + ",lang="
+                + target.getLanguage();
+        final String absoluteLink = relativeLink + ",pub=test";
+
+        LinkResolver resolver = null;
+        try {
+            resolver = (LinkResolver) getManager().lookup(LinkResolver.ROLE);
+
+            assertFalse(resolver.resolve(source, relativeLink).exists());
+            assertTrue(resolver.resolve(source, absoluteLink).exists());
+
+        } finally {
+            if (resolver != null) {
+                getManager().release(resolver);
+            }
+        }
+
     }
 
 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.