Change-Id: Ibed97b23de72007a6ffe5450bd8c3f271447f8d1tags/7.4.0.rc1
@@ -1737,8 +1737,8 @@ public class VTree extends FocusElementPanel implements VHasDropHandler, | |||
selectNode(node, true); | |||
} | |||
} | |||
showTooltipForKeyboardNavigation(node); | |||
} | |||
showTooltipForKeyboardNavigation(node); | |||
return true; | |||
} | |||
@@ -1763,8 +1763,8 @@ public class VTree extends FocusElementPanel implements VHasDropHandler, | |||
selectNode(node, true); | |||
} | |||
} | |||
showTooltipForKeyboardNavigation(node); | |||
} | |||
showTooltipForKeyboardNavigation(node); | |||
return true; | |||
} | |||
@@ -0,0 +1,64 @@ | |||
/* | |||
* 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.tree; | |||
import com.vaadin.server.VaadinRequest; | |||
import com.vaadin.tests.components.AbstractTestUI; | |||
import com.vaadin.ui.Button; | |||
import com.vaadin.ui.Button.ClickEvent; | |||
import com.vaadin.ui.Tree; | |||
/** | |||
* Test UI for keyboard navigation for first and last tree item. | |||
* | |||
* @author Vaadin Ltd | |||
*/ | |||
public class TreeKeyboardNavigationToNone extends AbstractTestUI { | |||
@Override | |||
protected void setup(VaadinRequest request) { | |||
final Tree tree = new Tree(); | |||
tree.addItem("a"); | |||
tree.addItem("b"); | |||
tree.select("a"); | |||
addComponents(tree); | |||
tree.focus(); | |||
Button button = new Button("Select last item", | |||
new Button.ClickListener() { | |||
@Override | |||
public void buttonClick(ClickEvent event) { | |||
tree.select("b"); | |||
tree.focus(); | |||
} | |||
}); | |||
addComponent(button); | |||
} | |||
@Override | |||
protected Integer getTicketNumber() { | |||
return 15343; | |||
} | |||
@Override | |||
protected String getTestDescription() { | |||
return "Keyboard navigation should not throw client side exception " | |||
+ "when there are no items to navigate."; | |||
} | |||
} |
@@ -0,0 +1,66 @@ | |||
/* | |||
* 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.tree; | |||
import org.junit.Assert; | |||
import org.junit.Before; | |||
import org.junit.Test; | |||
import org.openqa.selenium.By; | |||
import org.openqa.selenium.Keys; | |||
import org.openqa.selenium.interactions.Actions; | |||
import com.vaadin.testbench.elements.ButtonElement; | |||
import com.vaadin.tests.tb3.MultiBrowserTest; | |||
/** | |||
* Test for keyboard navigation in tree in case when there are no items to | |||
* navigate. | |||
* | |||
* @author Vaadin Ltd | |||
*/ | |||
public class TreeKeyboardNavigationToNoneTest extends MultiBrowserTest { | |||
@Before | |||
public void setUp() { | |||
setDebug(true); | |||
openTestURL(); | |||
} | |||
@Test | |||
public void navigateUpForTheFirstItem() { | |||
sendKey(Keys.ARROW_UP); | |||
checkNotificationErrorAbsence("first"); | |||
} | |||
@Test | |||
public void navigateDownForTheLastItem() { | |||
$(ButtonElement.class).first().click(); | |||
sendKey(Keys.ARROW_DOWN); | |||
checkNotificationErrorAbsence("last"); | |||
} | |||
private void checkNotificationErrorAbsence(String item) { | |||
Assert.assertFalse( | |||
"Notification is found after using keyboard for navigation " | |||
+ "from " + item + " tree item", | |||
isElementPresent(By.className("v-Notification"))); | |||
} | |||
private void sendKey(Keys key) { | |||
Actions actions = new Actions(getDriver()); | |||
actions.sendKeys(key).build().perform(); | |||
} | |||
} |