in src/main/java/com/atlassian/uwc/hierarchies/SmfHierarchyTest.java [180:290]
public void testBuildRelationships_IllegalChars() {
String input, expected, actual;
tester.clearCollisions();
Page page = getSamplePage(TESTDIR +
"Badcharactersintitle_top4.txt", true);
HierarchyNode root = new HierarchyNode();
HierarchyNode node = tester.buildRelationships(page, root);
assertNotNull(node);
assertNull(node.getName());
HierarchyNode home = getFirstNode(node);
assertNotNull(home);
assertEquals(tester.DEFAULT_ROOTPAGENAME, home.getName());
HierarchyNode cat = getFirstNode(home);
assertNotNull(cat);
assertEquals("cat1", cat.getName());
assertNull(cat.getPage());
HierarchyNode brd = getFirstNode(cat);
assertNotNull(brd);
assertEquals("brd1", brd.getName());
assertNull(brd.getPage());
HierarchyNode top = getFirstNode(brd);
assertNotNull(top);
String exp = "Bad characters in title";
assertEquals(exp, top.getName());
assertNotNull(top.getPage());
assertEquals(exp, top.getPage().getName());
//starts with tilde ~
page = getSamplePage(TESTDIR +
"Badcharactersintitle_top9.txt", true);
node = null;
tester.clearCollisions();
node = tester.buildRelationships(page, root);
assertNotNull(node);
assertNull(node.getName());
home = getFirstNode(node);
assertNotNull(home);
assertEquals(tester.DEFAULT_ROOTPAGENAME, home.getName());
cat = getFirstNode(home);
assertNotNull(cat);
assertEquals("cat1", cat.getName());
assertNull(cat.getPage());
brd = getFirstNode(cat);
assertNotNull(brd);
assertEquals("brd1", brd.getName());
assertNull(brd.getPage());
top = getFirstNode(brd);
assertNotNull(top);
exp = "Bad characters in title";
assertEquals(exp, top.getName());
assertNotNull(top.getPage());
assertEquals(exp, top.getPage().getName());
// starts with dollar $
page = getSamplePage(TESTDIR +
"Badcharactersintitle_top10.txt", true);
node = null;
tester.clearCollisions();
node = tester.buildRelationships(page, root);
assertNotNull(node);
assertNull(node.getName());
home = getFirstNode(node);
assertNotNull(home);
assertEquals(tester.DEFAULT_ROOTPAGENAME, home.getName());
cat = getFirstNode(home);
assertNotNull(cat);
assertEquals("cat1", cat.getName());
assertNull(cat.getPage());
brd = getFirstNode(cat);
assertNotNull(brd);
assertEquals("brd1", brd.getName());
assertNull(brd.getPage());
top = getFirstNode(brd);
assertNotNull(top);
exp = "Bad characters in title";
assertEquals(exp, top.getName());
assertNotNull(top.getPage());
assertEquals(exp, top.getPage().getName());
// starts with double dot (..)
page = getSamplePage(TESTDIR +
"Badcharactersintitle_top11.txt", true);
node = null;
tester.clearCollisions();
node = tester.buildRelationships(page, root);
assertNotNull(node);
assertNull(node.getName());
home = getFirstNode(node);
assertNotNull(home);
assertEquals(tester.DEFAULT_ROOTPAGENAME, home.getName());
cat = getFirstNode(home);
assertNotNull(cat);
assertEquals("cat1", cat.getName());
assertNull(cat.getPage());
brd = getFirstNode(cat);
assertNotNull(brd);
assertEquals("brd1", brd.getName());
assertNull(brd.getPage());
top = getFirstNode(brd);
assertNotNull(top);
assertEquals(exp, top.getName());
assertNotNull(top.getPage());
assertEquals(exp, top.getPage().getName());
}