@qooxdoo/framework
Version:
The JS Framework for Coders
139 lines (107 loc) • 3.69 kB
JavaScript
/* ************************************************************************
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:
* Christian Hagendorn (chris_schmidt)
************************************************************************ */
qx.Class.define("qx.test.ui.selection.RadioGroup",
{
extend : qx.test.ui.selection.AbstractSingleSelectonTest,
members :
{
__radioButtons : null,
setUp : function()
{
var length = 10;
this._mode = "one";
this.__radioButtons = [];
this._notInSelection = [];
this._widget = new qx.ui.form.RadioGroup();
var root = this.getRoot();
for (var i = 0; i < length; i++) {
var item = new qx.ui.form.RadioButton("RadioButton" + i);
root.add(item, {top: 20*i});
this._widget.add(item);
this.__radioButtons.push(item);
if (i == 5) {
this._widget.setSelection([item]);
this._selection = [item];
} else {
this._notInSelection.push(item);
}
}
this.flush();
},
tearDown : function()
{
this.base(arguments);
for (var i = 0; i < this.__radioButtons.length; i++) {
this.__radioButtons[i].destroy();
}
this.__radioButtons = null;
this._widget.dispose();
this._widget = null;
this._selection = null;
this._notInSelection = null;
this.flush();
},
_getChildren : function()
{
if (this._widget != null) {
return this._widget.getItems();
} else {
return [];
}
},
_createTestElement : function(name) {
return new qx.ui.form.RadioButton(name);
},
testAllowEmptySelection : function() {
this._mode = "";
this._widget.setAllowEmptySelection(true);
this.testResetSelection();
this._widget.setAllowEmptySelection(false);
var result = this._widget.getSelection();
this._assertArrayEquals([this._widget.getSelectables()[0]], result,
"The result of 'getSelection' method is wrong!");
},
testAdd : function() {
var widget = new qx.ui.form.RadioGroup();
var item = new qx.ui.form.RadioButton("RadioButton");
widget.add(item);
var result = widget.getSelection();
this._assertArrayEquals([widget.getSelectables()[0]], result,
"The result of 'getSelection' method is wrong!");
widget.dispose();
item.destroy();
},
testAddWithAllowEmptySelection : function() {
var widget = new qx.ui.form.RadioGroup();
widget.setAllowEmptySelection(true);
var item = new qx.ui.form.RadioButton("RadioButton");
widget.add(item);
var result = widget.getSelection();
this.assertEquals(0, result.length,
"The result of 'getSelection' method is wrong!");
widget.dispose();
item.destroy();
},
testSetGroup: function() {
var radioButton1 = new qx.ui.form.RadioButton();
var radioButton2 = new qx.ui.form.RadioButton();
var radioGroup = new qx.ui.form.RadioGroup();
radioButton1.setGroup(radioGroup);
radioButton2.setGroup(radioGroup);
this.assertEquals(radioButton1, radioGroup.getItems()[0], "First button not in the group.");
this.assertEquals(radioButton2, radioGroup.getItems()[1], "Second button not in the group.");
radioGroup.dispose();
radioButton2.dispose();
radioButton1.dispose();
}
}
});