You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

TreeTableDeclarativeTest.java 4.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. package com.vaadin.v7.tests.server.component.treetable;
  2. import static org.junit.Assert.fail;
  3. import org.junit.Test;
  4. import com.vaadin.ui.declarative.DesignException;
  5. import com.vaadin.v7.tests.server.component.table.TableDeclarativeTest;
  6. import com.vaadin.v7.ui.Table;
  7. import com.vaadin.v7.ui.TreeTable;
  8. /**
  9. * Test declarative support for {@link TreeTable}.
  10. *
  11. * @since
  12. * @author Vaadin Ltd
  13. */
  14. public class TreeTableDeclarativeTest extends TableDeclarativeTest {
  15. @Test
  16. public void testAttributes() {
  17. String design = "<vaadin7-tree-table animations-enabled>";
  18. TreeTable table = getTable();
  19. table.setAnimationsEnabled(true);
  20. testRead(design, table);
  21. testWrite(design, table);
  22. }
  23. @Test
  24. public void testHierarchy() {
  25. String design = "<vaadin7-tree-table>" //
  26. + "<table>" //
  27. + "<colgroup><col property-id=''></colgroup>" //
  28. + "<tbody>" //
  29. + " <tr item-id='1'><td></tr>" //
  30. + " <tr depth=1 item-id='1.1'><td></tr>" //
  31. + " <tr depth=1 item-id='1.2'><td></tr>" //
  32. + " <tr depth=2 item-id='1.2.1'><td></tr>" //
  33. + " <tr depth=3 item-id='1.2.1.1'><td></tr>" //
  34. + " <tr depth=2 item-id='1.2.2'><td></tr>" //
  35. + " <tr item-id='2'><td></tr>" //
  36. + " <tr depth=1 item-id='2.1'><td></tr>" //
  37. + "</tbody>" //
  38. + "</table>" //
  39. + "</vaadin7-tree-table>";
  40. TreeTable table = getTable();
  41. table.addContainerProperty("", String.class, "");
  42. table.addItem("1");
  43. table.addItem("1.1");
  44. table.setParent("1.1", "1");
  45. table.addItem("1.2");
  46. table.setParent("1.2", "1");
  47. table.addItem("1.2.1");
  48. table.setParent("1.2.1", "1.2");
  49. table.addItem("1.2.1.1");
  50. table.setParent("1.2.1.1", "1.2.1");
  51. table.addItem("1.2.2");
  52. table.setParent("1.2.2", "1.2");
  53. table.addItem("2");
  54. table.addItem("2.1");
  55. table.setParent("2.1", "2");
  56. testRead(design, table);
  57. testWrite(design, table, true);
  58. }
  59. @Test
  60. public void testCollapsed() {
  61. String design = "<vaadin7-tree-table>" //
  62. + " <table>" //
  63. + " <colgroup><col property-id=''></colgroup>" //
  64. + " <tbody>" //
  65. + " <tr item-id='1' collapsed=false><td></tr>" //
  66. + " <tr depth=1 item-id='1.1'><td></tr>" //
  67. + " <tr depth=2 item-id='1.1.1'><td></tr>" //
  68. + " </tbody>" //
  69. + " </table>" //
  70. + "</vaadin7-tree-table>";
  71. TreeTable table = getTable();
  72. table.addContainerProperty("", String.class, "");
  73. table.addItem("1");
  74. table.setCollapsed("1", false);
  75. table.addItem("1.1");
  76. table.setParent("1.1", "1");
  77. table.addItem("1.1.1");
  78. table.setParent("1.1.1", "1.1");
  79. testRead(design, table);
  80. testWrite(design, table, true);
  81. }
  82. @Test
  83. public void testMalformedHierarchy() {
  84. assertMalformed("<tr depth=-4><td>");
  85. assertMalformed("<tr depth=1><td>");
  86. assertMalformed("<tr><td><tr depth=3><td>");
  87. }
  88. protected void assertMalformed(String hierarchy) {
  89. String design = "<vaadin7-tree-table>" //
  90. + " <table>" //
  91. + " <colgroup><col property-id=''></colgroup>" //
  92. + " <tbody>" + hierarchy + "</tbody>" //
  93. + " </table>" //
  94. + "</vaadin7-tree-table>";
  95. try {
  96. read(design);
  97. fail("Malformed hierarchy should fail: " + hierarchy);
  98. } catch (DesignException expected) {
  99. }
  100. }
  101. @Override
  102. protected void compareBody(Table read, Table expected) {
  103. super.compareBody(read, expected);
  104. for (Object itemId : read.getItemIds()) {
  105. assertEquals("parent of item " + itemId,
  106. ((TreeTable) expected).getParent(itemId),
  107. ((TreeTable) read).getParent(itemId));
  108. assertEquals("collapsed status of item " + itemId,
  109. ((TreeTable) expected).isCollapsed(itemId),
  110. ((TreeTable) read).isCollapsed(itemId));
  111. }
  112. }
  113. @Override
  114. protected TreeTable getTable() {
  115. return new TreeTable();
  116. }
  117. @Override
  118. protected String getTag() {
  119. return "vaadin7-tree-table";
  120. }
  121. }