in src/main/java/com/atlassian/uwc/hierarchies/FilepathHierarchyTest.java [557:632]
public void testChangedPagename() { //UWC-297, could occur with page title framework usage
File dir = new File("sampleData/hierarchy/basic");
assertTrue(dir.isDirectory() && dir.exists());
tester.clearRootNode();
Properties properties = tester.getProperties();
properties.put("filepath-hierarchy-ignorable-ancestors", "sampleData/hierarchy/basic");
Vector<Page> pages = new Vector<Page>();
File[] files = dir.listFiles();
for (File file : files) {
if (file.getName().startsWith(".svn")) continue;
if (file.isDirectory()) {
File[] children = file.listFiles();
for (File child : children) {
if (child.getName().startsWith(".svn")) continue;
if (child.isFile()) {
Page page = new Page(child);
page.setName(child.getName().replaceFirst("\\.txt$", ""));
page.setPath(child.getPath().replaceFirst("[^\\/]*$", ""));
pages.add(page);
}
}
}
else {
Page page = new Page(file);
page.setName(file.getName().replaceFirst("\\.txt$", ""));
page.setPath(file.getPath().replaceFirst("[^\\/]*$", ""));
pages.add(page);
}
}
//make some page title changes
for (Page page : pages) {
if (page.getName().equals("Drink")) {
page.setName("Liquid");
}
if (page.getName().equals("Food")) {
page.setName("Comestibles");
}
}
HierarchyNode root = tester.buildHierarchy(pages);
assertNotNull(root);
assertEquals(6, root.countDescendants());
Collection<HierarchyNode> level1 = root.getChildren();
assertNotNull(level1);
assertEquals(2, level1.size());
for (HierarchyNode lvl1Node : level1) {
assertNotNull(lvl1Node);
if ("Food".equals(lvl1Node.getName())) fail("Still have Food node");
else if ("Food.txt".equals(lvl1Node.getName())) fail("Still have Drink node");
else if ("Drink".equals(lvl1Node.getName())) fail("Still have Drink node");
else if ("Drink.txt".equals(lvl1Node.getName())) fail("Still have Drink node");
else if ("Comestibles".equals(lvl1Node.getName())) {
assertEquals(3, lvl1Node.countDescendants());
Collection<HierarchyNode> level2 = lvl1Node.getChildren();
assertNotNull(level2);
assertEquals(2, level2.size());
for (HierarchyNode lvl2Node : level2) {
if ("Baklava".equals(lvl2Node.getName())) continue;
if ("Fruit".equals(lvl2Node.getName())) continue;
else fail("Unexpected node under Comestibles: " + lvl2Node.getName());
}
}
else if ("Liquid".equals(lvl1Node.getName())) {
assertEquals(2, lvl1Node.countDescendants());
Collection<HierarchyNode> level2 = lvl1Node.getChildren();
assertNotNull(level2);
assertEquals(1, level2.size());
for (HierarchyNode lvl2Node : level2) {
if ("Water".equals(lvl2Node.getName())) continue;
else fail("Unexpected node under Liquid: " + lvl2Node.getName());
}
}
}
}