예제 #1
0
        public void GetMenus_SetsMenuToActiveIfItBelongsToCurrentAreaAndController()
        {
            routeValues["controller"] = "home";
            routeValues["action"]     = "index";
            routeValues["area"]       = null;

            MvcSiteMapNode     expected = parser.GetMenuNodes(siteMap).Single(menu => menu.Controller == "Home" && menu.Action == "Index");
            MvcSiteMapMenuNode actual   = TreeToEnumerable(provider.GetMenus().Where(menu => menu.IsActive)).Single();

            Assert.AreEqual(ResourceProvider.GetSiteMapTitle(expected.Area, expected.Controller, expected.Action), actual.Title);
            Assert.AreEqual(expected.IconClass, actual.IconClass);
            Assert.AreEqual(expected.Controller, actual.Controller);
            Assert.AreEqual(expected.Action, actual.Action);
            Assert.AreEqual(expected.Area, actual.Area);
            Assert.IsFalse(actual.HasActiveSubMenu);
            Assert.IsTrue(actual.IsActive);
        }
예제 #2
0
        public void GetMenus_SetsHasActiveSubmenuIfAnyOfItsSubmenusAreActiveOrHasActiveSubmenus()
        {
            routeValues["area"]       = "administration";
            routeValues["controller"] = "roles";
            routeValues["action"]     = "index";

            MvcSiteMapNode expected = parser.GetMenuNodes(siteMap).Single(menu => menu.Area == "Administration" && menu.Action == null);
            IEnumerable <MvcSiteMapMenuNode> actualMenus = TreeToEnumerable(provider.GetMenus()).Where(menu => menu.HasActiveSubMenu);
            MvcSiteMapMenuNode actual = actualMenus.Single();

            Assert.AreEqual(ResourceProvider.GetSiteMapTitle(expected.Area, expected.Controller, expected.Action), actual.Title);
            Assert.AreEqual(expected.IconClass, actual.IconClass);
            Assert.AreEqual(expected.Controller, actual.Controller);
            Assert.AreEqual(expected.Action, actual.Action);
            Assert.AreEqual(expected.Area, actual.Area);
            Assert.IsTrue(actual.HasActiveSubMenu);
            Assert.IsFalse(actual.IsActive);
        }