@qooxdoo/framework
Version:
The JS Framework for Coders
124 lines (96 loc) • 2.9 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.TreeSingleSelection",
{
extend : qx.test.ui.selection.AbstractSingleSelectonTest,
members :
{
setUp : function()
{
var length = 10;
this._notInSelection = [];
this._mode = "single";
this._widget = new qx.ui.tree.Tree().set(
{
selectionMode: this._mode,
width : 200,
height : 400
});
this.getRoot().add(this._widget);
var root = new qx.ui.tree.TreeFolder("Root");
root.setOpen(true);
this._widget.setRoot(root);
for (var i = 0; i < length; i++) {
var folder = new qx.ui.tree.TreeFolder("Folder" + i);
folder.setOpen(true);
var file = new qx.ui.tree.TreeFile("File" + i);
folder.add(file);
root.add(folder);
if (i == 5) {
this.assertIdentical(0, this._widget.getSelection().length,
"Couldn't setup test, because selection isn't empty");
this._widget.setSelection([file]);
this._selection = [file];
} else {
this._notInSelection.push(file);
}
}
this.flush();
},
tearDown : function()
{
this.base(arguments);
this._widget.destroy();
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.tree.TreeFile(name);
},
testFolderOpen : function()
{
var tree = new qx.ui.tree.Tree();
this.getRoot().add(tree);
var root = new qx.ui.tree.TreeFolder("root");
tree.setRoot(root);
var f1 = new qx.ui.tree.TreeFolder("f1");
var f2 = new qx.ui.tree.TreeFolder("f2");
root.add(f1);
f1.add(f2);
// select the first folder
tree.setSelection([f1]);
// check if the root is opened
this.assertTrue(root.getOpen());
// close the root
root.setOpen(false);
// select the second folder
tree.setSelection([f2]);
// check if the root and f1 is open
this.assertTrue(root.getOpen());
this.assertTrue(f1.getOpen());
f1.destroy();
f2.destroy();
root.destroy();
tree.destroy();
}
}
});