diff --git a/xdoc/src/main/org/apache/maven/NavBean.java b/xdoc/src/main/org/apache/maven/NavBean.java
index d7484a57..48deb708 100644
--- a/xdoc/src/main/org/apache/maven/NavBean.java
+++ b/xdoc/src/main/org/apache/maven/NavBean.java
@@ -64,7 +64,7 @@ import org.dom4j.tree.DefaultElement;
/**
* @author Ben Walding
- * @version $Id: NavBean.java,v 1.4 2003/03/10 14:18:41 bwalding Exp $
+ * @version $Id: NavBean.java,v 1.5 2003/07/17 09:33:12 bwalding Exp $
*/
public class NavBean
{
@@ -95,6 +95,16 @@ public class NavBean
{
return getAttribute(elem, "href", null);
}
+
+ /**
+ * Assumes that the node is visible.
+ * @param o
+ * @return the number of children for this node
+ */
+ public int countChildren(DefaultElement elem) {
+ List l = elem.selectNodes("./item");
+ return l.size();
+ }
/**
* Determines if the given node is collapsed. If a parent of this node is
diff --git a/xdoc/src/test/org/apache/maven/NavBeanTest.java b/xdoc/src/test/org/apache/maven/NavBeanTest.java
index 9d51cf45..4ba72b4d 100644
--- a/xdoc/src/test/org/apache/maven/NavBeanTest.java
+++ b/xdoc/src/test/org/apache/maven/NavBeanTest.java
@@ -64,10 +64,11 @@ import junit.framework.TestCase;
import org.dom4j.Document;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
+import org.dom4j.tree.DefaultElement;
/**
* @author Ben Walding
- * @version $Id: NavBeanTest.java,v 1.2 2003/03/10 14:15:30 bwalding Exp $
+ * @version $Id: NavBeanTest.java,v 1.3 2003/07/17 09:33:12 bwalding Exp $
*/
public class NavBeanTest extends TestCase
{
@@ -80,7 +81,6 @@ public class NavBeanTest extends TestCase
testResources = new File(System.getProperty("basedir") + "/src/test-resources");
nb = new NavBean();
nb.setDocument(getTestDocument());
-
}
class Test
@@ -101,29 +101,29 @@ public class NavBeanTest extends TestCase
return reader.read(new FileInputStream(new File(testResources, "navigation.xml")));
}
- public void testAll() throws Exception
+ public void testCollapsed() throws Exception
{
- test("/alpha/index.html", "/alpha/index.html", false);
- test("/alpha/one/index.html", "/alpha/index.html", false);
- test("/alpha/two/index.html", "/alpha/index.html", false);
- test("/beta/index.html", "/alpha/index.html", true);
+ testCollapsed("/alpha/index.html", "/alpha/index.html", false);
+ testCollapsed("/alpha/one/index.html", "/alpha/index.html", false);
+ testCollapsed("/alpha/two/index.html", "/alpha/index.html", false);
+ testCollapsed("/beta/index.html", "/alpha/index.html", true);
- test("/alpha/index.html", "/beta/index.html", false);
- test("/alpha/one/index.html", "/beta/index.html", false);
- test("/alpha/two/index.html", "/beta/index.html", false);
- test("/beta/index.html", "/beta/index.html", false);
- test("/beta/one/index.html", "/beta/index.html", true);
- test("/beta/two/index.html", "/beta/index.html", true);
+ testCollapsed("/alpha/index.html", "/beta/index.html", false);
+ testCollapsed("/alpha/one/index.html", "/beta/index.html", false);
+ testCollapsed("/alpha/two/index.html", "/beta/index.html", false);
+ testCollapsed("/beta/index.html", "/beta/index.html", false);
+ testCollapsed("/beta/one/index.html", "/beta/index.html", true);
+ testCollapsed("/beta/two/index.html", "/beta/index.html", true);
- test("/alpha/index.html", "beta/index.html", false);
- test("/alpha/one/index.html", "beta/index.html", false);
- test("/alpha/two/index.html", "beta/index.html", false);
- test("/beta/index.html", "beta/index.html", false);
- test("/beta/one/index.html", "beta/index.html", true);
- test("/beta/two/index.html", "beta/index.html", true);
+ testCollapsed("/alpha/index.html", "beta/index.html", false);
+ testCollapsed("/alpha/one/index.html", "beta/index.html", false);
+ testCollapsed("/alpha/two/index.html", "beta/index.html", false);
+ testCollapsed("/beta/index.html", "beta/index.html", false);
+ testCollapsed("/beta/one/index.html", "beta/index.html", true);
+ testCollapsed("/beta/two/index.html", "beta/index.html", true);
}
- public void test(String href, String location, boolean expected)
+ public void testCollapsed(String href, String location, boolean expected)
{
nb.setLocation(location);
@@ -133,5 +133,24 @@ public class NavBeanTest extends TestCase
String s = "At location " + location + ", looking to generate link to " + href + ", expecting collapse = " + expected;
assertEquals(s, expected, nb.isCollapsed(node));
}
+
+ public void testCountChildren() throws Exception
+ {
+ testCountChildren("/alpha/index.html", 2);
+ testCountChildren("/alpha/one/index.html", 0);
+ testCountChildren("/alpha/two/index.html", 0);
+
+ testCountChildren("/beta/index.html", 2);
+ testCountChildren("/beta/one/index.html", 0);
+ testCountChildren("/beta/two/index.html", 0);
+ }
+ public void testCountChildren(String href, int expected)
+ {
+ Node node = nb.getFirstNodeByHREF(href);
+ assertNotNull(node);
+
+ String s = "At location " + href + ", expecting countChildren = " + expected;
+ assertEquals(s, expected, nb.countChildren((DefaultElement) node));
+ }
}