@qooxdoo/framework
Version:
The JS Framework for Coders
148 lines (111 loc) • 3.82 kB
JavaScript
/* ************************************************************************
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.ComboBox",
{
extend : qx.test.ui.LayoutTestCase,
include : qx.dev.unit.MMock,
members :
{
testWithSetValueWithArbitraryValue: function() {
var combobox = this.__createComboBox("arbitrary value");
this.getRoot().add(combobox);
this.flush();
this.assertIdentical("arbitrary value", combobox.getValue(),
"Wrong result from getValue()");
combobox.open();
this.flush();
this.assertIdentical(0, combobox.getChildrenContainer().getSelection().length,
"The pop-up list has an item selected!");
this.getRoot().removeAll();
combobox.dispose();
this.flush();
},
testWithSetValueWith: function() {
var combobox = this.__createComboBox("Item 0");
this.getRoot().add(combobox);
this.flush();
this.assertIdentical("Item 0", combobox.getValue(),
"Wrong result from getValue()");
combobox.open();
this.flush();
var list = combobox.getChildrenContainer();
var item = list.findItem("Item 0");
this.assertIdentical(item, list.getSelection()[0],
"The wrong item selected in pop-up list!");
// check if the combobox is case sensitive, [BUG #3024]
combobox.setValue("item 2");
this.assertEquals("item 2", combobox.getValue());
this.assertEquals(0, list.getSelection().length);
this.getRoot().removeAll();
combobox.dispose();
this.flush();
},
testWithoutSetValue: function() {
var combobox = this.__createComboBox();
this.getRoot().add(combobox);
this.flush();
this.assertIdentical(null, combobox.getValue(),
"Wrong result from getValue()");
combobox.open();
this.flush();
this.assertIdentical(0, combobox.getChildrenContainer().getSelection().length,
"The pop-up list has an item selected!");
this.getRoot().removeAll();
combobox.dispose();
this.flush();
},
testFocusTextOnClose: function() {
var combobox = this.__createComboBox();
this.getRoot().add(combobox);
this.flush();
// Open list popup
combobox.open();
this.flush();
// Select item
var list = combobox.getChildControl("list");
var item = list.findItem("Item 0");
list.setSelection([item]);
this.flush();
// Asssert focus on close
this.spy(combobox, "tabFocus");
combobox.close();
this.assertCalled(combobox.tabFocus);
this.getRoot().removeAll();
combobox.dispose();
},
testNotFocusTextOnCloseWhenInvisibleBefore: function() {
var combobox = this.__createComboBox();
this.getRoot().add(combobox);
this.flush();
// Enter value
combobox.setValue("Item 0");
this.flush();
// Assert not focus on close
this.spy(combobox, "tabFocus");
combobox.close();
this.assertNotCalled(combobox.tabFocus);
this.getRoot().removeAll();
combobox.dispose();
},
__createComboBox : function(initValue)
{
var comboBox = new qx.ui.form.ComboBox();
if (initValue) {
comboBox.setValue(initValue);
}
for (var i = 0; i < 10; i++) {
comboBox.add(new qx.ui.form.ListItem("Item " + i));
}
return comboBox;
}
}
});