diff options
author | Jarno Rantala <jarno.rantala@vaadin.com> | 2013-11-04 15:21:22 +0200 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2013-11-06 11:24:15 +0000 |
commit | 0d3c35b4f17814a3c146134621374a8a915f10a0 (patch) | |
tree | 324526d17cd72b4dfd87499a0c01783948fdb739 /uitest | |
parent | fefedeab68461ebc04fd45f91a35835fc9026a56 (diff) | |
download | vaadin-framework-0d3c35b4f17814a3c146134621374a8a915f10a0.tar.gz vaadin-framework-0d3c35b4f17814a3c146134621374a8a915f10a0.zip |
Forces redraw in IE 8 when table does post layout. (#12687)
Without forcing the redraw, IE8 measures component sizes incorrectly in some cases.
Change-Id: I38e8a70e18753714b00f5ca4492749d6c84f10dc
Diffstat (limited to 'uitest')
-rw-r--r-- | uitest/src/com/vaadin/tests/components/table/TableSizeInTabsheet.java | 69 | ||||
-rw-r--r-- | uitest/src/com/vaadin/tests/components/table/TableSizeInTabsheetTest.java | 50 |
2 files changed, 119 insertions, 0 deletions
diff --git a/uitest/src/com/vaadin/tests/components/table/TableSizeInTabsheet.java b/uitest/src/com/vaadin/tests/components/table/TableSizeInTabsheet.java new file mode 100644 index 0000000000..f84f83718d --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/table/TableSizeInTabsheet.java @@ -0,0 +1,69 @@ +/* + * Copyright 2000-2013 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.components.table; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.Component; +import com.vaadin.ui.CustomComponent; +import com.vaadin.ui.Layout; +import com.vaadin.ui.TabSheet; +import com.vaadin.ui.Table; +import com.vaadin.ui.VerticalLayout; + +@SuppressWarnings("serial") +public class TableSizeInTabsheet extends AbstractTestUI { + + static final String TABLE = "table"; + static final String TABSHEET = "tabsheet"; + + @Override + protected void setup(VaadinRequest request) { + VerticalLayout layout = new VerticalLayout(); + layout.setMargin(true); + setContent(layout); + + TabSheet tabSheet = new TabSheet(); + tabSheet.setId(TABSHEET); + layout.addComponent(tabSheet); + tabSheet.addTab(new TabComposite(), "Tab"); + } + + public class TabComposite extends CustomComponent { + + public TabComposite() { + Layout mainLayout = new VerticalLayout(); + addComponent(mainLayout); + setCompositionRoot(mainLayout); + + Component table = new Table(); + table.setWidth("100%"); + table.setId(TABLE); + mainLayout.addComponent(table); + } + } + + @Override + protected String getTestDescription() { + return "The size calculations fails in IE8 when undefined size table is inside a tabsheet"; + } + + @Override + protected Integer getTicketNumber() { + return 12687; + } + +}
\ No newline at end of file diff --git a/uitest/src/com/vaadin/tests/components/table/TableSizeInTabsheetTest.java b/uitest/src/com/vaadin/tests/components/table/TableSizeInTabsheetTest.java new file mode 100644 index 0000000000..29fc5a2e52 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/table/TableSizeInTabsheetTest.java @@ -0,0 +1,50 @@ +/* + * Copyright 2000-2013 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.components.table; + +import static com.vaadin.tests.components.table.TableSizeInTabsheet.TABLE; +import static com.vaadin.tests.components.table.TableSizeInTabsheet.TABSHEET; + +import org.junit.Assert; +import org.junit.Test; +import org.openqa.selenium.By; +import org.openqa.selenium.WebElement; + +import com.vaadin.tests.tb3.MultiBrowserTest; + +public class TableSizeInTabsheetTest extends MultiBrowserTest { + + private static final String TABSHEET_CONTENT_STYLENAME = "v-tabsheet-content"; + + @Test + public void testTabsheetContentHasTheSameHeightAsTable() { + openTestURL(); + int tableHeight = getTableHeigth(); + int tabSheetContentHeight = getTableSheetContentHeight(); + + Assert.assertEquals(tableHeight, tabSheetContentHeight); + } + + private int getTableHeigth() { + return vaadinElementById(TABLE).getSize().getHeight(); + } + + private int getTableSheetContentHeight() { + WebElement tabsheetContent = vaadinElementById(TABSHEET).findElement( + By.className(TABSHEET_CONTENT_STYLENAME)); + return tabsheetContent.getSize().getHeight(); + } +} |