// Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License. See License.txt in the project root for license information. // // /// module WinJSTests { "use strict"; var _element; var utils = Helper; export class NavBarTests { setUp() { LiveUnit.LoggingCore.logComment("In setup"); var newNode = document.createElement("div"); newNode.id = "navbarDiv"; newNode.style.height = "200px"; document.body.appendChild(newNode); _element = newNode; } tearDown() { LiveUnit.LoggingCore.logComment("In tearDown"); if (_element) { WinJS.Utilities.disposeSubTree(_element); document.body.removeChild(_element); _element = null; } } testNavBarInstantiationJS = function (complete) { var element = document.getElementById("navbarDiv"), navBar = new WinJS.UI.NavBar(element), className = "win-navbar"; LiveUnit.Assert.isTrue(WinJS.Utilities.hasClass(element, className), "CSS class not applied"); LiveUnit.Assert.areEqual(element, navBar.element); LiveUnit.Assert.areEqual(element.winControl, navBar); element.addEventListener("childrenprocessed", function () { complete(); }); }; testNavBarInstantiationMarkUp = function (complete) { var eventFired = false; var handler: any = function (e) { eventFired = true; }; handler.supportedForProcessing = true; window['handler'] = handler; var htmlStr = "
" + "
", parent = document.getElementById("navbarDiv"); parent.innerHTML = htmlStr; WinJS.UI.processAll(). then(function () { var element = document.getElementById("bar"), navbar = document.querySelector(".win-navbar").winControl; LiveUnit.Assert.areEqual(navbar.element, element, "Unexpected winControl"); return utils.waitForEvent(navbar, "afteropen", navbar.open.bind(navbar)); }). then(function () { LiveUnit.Assert.isTrue(eventFired); delete window['handler']; complete(); }); }; testNavBar_LayoutProperty = function () { var navBar; navBar = new WinJS.UI.NavBar(); LiveUnit.Assert.areEqual("custom", navBar._layout); }; testNavBarClosedDisplayModeProperty = function () { var navBar; navBar = new WinJS.UI.NavBar(); LiveUnit.Assert.areEqual("minimal", navBar.closedDisplayMode); navBar = new WinJS.UI.NavBar(null, { closedDisplayMode: "none" }); LiveUnit.Assert.areEqual("none", navBar.closedDisplayMode); navBar = new WinJS.UI.NavBar(); // The layout setter of the NavBar will respect the value 'none', anything else is consider 'minimal' navBar.closedDisplayMode = "compact"; LiveUnit.Assert.areEqual("minimal", navBar.closedDisplayMode); }; testNavBarPlacementProperty = function () { var navBar; navBar = new WinJS.UI.NavBar(); LiveUnit.Assert.areEqual("top", navBar.placement); navBar = new WinJS.UI.NavBar(null, { placement: "bottom" }); LiveUnit.Assert.areEqual("bottom", navBar.placement); navBar = new WinJS.UI.NavBar(); navBar.placement = "bottom"; LiveUnit.Assert.areEqual("bottom", navBar.placement); }; testNavBarDispose = function (complete) { var element = document.getElementById("navbarDiv"), navBar = new WinJS.UI.NavBar(element); utils.waitForEvent(navBar, "afteropen", navBar.open.bind(navBar)). then(function () { LiveUnit.Assert.isFalse(navBar._disposed); navBar.dispose(); LiveUnit.Assert.isTrue(navBar._disposed); navBar.dispose(); LiveUnit.Assert.isTrue(navBar._disposed); }). done(complete); }; testNavBarOpenedProperty = function (complete) { var navBar = new WinJS.UI.NavBar(document.getElementById("navbarDiv")); navBar.addEventListener("afteropen", function () { LiveUnit.Assert.isTrue(navBar.opened); navBar.opened = false; LiveUnit.Assert.isFalse(navBar.opened); navBar.addEventListener("afterclose", function () { LiveUnit.Assert.isFalse(navBar.opened); complete(); }); }); LiveUnit.Assert.isFalse(navBar.opened); navBar.opened = true; LiveUnit.Assert.isTrue(navBar.opened); }; }; } LiveUnit.registerTestClass("WinJSTests.NavBarTests");