@Test
  public void testGetPageKeyByPath() {
    String keys;

    MenuItemEntity menuItem1 =
        factory.createSectionMenuItem(
            "name1",
            40,
            "menuName1",
            "displayName1",
            "The Newspaper",
            "aru",
            "aru",
            "en",
            "Hello World!",
            10,
            false,
            null,
            false,
            null);
    fixture.save(menuItem1);

    MenuItemEntity menuItem2 =
        factory.createSectionMenuItem(
            "name2",
            40,
            "menuName2",
            "displayName2",
            "The Newspaper",
            "aru",
            "aru",
            "en",
            "Hello World!",
            10,
            false,
            null,
            false,
            null);
    fixture.save(menuItem2);

    MenuItemEntity section = fixture.findMenuItemByName("Hello World!", 10);

    Collection<MenuItemEntity> children = section.getChildren();
    assertEquals(2, children.size());

    keys = menuItemService.getPageKeyByPath(section, "/");
    assertEquals(keys, "" + section.getKey());

    keys = menuItemService.getPageKeyByPath(section, "/Hello World!");
    assertEquals(keys, "" + section.getKey());

    keys = menuItemService.getPageKeyByPath(section, "/Hello World!/name1");
    assertEquals(keys, "" + menuItem1.getKey());

    keys = menuItemService.getPageKeyByPath(section, "/Hello World!/name2");
    assertEquals(keys, "" + menuItem2.getKey());

    keys = menuItemService.getPageKeyByPath(section, "/Hello World!/name2/nope");
    assertEquals(keys, "");

    keys = menuItemService.getPageKeyByPath(section, "/../");
    assertEquals(keys, "");

    keys = menuItemService.getPageKeyByPath(section, "/nope");
    assertEquals(keys, "");

    keys = menuItemService.getPageKeyByPath(section, "/Hello World!/");
    assertEquals(keys, "" + menuItem1.getKey() + "," + menuItem2.getKey());

    keys = menuItemService.getPageKeyByPath(section, ".");
    assertEquals(keys, "" + section.getKey());

    keys = menuItemService.getPageKeyByPath(section, "./");
    assertEquals(keys, "" + menuItem1.getKey() + "," + menuItem2.getKey());

    keys = menuItemService.getPageKeyByPath(section, "./name2");
    assertEquals(keys, "" + menuItem2.getKey());

    keys = menuItemService.getPageKeyByPath(section, "./../Hello World!/name2");
    assertEquals(keys, "" + menuItem2.getKey());

    keys = menuItemService.getPageKeyByPath(section, "./../../Hello World!/name2");
    assertEquals(keys, "");

    keys = menuItemService.getPageKeyByPath(section, "..");
    assertEquals(keys, "");

    keys = menuItemService.getPageKeyByPath(section, "../.");
    assertEquals(keys, "");

    keys = menuItemService.getPageKeyByPath(section, "../");
    assertEquals(keys, "" + section.getKey());

    keys = menuItemService.getPageKeyByPath(section, "../nope");
    assertEquals(keys, "");

    keys = menuItemService.getPageKeyByPath(section, "../../");
    assertEquals(keys, "");

    keys = menuItemService.getPageKeyByPath(section, "../..");
    assertEquals(keys, "");

    keys = menuItemService.getPageKeyByPath(section, "../../..");
    assertEquals(keys, "");

    keys = menuItemService.getPageKeyByPath(section, "nope");
    assertEquals(keys, "");

    keys = menuItemService.getPageKeyByPath(section, "./nope");
    assertEquals(keys, "");

    keys = menuItemService.getPageKeyByPath(menuItem1, ".");
    assertEquals(keys, "" + menuItem1.getKey());

    keys = menuItemService.getPageKeyByPath(menuItem1, "./");
    assertEquals(keys, "");

    keys = menuItemService.getPageKeyByPath(menuItem1, "..");
    assertEquals(keys, "" + section.getKey());

    keys = menuItemService.getPageKeyByPath(menuItem1, "./..");
    assertEquals(keys, "" + section.getKey());

    keys = menuItemService.getPageKeyByPath(menuItem1, "../");
    assertEquals(keys, "" + menuItem1.getKey() + "," + menuItem2.getKey());

    keys = menuItemService.getPageKeyByPath(menuItem1, "./../");
    assertEquals(keys, "" + menuItem1.getKey() + "," + menuItem2.getKey());

    keys = menuItemService.getPageKeyByPath(menuItem1, "./.././././");
    assertEquals(keys, "" + menuItem1.getKey() + "," + menuItem2.getKey());

    keys = menuItemService.getPageKeyByPath(menuItem1, "./././.././././");
    assertEquals(keys, "" + menuItem1.getKey() + "," + menuItem2.getKey());

    keys = menuItemService.getPageKeyByPath(menuItem1, "../name1");
    assertEquals(keys, "" + menuItem1.getKey());

    keys = menuItemService.getPageKeyByPath(menuItem1, "../name2");
    assertEquals(keys, "" + menuItem2.getKey());

    keys = menuItemService.getPageKeyByPath(menuItem1, "./../name1");
    assertEquals(keys, "" + menuItem1.getKey());

    keys = menuItemService.getPageKeyByPath(menuItem1, "./../name2");
    assertEquals(keys, "" + menuItem2.getKey());

    keys = menuItemService.getPageKeyByPath(menuItem1, "../../Hello World!");
    assertEquals(keys, "" + section.getKey());

    keys = menuItemService.getPageKeyByPath(menuItem1, "./../../Hello World!");
    assertEquals(keys, "" + section.getKey());

    keys = menuItemService.getPageKeyByPath(menuItem1, "../..");
    assertEquals(keys, "");

    keys = menuItemService.getPageKeyByPath(menuItem1, "../../..");
    assertEquals(keys, "");

    keys = menuItemService.getPageKeyByPath(menuItem1, "nope");
    assertEquals(keys, "");

    keys = menuItemService.getPageKeyByPath(menuItem1, "./nope");
    assertEquals(keys, "");

    keys = menuItemService.getPageKeyByPath(menuItem1, "./nope/.");
    assertEquals(keys, "");

    keys = menuItemService.getPageKeyByPath(menuItem1, "./nope/..");
    assertEquals(keys, "");

    keys = menuItemService.getPageKeyByPath(menuItem1, "../nope");
    assertEquals(keys, "");
  }