@Test public void testOneLevelNoRecursiveIssue() throws Exception { when(navigationServices.loadNavTree()).thenReturn(new NavTreeBuilder() .group("groupA", "", "", true) .item("layout", "", "", true, NavWorkbenchCtx.perspective("B")) .endGroup() .build()); LayoutRecursionIssue info = layoutTemplateAnalyzer.analyzeRecursion(layoutA); assertTrue(info.isEmpty()); }
@Test public void testPerspectiveReuseNoRecursiveIssue() throws Exception { when(navigationServices.loadNavTree()).thenReturn(new NavTreeBuilder() .group("groupC", "", "", true) .item("layout", "", "", true, NavWorkbenchCtx.perspective("B")) .endGroup() .build()); LayoutRecursionIssue info = layoutTemplateAnalyzer.analyzeRecursion(layoutC); assertTrue(info.isEmpty()); }
@Test public void testPerspectiveReuseNoRecursiveIssue() throws Exception { when(navigationServices.loadNavTree()).thenReturn(new NavTreeBuilder() .group("groupC", "", "", true) .item("layout", "", "", true, NavWorkbenchCtx.perspective("B")) .endGroup() .build()); LayoutRecursionIssue info = layoutTemplateAnalyzer.analyzeRecursion(layoutC); assertTrue(info.isEmpty()); }
@Test public void testOneLevelNoRecursiveIssue() throws Exception { when(navigationServices.loadNavTree()).thenReturn(new NavTreeBuilder() .group("groupA", "", "", true) .item("layout", "", "", true, NavWorkbenchCtx.perspective("B")) .endGroup() .build()); LayoutRecursionIssue info = layoutTemplateAnalyzer.analyzeRecursion(layoutA); assertTrue(info.isEmpty()); }
@Test public void testSimpleRecursion() throws Exception { when(navigationServices.loadNavTree()).thenReturn(new NavTreeBuilder() .group("groupA", "", "", true) .item("layout", "", "", true, NavWorkbenchCtx.perspective("A")) .endGroup() .build()); LayoutRecursionIssue info = layoutTemplateAnalyzer.analyzeRecursion(layoutA); assertEquals(info.getRefList().size(), 4); assertEquals(info.getRefList().get(0), new LayoutNavigationRef(PERSPECTIVE, "A")); assertEquals(info.getRefList().get(1), new LayoutNavigationRef(NAV_COMPONENT, CAROUSEL.getFQClassName())); assertEquals(info.getRefList().get(2), new LayoutNavigationRef(NAV_GROUP_DEFINED, "groupA")); assertEquals(info.getRefList().get(3), new LayoutNavigationRef(PERSPECTIVE, "A")); }
@Test public void testSimpleRecursion() throws Exception { when(navigationServices.loadNavTree()).thenReturn(new NavTreeBuilder() .group("groupA", "", "", true) .item("layout", "", "", true, NavWorkbenchCtx.perspective("A")) .endGroup() .build()); LayoutRecursionIssue info = layoutTemplateAnalyzer.analyzeRecursion(layoutA); assertEquals(info.getRefList().size(), 4); assertEquals(info.getRefList().get(0), new LayoutNavigationRef(PERSPECTIVE, "A")); assertEquals(info.getRefList().get(1), new LayoutNavigationRef(NAV_COMPONENT, CAROUSEL.getFQClassName())); assertEquals(info.getRefList().get(2), new LayoutNavigationRef(NAV_GROUP_DEFINED, "groupA")); assertEquals(info.getRefList().get(3), new LayoutNavigationRef(PERSPECTIVE, "A")); }
@Before public void setUp() throws Exception { tabsAdmin = new NavTabListWidget(viewAdmin, beanManager, pluginManager, placeManager, navigationManager); tabsDashboards = new NavTabListWidget(viewDashboards, beanManager, pluginManager, placeManager, navigationManager); presenter = new NavTabListWidget(view, beanManager, pluginManager, placeManager, navigationManager); presenter.setGotoItemEnabled(true); tree = new NavTreeBuilder() .item(ITEM_ID_HOME, "Home", null, false, NavWorkbenchCtx.perspective(ITEM_ID_HOME)) .item(ITEM_ID_GALLERY, "Gallery", null, false, NavWorkbenchCtx.perspective(ITEM_ID_GALLERY)) .group(ITEM_ID_ADMIN, "Administration", null, false) .item(ITEM_ID_DATASETS, "Datasets", null, false, NavWorkbenchCtx.perspective(ITEM_ID_DATASETS)) .item(ITEM_ID_CONTENTMGMT, "Content Manager", null, false, NavWorkbenchCtx.perspective(ITEM_ID_CONTENTMGMT)) .endGroup() .group(ITEM_ID_DASHBOARDS, "Dashboards", null, false) .item(ITEM_ID_DASHBOARD1, "Dashboard 1", null, false, NavWorkbenchCtx.perspective(ITEM_ID_DASHBOARD1)) .item(ITEM_ID_DASHBOARD2, "Dashboard 2", null, false, NavWorkbenchCtx.perspective(ITEM_ID_DASHBOARD2)) .endGroup() .build(); when(beanManager.lookupBean(NavTabListWidget.class)).thenReturn(tablistBean); when(tablistBean.newInstance()).thenReturn(tabsAdmin, tabsDashboards); when(pluginManager.isRuntimePerspective(any(NavItem.class))).thenReturn(true); }
@Before public void setUp() throws Exception { tabsAdmin = new NavTabListWidget(viewAdmin, beanManager, pluginManager, placeManager, navigationManager); tabsDashboards = new NavTabListWidget(viewDashboards, beanManager, pluginManager, placeManager, navigationManager); presenter = new NavTabListWidget(view, beanManager, pluginManager, placeManager, navigationManager); presenter.setGotoItemEnabled(true); tree = new NavTreeBuilder() .item(ITEM_ID_HOME, "Home", null, false, NavWorkbenchCtx.perspective(ITEM_ID_HOME)) .item(ITEM_ID_GALLERY, "Gallery", null, false, NavWorkbenchCtx.perspective(ITEM_ID_GALLERY)) .group(ITEM_ID_ADMIN, "Administration", null, false) .item(ITEM_ID_DATASETS, "Datasets", null, false, NavWorkbenchCtx.perspective(ITEM_ID_DATASETS)) .item(ITEM_ID_CONTENTMGMT, "Content Manager", null, false, NavWorkbenchCtx.perspective(ITEM_ID_CONTENTMGMT)) .endGroup() .group(ITEM_ID_DASHBOARDS, "Dashboards", null, false) .item(ITEM_ID_DASHBOARD1, "Dashboard 1", null, false, NavWorkbenchCtx.perspective(ITEM_ID_DASHBOARD1)) .item(ITEM_ID_DASHBOARD2, "Dashboard 2", null, false, NavWorkbenchCtx.perspective(ITEM_ID_DASHBOARD2)) .endGroup() .build(); when(beanManager.lookupBean(NavTabListWidget.class)).thenReturn(tablistBean); when(tablistBean.newInstance()).thenReturn(tabsAdmin, tabsDashboards); when(pluginManager.isRuntimePerspective(any(NavItem.class))).thenReturn(true); }
@Test public void testNavGroupFromContext() throws Exception { when(navigationServices.loadNavTree()).thenReturn(new NavTreeBuilder() .group("groupC", "", "", true) .item("item1", "", "", true, NavWorkbenchCtx.perspective("A")) .endGroup() .group("groupX", "", "", true) .item("item2", "", "", true, NavWorkbenchCtx.perspective("C")) .endGroup() .build()); LayoutRecursionIssue info = layoutTemplateAnalyzer.analyzeRecursion(layoutC, new LayoutTemplateContext("groupX")); assertEquals(info.getRefList().size(), 5); assertEquals(info.getRefList().get(0), new LayoutNavigationRef(PERSPECTIVE, "C")); assertEquals(info.getRefList().get(1), new LayoutNavigationRef(NAV_COMPONENT, TABLIST.getFQClassName())); assertEquals(info.getRefList().get(2), new LayoutNavigationRef(NAV_GROUP_CONTEXT, "groupX")); assertEquals(info.getRefList().get(3), new LayoutNavigationRef(DEFAULT_ITEM_FOUND, "item2")); assertEquals(info.getRefList().get(4), new LayoutNavigationRef(PERSPECTIVE, "C")); }
@Test public void testNavGroupFromContext() throws Exception { when(navigationServices.loadNavTree()).thenReturn(new NavTreeBuilder() .group("groupC", "", "", true) .item("item1", "", "", true, NavWorkbenchCtx.perspective("A")) .endGroup() .group("groupX", "", "", true) .item("item2", "", "", true, NavWorkbenchCtx.perspective("C")) .endGroup() .build()); LayoutRecursionIssue info = layoutTemplateAnalyzer.analyzeRecursion(layoutC, new LayoutTemplateContext("groupX")); assertEquals(info.getRefList().size(), 5); assertEquals(info.getRefList().get(0), new LayoutNavigationRef(PERSPECTIVE, "C")); assertEquals(info.getRefList().get(1), new LayoutNavigationRef(NAV_COMPONENT, TABLIST.getFQClassName())); assertEquals(info.getRefList().get(2), new LayoutNavigationRef(NAV_GROUP_CONTEXT, "groupX")); assertEquals(info.getRefList().get(3), new LayoutNavigationRef(DEFAULT_ITEM_FOUND, "item2")); assertEquals(info.getRefList().get(4), new LayoutNavigationRef(PERSPECTIVE, "C")); }
@Test public void testIndirectRecursiveIssue() throws Exception { when(navigationServices.loadNavTree()).thenReturn(new NavTreeBuilder() .group("groupA", "", "", true) .item("layout", "", "", true, NavWorkbenchCtx.perspective("B")) .endGroup() .group("groupB", "", "", true) .item("layout", "", "", true, NavWorkbenchCtx.perspective("A")) .endGroup() .build()); LayoutRecursionIssue info = layoutTemplateAnalyzer.analyzeRecursion(layoutA); assertEquals(info.getRefList().size(), 7); assertEquals(info.getRefList().get(0), new LayoutNavigationRef(PERSPECTIVE, "A")); assertEquals(info.getRefList().get(1), new LayoutNavigationRef(NAV_COMPONENT, CAROUSEL.getFQClassName())); assertEquals(info.getRefList().get(2), new LayoutNavigationRef(NAV_GROUP_DEFINED, "groupA")); assertEquals(info.getRefList().get(3), new LayoutNavigationRef(PERSPECTIVE, "B")); assertEquals(info.getRefList().get(4), new LayoutNavigationRef(NAV_COMPONENT, CAROUSEL.getFQClassName())); assertEquals(info.getRefList().get(5), new LayoutNavigationRef(NAV_GROUP_DEFINED, "groupB")); assertEquals(info.getRefList().get(6), new LayoutNavigationRef(PERSPECTIVE, "A")); }
@Test public void testDefaultItemNoRecursiveIssue() throws Exception { layoutComponentC1.addProperty(NAV_DEFAULT_ID, "item2"); layoutComponentC2.addProperty(NAV_DEFAULT_ID, "item2"); when(navigationServices.loadNavTree()).thenReturn(new NavTreeBuilder() .group("groupC", "", "", true) .item("item1", "", "", true, NavWorkbenchCtx.perspective("C")) .item("item2", "", "", true, NavWorkbenchCtx.perspective("B")) .endGroup() .build()); LayoutRecursionIssue info = layoutTemplateAnalyzer.analyzeRecursion(layoutC); assertTrue(info.isEmpty()); }
@Test public void testFirstItemIndirectRecursiveIssue() throws Exception { when(navigationServices.loadNavTree()).thenReturn(new NavTreeBuilder() .group("groupA", "", "", true) .item("itemA", "", "", true, NavWorkbenchCtx.perspective("C")) .endGroup() .group("groupC", "", "", true) .item("itemC", "", "", true, NavWorkbenchCtx.perspective("A")) .endGroup() .build()); LayoutRecursionIssue info = layoutTemplateAnalyzer.analyzeRecursion(layoutC); assertEquals(info.getRefList().size(), 8); assertEquals(info.getRefList().get(0), new LayoutNavigationRef(PERSPECTIVE, "C")); assertEquals(info.getRefList().get(1), new LayoutNavigationRef(NAV_COMPONENT, TABLIST.getFQClassName())); assertEquals(info.getRefList().get(2), new LayoutNavigationRef(NAV_GROUP_DEFINED, "groupC")); assertEquals(info.getRefList().get(3), new LayoutNavigationRef(DEFAULT_ITEM_FOUND, "itemC")); assertEquals(info.getRefList().get(4), new LayoutNavigationRef(PERSPECTIVE, "A")); assertEquals(info.getRefList().get(5), new LayoutNavigationRef(NAV_COMPONENT, CAROUSEL.getFQClassName())); assertEquals(info.getRefList().get(6), new LayoutNavigationRef(NAV_GROUP_DEFINED, "groupA")); assertEquals(info.getRefList().get(7), new LayoutNavigationRef(PERSPECTIVE, "C")); }
@Before public void setUp() throws Exception { dropDownAdmin = new NavDropDownWidget(viewAdmin, beanManager, navigationManager); dropDownDashboards = new NavDropDownWidget(viewDashboards, beanManager, navigationManager); presenter = new NavMenuBarWidget(view, beanManager, pluginManager, placeManager, navigationManager); tree = new NavTreeBuilder() .item(ITEM_ID_HOME, "Home", null, false, NavWorkbenchCtx.perspective(ITEM_ID_HOME)) .item(ITEM_ID_GALLERY, "Gallery", null, false, NavWorkbenchCtx.perspective(ITEM_ID_GALLERY)) .group(ITEM_ID_ADMIN, "Administration", null, false) .item(ITEM_ID_DATASETS, "Datasets", null, false, NavWorkbenchCtx.perspective(ITEM_ID_DATASETS)) .item(ITEM_ID_CONTENTMGMT, "Content Manager", null, false, NavWorkbenchCtx.perspective(ITEM_ID_CONTENTMGMT)) .endGroup() .group(ITEM_ID_DASHBOARDS, "Dashboards", null, false) .item(ITEM_ID_DASHBOARD1, "Dashboard 1", null, false, NavWorkbenchCtx.perspective(ITEM_ID_DASHBOARD1)) .item(ITEM_ID_DASHBOARD2, "Dashboard 2", null, false, NavWorkbenchCtx.perspective(ITEM_ID_DASHBOARD2)) .endGroup() .build(); when(beanManager.lookupBean(NavDropDownWidget.class)).thenReturn(dropDownBean); when(dropDownBean.newInstance()).thenReturn(dropDownAdmin, dropDownDashboards); }
@Test public void testIndirectRecursiveIssue() throws Exception { when(navigationServices.loadNavTree()).thenReturn(new NavTreeBuilder() .group("groupA", "", "", true) .item("layout", "", "", true, NavWorkbenchCtx.perspective("B")) .endGroup() .group("groupB", "", "", true) .item("layout", "", "", true, NavWorkbenchCtx.perspective("A")) .endGroup() .build()); LayoutRecursionIssue info = layoutTemplateAnalyzer.analyzeRecursion(layoutA); assertEquals(info.getRefList().size(), 7); assertEquals(info.getRefList().get(0), new LayoutNavigationRef(PERSPECTIVE, "A")); assertEquals(info.getRefList().get(1), new LayoutNavigationRef(NAV_COMPONENT, CAROUSEL.getFQClassName())); assertEquals(info.getRefList().get(2), new LayoutNavigationRef(NAV_GROUP_DEFINED, "groupA")); assertEquals(info.getRefList().get(3), new LayoutNavigationRef(PERSPECTIVE, "B")); assertEquals(info.getRefList().get(4), new LayoutNavigationRef(NAV_COMPONENT, CAROUSEL.getFQClassName())); assertEquals(info.getRefList().get(5), new LayoutNavigationRef(NAV_GROUP_DEFINED, "groupB")); assertEquals(info.getRefList().get(6), new LayoutNavigationRef(PERSPECTIVE, "A")); }
@Before public void setUp() throws Exception { dropDownAdmin = new NavDropDownWidget(viewAdmin, beanManager, navigationManager); dropDownDashboards = new NavDropDownWidget(viewDashboards, beanManager, navigationManager); presenter = new NavMenuBarWidget(view, beanManager, pluginManager, placeManager, navigationManager); tree = new NavTreeBuilder() .item(ITEM_ID_HOME, "Home", null, false, NavWorkbenchCtx.perspective(ITEM_ID_HOME)) .item(ITEM_ID_GALLERY, "Gallery", null, false, NavWorkbenchCtx.perspective(ITEM_ID_GALLERY)) .group(ITEM_ID_ADMIN, "Administration", null, false) .item(ITEM_ID_DATASETS, "Datasets", null, false, NavWorkbenchCtx.perspective(ITEM_ID_DATASETS)) .item(ITEM_ID_CONTENTMGMT, "Content Manager", null, false, NavWorkbenchCtx.perspective(ITEM_ID_CONTENTMGMT)) .endGroup() .group(ITEM_ID_DASHBOARDS, "Dashboards", null, false) .item(ITEM_ID_DASHBOARD1, "Dashboard 1", null, false, NavWorkbenchCtx.perspective(ITEM_ID_DASHBOARD1)) .item(ITEM_ID_DASHBOARD2, "Dashboard 2", null, false, NavWorkbenchCtx.perspective(ITEM_ID_DASHBOARD2)) .endGroup() .build(); when(beanManager.lookupBean(NavDropDownWidget.class)).thenReturn(dropDownBean); when(dropDownBean.newInstance()).thenReturn(dropDownAdmin, dropDownDashboards); }
@Test public void testDefaultItemNoRecursiveIssue() throws Exception { layoutComponentC1.addProperty(NAV_DEFAULT_ID, "item2"); layoutComponentC2.addProperty(NAV_DEFAULT_ID, "item2"); when(navigationServices.loadNavTree()).thenReturn(new NavTreeBuilder() .group("groupC", "", "", true) .item("item1", "", "", true, NavWorkbenchCtx.perspective("C")) .item("item2", "", "", true, NavWorkbenchCtx.perspective("B")) .endGroup() .build()); LayoutRecursionIssue info = layoutTemplateAnalyzer.analyzeRecursion(layoutC); assertTrue(info.isEmpty()); }
@Test public void testFirstItemIndirectRecursiveIssue() throws Exception { when(navigationServices.loadNavTree()).thenReturn(new NavTreeBuilder() .group("groupA", "", "", true) .item("itemA", "", "", true, NavWorkbenchCtx.perspective("C")) .endGroup() .group("groupC", "", "", true) .item("itemC", "", "", true, NavWorkbenchCtx.perspective("A")) .endGroup() .build()); LayoutRecursionIssue info = layoutTemplateAnalyzer.analyzeRecursion(layoutC); assertEquals(info.getRefList().size(), 8); assertEquals(info.getRefList().get(0), new LayoutNavigationRef(PERSPECTIVE, "C")); assertEquals(info.getRefList().get(1), new LayoutNavigationRef(NAV_COMPONENT, TABLIST.getFQClassName())); assertEquals(info.getRefList().get(2), new LayoutNavigationRef(NAV_GROUP_DEFINED, "groupC")); assertEquals(info.getRefList().get(3), new LayoutNavigationRef(DEFAULT_ITEM_FOUND, "itemC")); assertEquals(info.getRefList().get(4), new LayoutNavigationRef(PERSPECTIVE, "A")); assertEquals(info.getRefList().get(5), new LayoutNavigationRef(NAV_COMPONENT, CAROUSEL.getFQClassName())); assertEquals(info.getRefList().get(6), new LayoutNavigationRef(NAV_GROUP_DEFINED, "groupA")); assertEquals(info.getRefList().get(7), new LayoutNavigationRef(PERSPECTIVE, "C")); }
@Test public void testDefaultItemRecursiveIssue() throws Exception { layoutComponentC1.addProperty(NAV_DEFAULT_ID, "item1"); layoutComponentC2.addProperty(NAV_DEFAULT_ID, "item1"); when(navigationServices.loadNavTree()).thenReturn(new NavTreeBuilder() .group("groupC", "", "", true) .item("item1", "", "", true, NavWorkbenchCtx.perspective("C")) .item("item2", "", "", true, NavWorkbenchCtx.perspective("B")) .endGroup() .build()); LayoutRecursionIssue info = layoutTemplateAnalyzer.analyzeRecursion(layoutC); assertEquals(info.getRefList().size(), 5); assertEquals(info.getRefList().get(0), new LayoutNavigationRef(PERSPECTIVE, "C")); assertEquals(info.getRefList().get(1), new LayoutNavigationRef(NAV_COMPONENT, TABLIST.getFQClassName())); assertEquals(info.getRefList().get(2), new LayoutNavigationRef(NAV_GROUP_DEFINED, "groupC")); assertEquals(info.getRefList().get(3), new LayoutNavigationRef(DEFAULT_ITEM_DEFINED, "item1")); assertEquals(info.getRefList().get(4), new LayoutNavigationRef(PERSPECTIVE, "C")); }
@Test public void testDefaultItemRecursiveIssue() throws Exception { layoutComponentC1.addProperty(NAV_DEFAULT_ID, "item1"); layoutComponentC2.addProperty(NAV_DEFAULT_ID, "item1"); when(navigationServices.loadNavTree()).thenReturn(new NavTreeBuilder() .group("groupC", "", "", true) .item("item1", "", "", true, NavWorkbenchCtx.perspective("C")) .item("item2", "", "", true, NavWorkbenchCtx.perspective("B")) .endGroup() .build()); LayoutRecursionIssue info = layoutTemplateAnalyzer.analyzeRecursion(layoutC); assertEquals(info.getRefList().size(), 5); assertEquals(info.getRefList().get(0), new LayoutNavigationRef(PERSPECTIVE, "C")); assertEquals(info.getRefList().get(1), new LayoutNavigationRef(NAV_COMPONENT, TABLIST.getFQClassName())); assertEquals(info.getRefList().get(2), new LayoutNavigationRef(NAV_GROUP_DEFINED, "groupC")); assertEquals(info.getRefList().get(3), new LayoutNavigationRef(DEFAULT_ITEM_DEFINED, "item1")); assertEquals(info.getRefList().get(4), new LayoutNavigationRef(PERSPECTIVE, "C")); }