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.

TextAreaEventPropagationModifierKeysTest.java 2.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package com.vaadin.tests.components.ui;
  2. import org.junit.Test;
  3. import org.openqa.selenium.Keys;
  4. import org.openqa.selenium.WebElement;
  5. import org.openqa.selenium.interactions.Actions;
  6. import com.vaadin.testbench.elements.TextAreaElement;
  7. import com.vaadin.tests.tb3.SingleBrowserTest;
  8. import static org.junit.Assert.assertEquals;
  9. public class TextAreaEventPropagationModifierKeysTest
  10. extends SingleBrowserTest {
  11. @Test
  12. public void textAreaShiftEnterEventPropagation()
  13. throws InterruptedException {
  14. openTestURL();
  15. Actions builder = new Actions(driver);
  16. WebElement textArea = $(TextAreaElement.class).first();
  17. builder.click(textArea);
  18. builder.sendKeys(textArea, "first line asdf");
  19. pressKeyCombinations(Keys.SHIFT, Keys.ENTER);
  20. builder.sendKeys(textArea, "second line jkl;");
  21. builder.perform();
  22. // Should have triggered shortcut
  23. assertEquals("1. Shift-Enter button pressed", getLogRow(0));
  24. }
  25. @Test
  26. public void textAreaCtrlEnterEventPropagation()
  27. throws InterruptedException {
  28. openTestURL();
  29. WebElement textArea = $(TextAreaElement.class).first();
  30. Actions builder = new Actions(driver);
  31. builder.click(textArea);
  32. builder.sendKeys(textArea, "first line asdf");
  33. pressKeyCombinations(Keys.CONTROL, Keys.ENTER);
  34. builder.sendKeys(textArea, "second line jkl;");
  35. builder.perform();
  36. // Should have triggered shortcut
  37. assertEquals("1. Ctrl-Enter button pressed", getLogRow(0));
  38. }
  39. @Override
  40. protected Class<?> getUIClass() {
  41. return TextAreaEventPropagation.class;
  42. }
  43. // That is a workaround after Chrome 75, sendKeys(Keys.shift, Keys.Tab)
  44. // doesn't work
  45. protected void pressKeyCombinations(Keys keyModifier, Keys key) {
  46. Actions builder = new Actions(driver);
  47. builder.keyDown(keyModifier).perform();
  48. builder.sendKeys(Keys.chord(key)).perform();
  49. builder.keyUp(keyModifier).perform();
  50. }
  51. }