treecontrol_test.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. // Copyright 2008 The Closure Library Authors. All Rights Reserved.
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS-IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. goog.provide('goog.ui.tree.TreeControlTest');
  15. goog.setTestOnly('goog.ui.tree.TreeControlTest');
  16. goog.require('goog.dom');
  17. goog.require('goog.testing.jsunit');
  18. goog.require('goog.ui.tree.TreeControl');
  19. function makeATree() {
  20. var tree = new goog.ui.tree.TreeControl('root');
  21. var testData = [
  22. 'A',
  23. [['AA', [['AAA', []], ['AAB', []]]], ['AB', [['ABA', []], ['ABB', []]]]]
  24. ];
  25. createTreeFromTestData(tree, testData, 3);
  26. tree.render(goog.dom.getElement('treeContainer'));
  27. return tree;
  28. }
  29. function createTreeFromTestData(node, data, maxLevels) {
  30. node.setText(data[0]);
  31. if (maxLevels < 0) {
  32. return;
  33. }
  34. var children = data[1];
  35. for (var i = 0; i < children.length; i++) {
  36. var child = children[i];
  37. var childNode = node.getTree().createNode('');
  38. node.add(childNode);
  39. createTreeFromTestData(childNode, child, maxLevels - 1);
  40. }
  41. }
  42. /**
  43. * Test moving a node to a greater depth.
  44. */
  45. function testIndent() {
  46. var tree = makeATree();
  47. tree.expandAll();
  48. var node = tree.getChildren()[0].getChildren()[0];
  49. assertEquals('AAA', node.getHtml());
  50. assertNotNull(node.getElement());
  51. //assertEquals('19px', node.getRowElement().style.paddingLeft);
  52. assertEquals(2, node.getDepth());
  53. var newParent = node.getNextSibling();
  54. assertEquals('AAB', newParent.getHtml());
  55. assertEquals(2, newParent.getDepth());
  56. newParent.add(node);
  57. assertEquals(newParent, node.getParent());
  58. assertEquals(node, newParent.getChildren()[0]);
  59. assertEquals(3, node.getDepth());
  60. assertEquals('38px', node.getRowElement().style.paddingLeft);
  61. }
  62. /**
  63. * Test moving a node to a lesser depth.
  64. */
  65. function testOutdent() {
  66. var tree = makeATree();
  67. tree.expandAll();
  68. var node = tree.getChildren()[0].getChildren()[0];
  69. assertEquals('AAA', node.getHtml());
  70. assertNotNull(node.getElement());
  71. //assertEquals('19px', node.getRowElement().style.paddingLeft);
  72. assertEquals(2, node.getDepth());
  73. var newParent = tree;
  74. assertEquals('A', newParent.getHtml());
  75. assertEquals(0, newParent.getDepth());
  76. newParent.add(node);
  77. assertEquals(newParent, node.getParent());
  78. assertEquals(node, newParent.getChildren()[2]);
  79. assertEquals(1, node.getDepth());
  80. assertEquals('0px', node.getRowElement().style.paddingLeft);
  81. }