Author: ltheussl
Date: Wed Jan 12 11:48:18 2011
New Revision: 1058092

URL: http://svn.apache.org/viewvc?rev=1058092&view=rev
Log:
add a special test for breadcrumbs

Modified:
    
maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritenceAssemblerTest.java

Modified: 
maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritenceAssemblerTest.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritenceAssemblerTest.java?rev=1058092&r1=1058091&r2=1058092&view=diff
==============================================================================
--- 
maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritenceAssemblerTest.java
 (original)
+++ 
maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritenceAssemblerTest.java
 Wed Jan 12 11:48:18 2011
@@ -22,6 +22,8 @@ package org.apache.maven.doxia.site.deco
 import java.io.IOException;
 import java.io.Reader;
 
+import java.util.List;
+
 import junit.framework.TestCase;
 
 import org.apache.maven.doxia.site.decoration.Banner;
@@ -603,6 +605,74 @@ public class DecorationModelInheritenceA
         assertEquals( "Check item", createLinkItem( "Foo", "" ), 
model.getBody().getBreadcrumbs().get( 0 ) );
     }
 
+    public void testBreadcrumbs()
+    {
+        String parentHref = "http://parent.com/index.html";;
+
+        final DecorationModel parent = new DecorationModel();
+        parent.setBody( new Body() );
+        parent.getBody().addBreadcrumb( createLinkItem( "Parent", parentHref ) 
);
+
+        DecorationModel child = new DecorationModel();
+        assembler.assembleModelInheritance( "childName", child, parent,
+                "http://parent.com/child";, "http://parent.com"; );
+        assertBreadcrumbsCorrect( child.getBody().getBreadcrumbs(), 
"childName", parentHref );
+
+
+        // same with trailing slash
+        child = new DecorationModel();
+        assembler.assembleModelInheritance( "childName", child, parent,
+                "http://parent.com/child/";, "http://parent.com/"; );
+        assertBreadcrumbsCorrect( child.getBody().getBreadcrumbs(), 
"childName", parentHref );
+
+        // now mixed
+        child = new DecorationModel();
+        assembler.assembleModelInheritance( "childName", child, parent,
+                "http://parent.com/child/";, "http://parent.com"; );
+        assertBreadcrumbsCorrect( child.getBody().getBreadcrumbs(), 
"childName", parentHref );
+
+        // and other way round
+        child = new DecorationModel();
+        assembler.assembleModelInheritance( "childName", child, parent,
+                "http://parent.com/child";, "http://parent.com/"; );
+        assertBreadcrumbsCorrect( child.getBody().getBreadcrumbs(), 
"childName", parentHref );
+
+
+        // now with child breadcrumb
+        child = new DecorationModel();
+        child.setBody( new Body() );
+        child.getBody().addBreadcrumb( createLinkItem( "Child", "" ) );
+        assembler.assembleModelInheritance( "childName", child, parent,
+                "http://parent.com/child/";, "http://parent.com/"; );
+        assertBreadcrumbsCorrect( child.getBody().getBreadcrumbs(), "Child", 
parentHref );
+
+
+        // now with file url
+        parentHref = "file://parent.com/index.html";
+        ( (LinkItem) parent.getBody().getBreadcrumbs().get( 0 ) ).setHref( 
parentHref );
+        child = new DecorationModel();
+        assembler.assembleModelInheritance( "childName", child, parent,
+                "file://parent.com/child/", "file://parent.com/" );
+        assertBreadcrumbsCorrect( child.getBody().getBreadcrumbs(), 
"childName", parentHref );
+
+
+        // now with scp url
+        parentHref = "scp://parent.com/index.html";
+        ( (LinkItem) parent.getBody().getBreadcrumbs().get( 0 ) ).setHref( 
parentHref );
+        child = new DecorationModel();
+        assembler.assembleModelInheritance( "childName", child, parent,
+                "scp://parent.com/child/", "scp://parent.com/" );
+        assertBreadcrumbsCorrect( child.getBody().getBreadcrumbs(), 
"childName", parentHref );
+    }
+
+    private static void assertBreadcrumbsCorrect( final List breadcrumbs, 
final String childName,
+            final String parentHref )
+    {
+        assertEquals( "Check size", 2, breadcrumbs.size() );
+        assertEquals( "Check parent item", createLinkItem( "Parent", 
parentHref ), breadcrumbs.get( 0 ) );
+        assertEquals( "Check child item", createLinkItem( childName, "" ), 
breadcrumbs.get( 1 ) );
+    }
+
     public void testBannerWithoutHref()
     {
         DecorationModel model = new DecorationModel();


Reply via email to