src/main/java/com/atlassian/uwc/hierarchies/DokuwikiHierarchyTest.java [458:533]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
		Properties props = tester.getProperties();
		props.setProperty("collision-titles-food", "Apple,Fruit");
		props.put("filepath-hierarchy-ext", "");
		String samplepath = "sampleData/hierarchy/dokuwiki-nodehome"; 
		props.put("filepath-hierarchy-ignorable-ancestors", samplepath);
		//set a property to identify the position of the homepage file
		props.put("hierarchy-homepage-position", "sibling"); //default is child
		//set a property to identify the homepage file 
		props.put("hierarchy-homepage-dokuwiki-filename", ""); //default is empty. means the nodename
		tester.setProperties(props);
		
		File sampledir = new File(samplepath);
		Collection<Page> pages = new Vector<Page>();
		assertTrue(sampledir.exists());
		File[] files = sampledir.listFiles(getLocalFilter());
		pages = createPages(pages, files);

		HierarchyNode root = tester.buildHierarchy(pages);
		assertNotNull(root); //root node
		assertNull(root.getName());
		assertNull(root.getPage());
		assertNull(root.getParent());
		assertNotNull(root.getChildren());
		
		Collection<HierarchyNode> top = root.getChildren();
		assertEquals(2, top.size());
		Vector<HierarchyNode> nodes0 = new Vector<HierarchyNode>();
		nodes0.addAll(top);
		String[] exp = {"Drink", "Food" };
		testNodeResults(nodes0, exp);
		
		//needs more than one level of parent to avoid collision
		HierarchyNode drink = getNode("Drink", nodes0);
		assertNotNull(drink);
		assertNotNull(drink.getPage());
		assertEquals(2, drink.getChildren().size());
		Vector<HierarchyNode> drinknodes1 = new Vector<HierarchyNode>();
		drinknodes1.addAll(drink.getChildren());
		String[] exp2 = {"Juice", "Water"};
		testNodeResults(drinknodes1, exp2);
		
		HierarchyNode juice = getNode("Juice", drinknodes1);
		assertNotNull(juice);
		assertNotNull(juice.getPage());
		assertEquals(1, juice.getChildren().size());
		Vector<HierarchyNode> juicenodes1 = new Vector<HierarchyNode>();
		juicenodes1.addAll(juice.getChildren());
		String[] exp3 = {"Juice Apple"};
		testNodeResults(juicenodes1, exp3);

		HierarchyNode food = getNode("Food", nodes0);
		assertNotNull(food);
		assertNotNull(food.getPage());
		assertEquals(3, food.getChildren().size());
		Vector<HierarchyNode> foodnodes = new Vector<HierarchyNode>();
		foodnodes.addAll(food.getChildren());
		String[] exppie = {"Baklava", "Food Fruit", "Pie"};
		testNodeResults(foodnodes, exppie);
		
		HierarchyNode piefruit = getNode("Pie", foodnodes);
		assertNotNull(piefruit);
		assertNull(piefruit.getPage());
		assertEquals(2, piefruit.getChildren().size());
		Vector<HierarchyNode> pienodes2 = new Vector<HierarchyNode>();
		pienodes2.addAll(piefruit.getChildren());
		String[] exppie2 = {"Pie Apple","Pie Fruit"};
		testNodeResults(pienodes2, exppie2);
		
		HierarchyNode piefruit2 = getNode("Pie Fruit", pienodes2);
		assertNotNull(piefruit2);
		assertNotNull(piefruit2.getPage());
		assertEquals(1, piefruit2.getChildren().size());
		Vector<HierarchyNode> pienodes3 = new Vector<HierarchyNode>();
		pienodes3.addAll(piefruit2.getChildren());
		String[] expfruit = {"Pie Fruit Apple"};
		testNodeResults(pienodes3, expfruit);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



src/main/java/com/atlassian/uwc/hierarchies/DokuwikiHierarchyTest.java [537:612]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
		Properties props = tester.getProperties();
		props.setProperty("collision-titles-food", "Apple,Fruit");
		props.put("filepath-hierarchy-ext", "");
		String samplepath = "sampleData/hierarchy/dokuwiki-nodehome"; 
		props.put("filepath-hierarchy-ignorable-ancestors", samplepath);
		//set a property to identify the position of the homepage file
		props.put("hierarchy-homepage-position", "sibling"); //default is child
		//set a property to identify the homepage file 
		props.put("hierarchy-homepage-dokuwiki-filename", ""); //default is empty. means the nodename
		tester.setProperties(props);
		
		File sampledir = new File(samplepath);
		Collection<Page> pages = new Vector<Page>();
		assertTrue(sampledir.exists());
		File[] files = sampledir.listFiles(getLocalFilter());
		pages = createPages(pages, files);

		HierarchyNode root = tester.buildHierarchy(pages);
		assertNotNull(root); //root node
		assertNull(root.getName());
		assertNull(root.getPage());
		assertNull(root.getParent());
		assertNotNull(root.getChildren());
		
		Collection<HierarchyNode> top = root.getChildren();
		assertEquals(2, top.size());
		Vector<HierarchyNode> nodes0 = new Vector<HierarchyNode>();
		nodes0.addAll(top);
		String[] exp = {"Drink", "Food" };
		testNodeResults(nodes0, exp);
		
		//needs more than one level of parent to avoid collision
		HierarchyNode drink = getNode("Drink", nodes0);
		assertNotNull(drink);
		assertNotNull(drink.getPage());
		assertEquals(2, drink.getChildren().size());
		Vector<HierarchyNode> drinknodes1 = new Vector<HierarchyNode>();
		drinknodes1.addAll(drink.getChildren());
		String[] exp2 = {"Juice", "Water"};
		testNodeResults(drinknodes1, exp2);
		
		HierarchyNode juice = getNode("Juice", drinknodes1);
		assertNotNull(juice);
		assertNotNull(juice.getPage());
		assertEquals(1, juice.getChildren().size());
		Vector<HierarchyNode> juicenodes1 = new Vector<HierarchyNode>();
		juicenodes1.addAll(juice.getChildren());
		String[] exp3 = {"Juice Apple"};
		testNodeResults(juicenodes1, exp3);

		HierarchyNode food = getNode("Food", nodes0);
		assertNotNull(food);
		assertNotNull(food.getPage());
		assertEquals(3, food.getChildren().size());
		Vector<HierarchyNode> foodnodes = new Vector<HierarchyNode>();
		foodnodes.addAll(food.getChildren());
		String[] exppie = {"Baklava", "Food Fruit", "Pie"};
		testNodeResults(foodnodes, exppie);
		
		HierarchyNode piefruit = getNode("Pie", foodnodes);
		assertNotNull(piefruit);
		assertNull(piefruit.getPage());
		assertEquals(2, piefruit.getChildren().size());
		Vector<HierarchyNode> pienodes2 = new Vector<HierarchyNode>();
		pienodes2.addAll(piefruit.getChildren());
		String[] exppie2 = {"Pie Apple","Pie Fruit"};
		testNodeResults(pienodes2, exppie2);
		
		HierarchyNode piefruit2 = getNode("Pie Fruit", pienodes2);
		assertNotNull(piefruit2);
		assertNotNull(piefruit2.getPage());
		assertEquals(1, piefruit2.getChildren().size());
		Vector<HierarchyNode> pienodes3 = new Vector<HierarchyNode>();
		pienodes3.addAll(piefruit2.getChildren());
		String[] expfruit = {"Pie Fruit Apple"};
		testNodeResults(pienodes3, expfruit);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



