1 package net.sf.navigator.menu;
2
3 import junit.extensions.TestSetup;
4 import junit.framework.Test;
5 import junit.framework.TestCase;
6 import junit.framework.TestSuite;
7
8 import java.util.List;
9
10 /**
11 * @author DEPeart
12 *
13 */
14 public class MenuComponentTest extends TestCase {
15
16 public MenuComponentTest(String name) {
17 super(name);
18 }
19
20 static MenuComponent masterMenu;
21
22 public static Test suite() {
23 TestSuite suite = new TestSuite(MenuComponentTest.class);
24
25 return new TestSetup(suite) {
26 protected void setUp() throws Exception {
27 masterMenu = buildMenu();
28 }
29
30 protected void tearDown() throws Exception {
31 }
32 };
33 }
34
35 private static MenuComponent buildMenu() {
36 MenuComponent complex1 = new MenuComponent();
37 complex1.setName("complex1");
38 MenuComponent complex2 = new MenuComponent();
39 complex2.setName("complex1.1");
40 complex2.setParent(complex1);
41 MenuComponent complex3 = new MenuComponent();
42 complex3.setName("complex1.2");
43 complex3.setParent(complex1);
44 MenuComponent complex5 = new MenuComponent();
45 complex5.setName("complex1.2.1");
46 complex5.setParent(complex3);
47 MenuComponent complex4 = new MenuComponent();
48 complex4.setName("complex1.3");
49 complex4.setParent(complex1);
50 return complex1;
51 }
52
53 /**
54 * Ensure we remove the child menus for a parent menu
55 */
56 public void testRemoveChildren() {
57 MenuComponent parent = buildMenu();
58 assertEquals(3, parent.getComponents().size());
59 parent.removeChildren();
60 assertEquals(0, parent.getComponents().size());
61 }
62
63 /**
64 * Get the depth of a menu
65 */
66 public void testGetMenuDepth() {
67 assertEquals(3,masterMenu.getMenuDepth());
68 }
69
70 /**
71 * Build the breadcrumb name for a top menu item
72 */
73 public void testSetBreadCrumbTopMenu() {
74 MenuComponent menu = new MenuComponent();
75 menu.setName("parent");
76 menu.setBreadCrumb(".");
77 assertEquals("parent",menu.getBreadCrumb());
78 }
79
80 /**
81 * Build the breadcrumb name for child menu
82 */
83 public void testSetBreadCrumbChildMenu() {
84 masterMenu.setBreadCrumb(":");
85 List menus = masterMenu.getComponents();
86 MenuComponent menu = (MenuComponent) menus.get(0);
87 menu.setBreadCrumb(":");
88 assertEquals("complex1:complex1.1", menu.getBreadCrumb());
89 }
90 }