@qooxdoo/framework
Version:
The JS Framework for Coders
183 lines (152 loc) • 5.36 kB
JavaScript
/* ************************************************************************
qooxdoo - the new era of web development
http://qooxdoo.org
Copyright:
2004-2010 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.tree.virtual.OneSelection", {
extend: qx.test.ui.tree.virtual.SingleSelection,
members: {
setUp() {
super.setUp();
this.tree.setSelectionMode("one");
},
testSelectionWithClosedNode() {
var root = this.createModelAndSetModel(2);
var selection = this.tree.getSelection();
var parent = root.getChildren().getItem(0);
var itemToSelect = parent.getChildren().getItem(2);
this.tree.openNode(parent);
selection.push(itemToSelect);
// check selection from tree
this.assertEquals(1, selection.getLength(), "On Tree");
this.assertEquals(itemToSelect, selection.getItem(0), "On Tree");
// check selection from manager
var selectionOnManager = this.tree._manager.getSelection();
this.assertEquals(1, selectionOnManager.length);
this.assertEquals(
this.tree.getLookupTable().indexOf(itemToSelect),
selectionOnManager[0]
);
var self = this;
this.assertEventFired(
selection,
"change",
function () {
self.tree.closeNode(parent);
},
function (e) {
var selectionOnManager = self.tree._manager.getSelection();
self.assertEquals(
1,
selection.getLength(),
"Selection not reset on Tree"
);
self.assertEquals(
parent,
selection.getItem(0),
"Selection not reset on Tree"
);
self.assertEquals(
1,
selectionOnManager.length,
"Selection not reset on manager"
);
self.assertEquals(
self.tree.getLookupTable().indexOf(parent),
selectionOnManager[0],
"Selection not reset on manager"
);
}
);
},
testSelectionWithClosedParentNode() {
var root = this.createModelAndSetModel(3);
var selection = this.tree.getSelection();
var nodeToClose = root.getChildren().getItem(0);
var parent = nodeToClose.getChildren().getItem(1);
var itemToSelect = parent.getChildren().getItem(2);
this.tree.openNodeAndParents(parent);
selection.push(itemToSelect);
// check selection from tree
this.assertEquals(1, selection.getLength(), "On Tree");
this.assertEquals(itemToSelect, selection.getItem(0), "On Tree");
// check selection from manager
var selectionOnManager = this.tree._manager.getSelection();
this.assertEquals(1, selectionOnManager.length);
this.assertEquals(
this.tree.getLookupTable().indexOf(itemToSelect),
selectionOnManager[0]
);
var self = this;
this.assertEventFired(
selection,
"change",
function () {
self.tree.closeNode(nodeToClose);
},
function (e) {
var selectionOnManager = self.tree._manager.getSelection();
self.assertEquals(
1,
selection.getLength(),
"Selection not reset on Tree"
);
self.assertEquals(
nodeToClose,
selection.getItem(0),
"Selection not reset on Tree"
);
self.assertEquals(
1,
selectionOnManager.length,
"Selection not reset on manager"
);
self.assertEquals(
self.tree.getLookupTable().indexOf(nodeToClose),
selectionOnManager[0],
"Selection not reset on manager"
);
}
);
},
testRemoveItem() {
var root = this.createModelAndSetModel(2);
var selection = this.tree.getSelection();
var parent = root.getChildren().getItem(0);
var itemToSelect = parent.getChildren().getItem(2);
this.tree.openNode(parent);
selection.push(itemToSelect);
// check selection from tree before remove item
this.assertEquals(1, selection.getLength(), "On Tree (setup)");
this.assertEquals(itemToSelect, selection.getItem(0), "On Tree (setup)");
var self = this;
this.assertEventFired(
selection,
"change",
function () {
// remove selected item
parent.getChildren().removeAt(2).dispose();
},
function (e) {
// check selection from list
self.assertEquals(1, selection.getLength(), "On Tree");
self.assertEquals(parent, selection.getItem(0), "On Tree");
// check selection from manager
var selectionOnManager = self.tree._manager.getSelection();
self.assertEquals(1, selectionOnManager.length, "On Manager");
self.assertEquals(
self.tree.getLookupTable().indexOf(parent),
selectionOnManager[0],
"On Manager"
);
}
);
}
}
});