diff --git a/src/aui-tree/HISTORY.md b/src/aui-tree/HISTORY.md index 6374145f5d0..2192e6a05d6 100644 --- a/src/aui-tree/HISTORY.md +++ b/src/aui-tree/HISTORY.md @@ -1,2 +1,7 @@ aui-tree ======== + +@VERSION@ +------ + + * #AUI-1044 - In aui-tree-node Add option to prevent selecting all child nodes in radio and task. diff --git a/src/aui-tree/js/aui-tree-node.js b/src/aui-tree/js/aui-tree-node.js index ba9167651ac..b4ba9407489 100644 --- a/src/aui-tree/js/aui-tree-node.js +++ b/src/aui-tree/js/aui-tree-node.js @@ -1764,7 +1764,7 @@ var TreeNodeRadio = A.Component.create({ } }, - EXTENDS: A.TreeNodeTask, + EXTENDS: A.TreeNodeCheck, prototype: { diff --git a/src/aui-tree/tests/unit/js/tests.js b/src/aui-tree/tests/unit/js/tests.js index e831cfa960c..50692a06b21 100644 --- a/src/aui-tree/tests/unit/js/tests.js +++ b/src/aui-tree/tests/unit/js/tests.js @@ -49,52 +49,71 @@ YUI.add('module-tests', function(Y) { }, 'getNodeById() should return a valid TreeNode': function() { - var tree = createNewTreeView(); + var childNode, + tree; - var childNode = tree.getNodeById('one'); + tree = createNewTreeView(); + + childNode = tree.getNodeById('one'); Y.Assert.isInstanceOf(Y.TreeNode, childNode, 'childNode should be an instance of Y.TreeNode.'); }, 'getNodeById() should not return a valid TreeNode': function() { - var tree = createNewTreeView(); + var childNode, + tree; + + tree = createNewTreeView(); - var childNode = tree.getNodeById('bogey'); + childNode = tree.getNodeById('bogey'); Y.Assert.isUndefined(childNode, 'childNode should be undefined.'); }, 'TreeNode should have children': function() { - var tree = createNewTreeView(); + var tree, + node; + + tree = createNewTreeView(); - var node = tree.getNodeById('one'); + node = tree.getNodeById('one'); Y.Assert.areSame(4, node.childrenLength, 'node.childrenLength should return 4.'); }, 'TreeNode should not have children': function() { - var tree = createNewTreeView(); + var tree, + node; - var node = tree.getNodeById('two'); + tree = createNewTreeView(); + + node = tree.getNodeById('two'); Y.Assert.areSame(0, node.childrenLength, 'node.childrenLength should return 0.'); }, - 'appendChild() should regester the TreeNode in the Parent TreeNode and Owner TreeView index attribute': function() { - var treeView = new Y.TreeView(); + 'appendChild() should register the TreeNode in the Parent TreeNode and Owner TreeView index attribute': function() { + var childTreeNode, + rootTreeNode, + rootTreeNodeIndex, + treeView, + treeViewIndex; - var childTreeNode = new Y.TreeNode({ + treeView = new Y.TreeView(); + + childTreeNode = new Y.TreeNode({ id: 'child' }); - var rootTreeNode = new Y.TreeNode({ + + rootTreeNode = new Y.TreeNode({ id: 'root' }); treeView.appendChild(rootTreeNode); rootTreeNode.appendChild(childTreeNode); - var treeViewIndex = treeView.get("index"); - var rootTreeNodeIndex = rootTreeNode.get("index"); + treeViewIndex = treeView.get('index'); + rootTreeNodeIndex = rootTreeNode.get('index'); Y.Assert.isTrue( treeViewIndex.hasOwnProperty('root'), @@ -108,9 +127,12 @@ YUI.add('module-tests', function(Y) { }, 'removeChild() should remove child TreeNode': function() { - var tree = createNewTreeView(); + var node, + tree; + + tree = createNewTreeView(); - var node = tree.getNodeById('two'); + node = tree.getNodeById('two'); tree.removeChild(node); @@ -124,9 +146,12 @@ YUI.add('module-tests', function(Y) { }, 'removeChild() should not remove child TreeNode': function() { - var tree = createNewTreeView(); + var node, + tree; + + tree = createNewTreeView(); - var node = tree.getNodeById('bogey'); + node = tree.getNodeById('bogey'); tree.removeChild(node); @@ -136,20 +161,28 @@ YUI.add('module-tests', function(Y) { }, 'isRegistered() should find TreeNode': function() { - var tree = createNewTreeView(); + var node, + tree; + + tree = createNewTreeView(); - var node = tree.getNodeById('two'); + node = tree.getNodeById('two'); Y.Assert.isTrue(tree.isRegistered(node), 'TreeNode should be registered in TreeView'); }, 'isRegistered() should find child TreeNode': function() { - var treeView = new Y.TreeView(); + var childTreeNode, + rootTreeNode, + treeView; + + treeView = new Y.TreeView(); - var childTreeNode = new Y.TreeNode({ + childTreeNode = new Y.TreeNode({ id: 'child' }); - var rootTreeNode = new Y.TreeNode({ + + rootTreeNode = new Y.TreeNode({ id: 'root' }); @@ -165,11 +198,72 @@ YUI.add('module-tests', function(Y) { }, 'isRegistered() should not find TreeNode': function() { - var tree = createNewTreeView(); + var node, + tree; + + tree = createNewTreeView(); - var node = new Y.TreeNode(); + node = new Y.TreeNode(); Y.Assert.isFalse(tree.isRegistered(node), 'TreeNode should be registered in TreeView'); + }, + + 'TreeNodeRadio should only have one treeNode selected': function() { + var childTreeNode, + rootTreeNode, + treeView; + + treeView = new Y.TreeView(); + + childTreeNode = new Y.TreeNodeRadio({ + id: 'one' + }); + + rootTreeNode = new Y.TreeNodeRadio({ + id: 'root' + }); + + treeView.appendChild(rootTreeNode); + rootTreeNode.appendChild(childTreeNode); + + rootTreeNode.check(); + + Y.Assert.isTrue( + rootTreeNode.isChecked(), + 'rootTreeNode should be checked.'); + + Y.Assert.isFalse( + childTreeNode.isChecked(), + 'childTreeNode should not be checked.'); + }, + + 'TreeNodeTask should select all child treeNode': function() { + var childTreeNode, + rootTreeNode, + treeView; + + treeView = new Y.TreeView(); + + childTreeNode = new Y.TreeNodeTask({ + id: 'one' + }); + + rootTreeNode = new Y.TreeNodeTask({ + id: 'root' + }); + + treeView.appendChild(rootTreeNode); + rootTreeNode.appendChild(childTreeNode); + + rootTreeNode.check(); + + Y.Assert.isTrue( + rootTreeNode.isChecked(), + 'rootTreeNode should be checked.'); + + Y.Assert.isTrue( + childTreeNode.isChecked(), + 'childTreeNode should be checked.'); } }));