UNPKG

@qooxdoo/framework

Version:

The JS Framework for Coders

93 lines (70 loc) 2.34 kB
/* ************************************************************************ qooxdoo - the new era of web development http://qooxdoo.org Copyright: 2004-2008 1&1 Internet AG, Germany, http://www.1und1.de License: MIT: https://opensource.org/licenses/MIT See the LICENSE file in the project's top-level directory for details. Authors: * Christian Hagendorn (chris_schmidt) ************************************************************************ */ qx.Class.define("qx.test.ui.form.MenuButton", { extend: qx.test.ui.LayoutTestCase, members: { __menu: null, __menuButton: null, setUp() { super.setUp(); this.__menu = new qx.ui.menu.Menu(); this.__menu.add(new qx.ui.menu.Button("Undo")); this.__menu.add(new qx.ui.menu.Button("Redo")); this.__menu.add(new qx.ui.menu.Button("Cut")); this.__menuButton = new qx.ui.form.MenuButton( "Menu Button", null, this.__menu ); this.getRoot().add(this.__menuButton); this.flush(); }, tearDown() { super.tearDown(); var buttons = this.__menu.getChildren(); for (var i = 0; i < buttons.length; i++) { buttons[i].dispose(); } this.__menu.dispose(); this.__menuButton.dispose(); this.flush(); }, testOpen() { this.__menuButton.open(); this.assertTrue(this.__menu.isVisible()); this.assertNull(this.__menu.getSelectedButton()); qx.ui.menu.Manager.getInstance().hideAll(); this.assertFalse(this.__menu.isVisible()); }, testOpenSelectFirst() { this.__menuButton.open(true); this.assertTrue(this.__menu.isVisible()); this.assertEquals( this.__menu.getChildren()[0], this.__menu.getSelectedButton() ); qx.ui.menu.Manager.getInstance().hideAll(); this.assertFalse(this.__menu.isVisible()); }, testOpenSelectFirstWithDisabledElement() { this.__menu.getChildren()[0].setEnabled(false); this.__menuButton.open(true); this.assertTrue(this.__menu.isVisible()); this.assertEquals( this.__menu.getChildren()[1], this.__menu.getSelectedButton() ); qx.ui.menu.Manager.getInstance().hideAll(); this.assertFalse(this.__menu.isVisible()); } } });