diff options
author | Bogdan Udrescu <bogdan@vaadin.com> | 2014-08-11 13:08:39 +0300 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2014-08-14 06:33:55 +0000 |
commit | 52b98ccd173682355af9396ce216ce5a98993194 (patch) | |
tree | dba17d0cb8c60c39a11c9c7d3b48d57859d083f3 /uitest | |
parent | c5c6a78787dd1d86c511b50361efc9acedee6684 (diff) | |
download | vaadin-framework-52b98ccd173682355af9396ce216ce5a98993194.tar.gz vaadin-framework-52b98ccd173682355af9396ce216ce5a98993194.zip |
Prevent browser to scroll when space it pressed on a TabSheet (#14320)
Browser page scroll by default when space key is pressed.
The TabSheet uses the space key (32) to select the tab
when navigating using left/right keys. So when the space
is pressed the default browser page scroll behavior is
now prevented.
Change-Id: I8c3c7c4904109018d2f91447235e30dbd29eec5d
Diffstat (limited to 'uitest')
-rw-r--r-- | uitest/src/com/vaadin/tests/components/tabsheet/TabSpaceNotScroll.java | 67 | ||||
-rw-r--r-- | uitest/src/com/vaadin/tests/components/tabsheet/TabSpaceNotScrollTest.java | 54 |
2 files changed, 121 insertions, 0 deletions
diff --git a/uitest/src/com/vaadin/tests/components/tabsheet/TabSpaceNotScroll.java b/uitest/src/com/vaadin/tests/components/tabsheet/TabSpaceNotScroll.java new file mode 100644 index 0000000000..3a5be51e47 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/tabsheet/TabSpaceNotScroll.java @@ -0,0 +1,67 @@ +/* + * Copyright 2000-2014 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.tabsheet; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.Alignment; +import com.vaadin.ui.Component; +import com.vaadin.ui.Label; +import com.vaadin.ui.TabSheet; +import com.vaadin.ui.VerticalLayout; + +/** + * If the space is pressed on the tabs of a tabsheet the browser default scroll + * behavior must be prevented. + * + * @since + * @author Vaadin Ltd + */ +public class TabSpaceNotScroll extends AbstractTestUI { + + @Override + protected void setup(VaadinRequest request) { + TabSheet tabSheet = new TabSheet(); + + for (int i = 0; i < 5; i++) { + String caption = "Tab " + i; + Component c = new Label(caption); + tabSheet.addTab(c, caption); + } + + addComponent(tabSheet); + + Label dontShowThis = new Label("Page scroll. This is bad."); + + VerticalLayout panel = new VerticalLayout(); + panel.setHeight("2000px"); + panel.addComponent(dontShowThis); + panel.setComponentAlignment(dontShowThis, Alignment.MIDDLE_CENTER); + + addComponent(panel); + } + + @Override + protected String getTestDescription() { + return "Pressing space on the tab should not scroll."; + } + + @Override + protected Integer getTicketNumber() { + return 14320; + } + +} diff --git a/uitest/src/com/vaadin/tests/components/tabsheet/TabSpaceNotScrollTest.java b/uitest/src/com/vaadin/tests/components/tabsheet/TabSpaceNotScrollTest.java new file mode 100644 index 0000000000..c35248c1f4 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/tabsheet/TabSpaceNotScrollTest.java @@ -0,0 +1,54 @@ +/* + * Copyright 2000-2014 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.tabsheet; + +import java.io.IOException; + +import org.junit.Assert; +import org.junit.Test; +import org.openqa.selenium.By; +import org.openqa.selenium.Keys; +import org.openqa.selenium.Point; + +import com.vaadin.testbench.TestBenchElement; +import com.vaadin.tests.tb3.MultiBrowserTest; + +/** + * Test if the page scroll when press space on a tabsheet's tab. + * + * @since + * @author Vaadin Ltd + */ +public class TabSpaceNotScrollTest extends MultiBrowserTest { + + @Test + public void testScroll() throws InterruptedException, IOException { + openTestURL(); + + TestBenchElement tab = (TestBenchElement) getDriver().findElement( + By.className("v-tabsheet-tabitemcell")); + tab.click(10, 10); + + Point oldLocation = tab.getLocation(); + + tab.sendKeys(Keys.SPACE); + + Point newLocation = tab.getLocation(); + + Assert.assertEquals(oldLocation, newLocation); + } + +} |