UNPKG

@qooxdoo/framework

Version:

The JS Framework for Coders

429 lines (342 loc) 10.9 kB
/* ************************************************************************ qooxdoo - the new era of web development http://qooxdoo.org Copyright: 2007-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: * Fabian Jakobs (fjakobs) ************************************************************************ */ qx.Class.define("qx.test.ui.Destroy", { extend : qx.test.ui.LayoutTestCase, statics : { $$clazz : null, $$args : null }, members : { /** * @lint ignoreDeprecated(eval) */ assertLayoutDispose : function(clazz, args, layoutArgsArr) { this.assertDestroy(function() { var argStr = []; for (var i=0; i<args.length; i++) { argStr.push("qx.test.ui.Destroy.$$args[" + i + "]"); } qx.test.ui.Destroy.$$clazz = clazz; qx.test.ui.Destroy.$$args = args; var str = "new qx.test.ui.Destroy.$$clazz(" + argStr.join(", ") + ");"; var layout = eval(str); var widget = new qx.ui.container.Composite(); widget.setLayout(layout); for (var i=0; i<layoutArgsArr.length; i++) { widget.add(new qx.ui.core.Widget(), layoutArgsArr[i]); } this.getRoot().add(widget); this.flush(); widget.destroy(); }, this); }, testLayouts : function() { var layouts = [ [qx.ui.layout.Basic, [], [{left: 10}, {top: 10}, {left: 10, top: 10}]], [qx.ui.layout.Canvas, [], [{left: 10}, {top: 10}, {right: 10, top: "10%"}]], [qx.ui.layout.Dock, [], [{edge: "north"}, {edge: "south"}, {edge: "west"}, {edge: "east"}]], [qx.ui.layout.Grow, [], [{}]], [qx.ui.layout.HBox, [], [{flex: 1}, {}, {}]], [qx.ui.layout.VBox, [], [{flex: 1}, {}, {}]], [qx.ui.layout.Grid, [], [{row: 0, column: 0}, {row: 4, column: 3}, {row: 2, column: 0, colSpan: 3}]] ]; for (var i=0; i<layouts.length; i++) { this.assertLayoutDispose(layouts[i][0], layouts[i][1], layouts[i][2]); } }, testForms : function() { var forms = [ [qx.ui.form.Button, ["Juhu"]], [qx.ui.form.ComboBox, []], [qx.ui.form.CheckBox, ["Juhu"]], [qx.ui.form.PasswordField, []], [qx.ui.form.RadioButton, []], [qx.ui.form.SelectBox, []], [qx.ui.form.Slider, []], [qx.ui.form.Spinner, []], [qx.ui.form.SplitButton, []], [qx.ui.form.TextArea, []], [qx.ui.form.TextField, []], [qx.ui.form.ToggleButton, []] ]; for (var i=0; i<forms.length; i++) { this.assertWidgetDispose(forms[i][0], forms[i][1], "Disposing " + forms[i][0].classname); } this.assertDestroy(function() { var widget = new qx.ui.form.MenuButton(); var menu = this.__createMenu(); widget.setMenu(menu); this.getRoot().add(widget); this.flush(); widget.destroy(); menu.destroy(); }, this, "Dispose menu button"); }, testBasic : function() { var forms = [ [qx.ui.basic.Atom, ["Juhu"]], [qx.ui.basic.Label, ["Juhu"]], [qx.ui.basic.Image, []] ]; for (var i=0; i<forms.length; i++) { this.assertWidgetDispose(forms[i][0], forms[i][1], "Disposing " + forms[i][0].classname); } }, testContainer : function() { var forms = [ [qx.ui.container.Composite, []], [qx.ui.container.Resizer, []], [qx.ui.container.Scroll, []], [qx.ui.container.SlideBar, []], [qx.ui.container.Stack, []] ]; for (var i=0; i<forms.length; i++) { this.assertWidgetDispose(forms[i][0], forms[i][1], "Disposing " + forms[i][0].classname); } }, testControls : function() { var forms = [ [qx.ui.control.ColorSelector, []], [qx.ui.control.DateChooser, []] ]; for (var i=0; i<forms.length; i++) { this.assertWidgetDispose(forms[i][0], forms[i][1], "Disposing " + forms[i][0].classname); } this.assertDestroy(function() { var widget = new qx.ui.control.ColorPopup(); widget.show(); this.flush(); widget.destroy(); }, this, "Dispose color popup"); this.assertDestroy(function() { var widget = new qx.ui.control.ColorPopup(); widget.show(); widget.getChildControl("selector-button").execute(); this.flush(); widget.destroy(); qx.ui.core.queue.Dispose.flush(); }, this, "Dispose color popup with selector open"); }, testCore : function() { var forms = [ [qx.ui.core.scroll.ScrollBar, []], [qx.ui.core.scroll.NativeScrollBar, []], [qx.ui.core.scroll.ScrollPane, []], [qx.ui.core.scroll.ScrollSlider, []], [qx.ui.core.Widget, []] ]; for (var i=0; i<forms.length; i++) { this.assertWidgetDispose(forms[i][0], forms[i][1], "Disposing " + forms[i][0].classname); } }, testEmbeds : function() { var forms = [ [qx.ui.embed.Html, ["Juhu <b>Kinners</b>"]], [qx.ui.embed.Canvas, []], [qx.ui.embed.Iframe, []] ]; for (var i=0; i<forms.length; i++) { this.assertWidgetDispose(forms[i][0], forms[i][1], "Disposing " + forms[i][0].classname); } }, testGroupBox : function() { var forms = [ [qx.ui.groupbox.CheckGroupBox, []], [qx.ui.groupbox.GroupBox, []], [qx.ui.groupbox.RadioGroupBox, []] ]; for (var i=0; i<forms.length; i++) { this.assertWidgetDispose(forms[i][0], forms[i][1], "Disposing " + forms[i][0].classname); } }, testMenu : function() { this.assertDestroy(function() { var menu = new qx.ui.menu.Menu(); var btn = new qx.ui.menu.Button("Juhu"); menu.add(btn); menu.add(new qx.ui.menu.CheckBox("Juhu")); menu.add(new qx.ui.menu.RadioButton("Juhu")); menu.add(new qx.ui.menu.Separator("Juhu")); var subMenu = new qx.ui.menu.Menu(); subMenu.add(new qx.ui.menu.Button("Juhu")); btn.setMenu(subMenu); menu.setOpener(this.getRoot()); menu.open(); this.flush(); subMenu.destroy(); menu.destroy(); }, this, "Dispose configured menu"); }, testPopup : function() { this.assertDestroy(function() { var widget = new qx.ui.popup.Popup(); widget.show(); this.flush(); widget.destroy(); }, this, "Dispose configured menu"); }, testSplitPane : function() { this.assertDestroy(function() { var widget = new qx.ui.splitpane.Pane(); widget.add(new qx.ui.core.Widget(), 1); widget.add(new qx.ui.core.Widget()); this.getRoot().add(widget); this.flush(); widget.destroy(); }, this, "Dispose split pane"); }, testTabView : function() { this.assertDestroy(function() { var widget = new qx.ui.tabview.TabView(); widget.add(new qx.ui.tabview.Page("Juhu")); widget.add(new qx.ui.tabview.Page("Kinners")); this.getRoot().add(widget); this.flush(); widget.destroy(); }, this, "Dispose tabview"); }, testToolbar : function() { var forms = [ [qx.ui.toolbar.Button, ["Juhu"]], [qx.ui.toolbar.CheckBox, ["Juhu"]], [qx.ui.toolbar.Part, []], [qx.ui.toolbar.PartContainer, []], [qx.ui.toolbar.RadioButton, ["Juhu"]], [qx.ui.toolbar.Separator, []], [qx.ui.toolbar.ToolBar, []] ]; for (var i=0; i<forms.length; i++) { this.assertWidgetDispose(forms[i][0], forms[i][1], "Disposing " + forms[i][0].classname); } this.assertDestroy(function() { var widget = new qx.ui.toolbar.MenuButton("juhu"); var menu = this.__createMenu(); widget.setMenu(menu); this.getRoot().add(widget); this.flush(); widget.destroy(); menu.destroy(); }, this, "Dispose toolbar menu button"); this.assertDestroy(function() { var widget = new qx.ui.toolbar.SplitButton("Juhu"); var menu = this.__createMenu(); widget.setMenu(menu); this.getRoot().add(widget); this.flush(); widget.destroy(); menu.destroy(); }, this, "Dispose toolbar split button"); this.assertDestroy(function() { var widget = new qx.ui.toolbar.ToolBar(); widget.add(new qx.ui.toolbar.Button("juhu")); var part = new qx.ui.toolbar.Part(); part.add(new qx.ui.toolbar.RadioButton()); widget.add(part); this.getRoot().add(widget); this.flush(); widget.destroy(); }, this, "Dispose configured toolbar"); }, testTooltip : function() { this.assertDestroy(function() { var widget = new qx.ui.tooltip.ToolTip(); widget.show(); this.flush(); widget.destroy(); }, this, "Dispose tool tip"); }, testTree : function() { this.assertDestroy(function() { var widget = new qx.ui.tree.Tree(); var root = new qx.ui.tree.TreeFolder("folder"); root.setOpen(true); root.add(new qx.ui.tree.TreeFile("file")); widget.setRoot(root); widget.show(); this.flush(); widget.destroy(); }, this, "Dispose tree"); }, testRadioGroup : function() { this.assertDestroy(function() { var group = new qx.ui.form.RadioGroup( new qx.ui.form.RadioButton("one"), new qx.ui.form.RadioButton("two") ); group.dispose(); }); }, testRadioButtonGroup : function() { this.assertDestroy(function() { var group = new qx.ui.form.RadioButtonGroup(new qx.ui.layout.HBox()); group.add(new qx.ui.form.RadioButton("one")); group.add(new qx.ui.form.RadioButton("two")); group.destroy(); }); }, testWindow : function() { this.assertDestroy(function() { var widget = new qx.ui.window.Window(); widget.show(); this.flush(); widget.destroy(); }, this, "Dispose window"); }, __createMenu : function() { var menu = new qx.ui.menu.Menu(); menu.add(new qx.ui.menu.Button("Juhu")); menu.add(new qx.ui.menu.CheckBox("Juhu")); menu.add(new qx.ui.menu.RadioButton("Juhu")); menu.add(new qx.ui.menu.Separator("Juhu")); return menu; } } });