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.

GridHeaderFooterTest.java 4.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. /*
  2. * Copyright 2000-2016 Vaadin Ltd.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License"); you may not
  5. * use this file except in compliance with the License. You may obtain a copy of
  6. * the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  12. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  13. * License for the specific language governing permissions and limitations under
  14. * the License.
  15. */
  16. package com.vaadin.tests.server.component.grid;
  17. import static org.junit.Assert.assertEquals;
  18. import static org.junit.Assert.assertNotNull;
  19. import static org.junit.Assert.assertSame;
  20. import static org.junit.Assert.fail;
  21. import org.junit.Before;
  22. import org.junit.Test;
  23. import com.vaadin.server.SerializableFunction;
  24. import com.vaadin.ui.Grid;
  25. import com.vaadin.ui.Grid.Column;
  26. import com.vaadin.ui.Grid.HeaderRow;
  27. public class GridHeaderFooterTest {
  28. private Grid<String> grid;
  29. @Before
  30. public void setUp() {
  31. grid = new Grid<>();
  32. }
  33. @Test
  34. public void appendHeaderRow_addedToBottom() {
  35. HeaderRow defaultRow = grid.getHeaderRow(0);
  36. HeaderRow addedRow = grid.appendHeaderRow();
  37. assertSame(defaultRow, grid.getHeaderRow(0));
  38. assertSame(addedRow, grid.getHeaderRow(1));
  39. }
  40. @Test
  41. public void prependHeaderRow_addedToTop() {
  42. HeaderRow defaultRow = grid.getHeaderRow(0);
  43. HeaderRow addedRow = grid.prependHeaderRow();
  44. assertSame(addedRow, grid.getHeaderRow(0));
  45. assertSame(defaultRow, grid.getHeaderRow(1));
  46. }
  47. @Test
  48. public void addHeaderRowAtZero_addedToTop() {
  49. HeaderRow defaultRow = grid.getHeaderRow(0);
  50. HeaderRow addedRow = grid.addHeaderRowAt(0);
  51. assertSame(addedRow, grid.getHeaderRow(0));
  52. assertSame(defaultRow, grid.getHeaderRow(1));
  53. }
  54. @Test
  55. public void addHeaderRowAtRowCount_addedToBottom() {
  56. HeaderRow defaultRow = grid.getHeaderRow(0);
  57. HeaderRow addedRow = grid.addHeaderRowAt(grid.getHeaderRowCount());
  58. assertSame(defaultRow, grid.getHeaderRow(0));
  59. assertSame(addedRow, grid.getHeaderRow(1));
  60. }
  61. @Test
  62. public void removeExistingHeaderRow_removed() {
  63. HeaderRow defaultRow = grid.getHeaderRow(0);
  64. HeaderRow addedRow = grid.appendHeaderRow();
  65. grid.removeHeaderRow(addedRow);
  66. assertEquals(1, grid.getHeaderRowCount());
  67. assertSame(defaultRow, grid.getHeaderRow(0));
  68. }
  69. @Test
  70. public void removeDefaultHeaderRow_removed() {
  71. HeaderRow defaultRow = grid.getHeaderRow(0);
  72. HeaderRow addedRow = grid.appendHeaderRow();
  73. grid.removeHeaderRow(defaultRow);
  74. assertEquals(1, grid.getHeaderRowCount());
  75. assertSame(addedRow, grid.getHeaderRow(0));
  76. }
  77. @Test(expected = IndexOutOfBoundsException.class)
  78. public void getHeaderRowNegativeIndex_throws() {
  79. grid.getHeaderRow(-1);
  80. }
  81. @Test(expected = IndexOutOfBoundsException.class)
  82. public void getHeaderRowIndexTooLarge_throws() {
  83. grid.appendHeaderRow();
  84. grid.getHeaderRow(2);
  85. }
  86. @Test(expected = IndexOutOfBoundsException.class)
  87. public void addHeaderRowAtNegativeIndex_throws() {
  88. grid.addHeaderRowAt(-1);
  89. }
  90. @Test(expected = IndexOutOfBoundsException.class)
  91. public void addHeaderRowAtIndexTooLarge_throws() {
  92. grid.addHeaderRowAt(2);
  93. }
  94. @Test(expected = IndexOutOfBoundsException.class)
  95. public void removeHeaderRowNegativeIndex_throws() {
  96. grid.removeHeaderRow(-1);
  97. }
  98. @Test(expected = IndexOutOfBoundsException.class)
  99. public void removeHeaderRowIndexTooLarge_throws() {
  100. grid.removeHeaderRow(1);
  101. }
  102. @Test(expected = IllegalArgumentException.class)
  103. public void removeNonExistingHeaderRow_throws() {
  104. HeaderRow row = grid.getHeaderRow(0);
  105. try {
  106. grid.removeHeaderRow(row);
  107. } catch (Exception e) {
  108. fail("unexpected exception: " + e);
  109. }
  110. grid.removeHeaderRow(row);
  111. }
  112. @Test
  113. public void addColumn_headerCellAdded() {
  114. Column<?, ?> column = grid.addColumn("Col",
  115. SerializableFunction.identity());
  116. assertNotNull(grid.getHeaderRow(0).getCell(column));
  117. }
  118. @Test(expected = IllegalArgumentException.class)
  119. public void removeColumn_headerCellRemoved() {
  120. Column<String, ?> column = grid.addColumn("Col",
  121. SerializableFunction.identity());
  122. grid.removeColumn(column);
  123. grid.getHeaderRow(0).getCell(column);
  124. }
  125. }