/* * Copyright 2000-2016 Vaadin Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.vaadin.tests.server.component.grid; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.fail; import org.junit.Before; import org.junit.Test; import com.vaadin.data.ValueProvider; import com.vaadin.ui.Grid; import com.vaadin.ui.Grid.Column; import com.vaadin.ui.components.grid.HeaderRow; public class GridHeaderFooterTest { private Grid<String> grid; @Before public void setUp() { grid = new Grid<>(); } @Test public void appendHeaderRow_addedToBottom() { HeaderRow defaultRow = grid.getHeaderRow(0); HeaderRow addedRow = grid.appendHeaderRow(); assertSame(defaultRow, grid.getHeaderRow(0)); assertSame(addedRow, grid.getHeaderRow(1)); } @Test public void prependHeaderRow_addedToTop() { HeaderRow defaultRow = grid.getHeaderRow(0); HeaderRow addedRow = grid.prependHeaderRow(); assertSame(addedRow, grid.getHeaderRow(0)); assertSame(defaultRow, grid.getHeaderRow(1)); } @Test public void addHeaderRowAtZero_addedToTop() { HeaderRow defaultRow = grid.getHeaderRow(0); HeaderRow addedRow = grid.addHeaderRowAt(0); assertSame(addedRow, grid.getHeaderRow(0)); assertSame(defaultRow, grid.getHeaderRow(1)); } @Test public void addHeaderRowAtRowCount_addedToBottom() { HeaderRow defaultRow = grid.getHeaderRow(0); HeaderRow addedRow = grid.addHeaderRowAt(grid.getHeaderRowCount()); assertSame(defaultRow, grid.getHeaderRow(0)); assertSame(addedRow, grid.getHeaderRow(1)); } @Test public void removeExistingHeaderRow_removed() { HeaderRow defaultRow = grid.getHeaderRow(0); HeaderRow addedRow = grid.appendHeaderRow(); grid.removeHeaderRow(addedRow); assertEquals(1, grid.getHeaderRowCount()); assertSame(defaultRow, grid.getHeaderRow(0)); } @Test public void removeDefaultHeaderRow_removed() { HeaderRow defaultRow = grid.getHeaderRow(0); HeaderRow addedRow = grid.appendHeaderRow(); grid.removeHeaderRow(defaultRow); assertEquals(1, grid.getHeaderRowCount()); assertSame(addedRow, grid.getHeaderRow(0)); } @Test(expected = IndexOutOfBoundsException.class) public void getHeaderRowNegativeIndex_throws() { grid.getHeaderRow(-1); } @Test(expected = IndexOutOfBoundsException.class) public void getHeaderRowIndexTooLarge_throws() { grid.appendHeaderRow(); grid.getHeaderRow(2); } @Test(expected = IndexOutOfBoundsException.class) public void addHeaderRowAtNegativeIndex_throws() { grid.addHeaderRowAt(-1); } @Test(expected = IndexOutOfBoundsException.class) public void addHeaderRowAtIndexTooLarge_throws() { grid.addHeaderRowAt(2); } @Test(expected = IndexOutOfBoundsException.class) public void removeHeaderRowNegativeIndex_throws() { grid.removeHeaderRow(-1); } @Test(expected = IndexOutOfBoundsException.class) public void removeHeaderRowIndexTooLarge_throws() { grid.removeHeaderRow(1); } @Test(expected = IllegalArgumentException.class) public void removeNonExistingHeaderRow_throws() { HeaderRow row = grid.getHeaderRow(0); try { grid.removeHeaderRow(row); } catch (Exception e) { fail("unexpected exception: " + e); } grid.removeHeaderRow(row); } @Test public void addColumn_headerCellAdded() { Column<?, ?> column = grid.addColumn(ValueProvider.identity()) .setId("Col"); assertNotNull(grid.getHeaderRow(0).getCell(column)); } @Test(expected = IllegalArgumentException.class) public void removeColumn_headerCellRemoved() { Column<String, ?> column = grid.addColumn(ValueProvider.identity()) .setId("Col"); grid.removeColumn(column); grid.getHeaderRow(0).getCell(column); } }