Browse Source

Initialize VRichTextArea.client in RichTextAreaConnector

Fixes #10536
tags/8.4.0.alpha1
Marco Collovati 6 years ago
parent
commit
649f2f3eea

+ 1
- 0
client/src/main/java/com/vaadin/client/ui/richtextarea/RichTextAreaConnector.java View File

@@ -46,6 +46,7 @@ public class RichTextAreaConnector extends AbstractFieldConnector

@Override
protected void init() {
getWidget().client = getConnection();
getWidget().addBlurHandler(event -> flush());
getWidget().addInputHandler(
() -> valueChangeHandler.scheduleValueChange());

+ 25
- 0
uitest/src/main/java/com/vaadin/tests/components/richtextarea/RichTextAreaDelegateToShortcutHandler.java View File

@@ -0,0 +1,25 @@
package com.vaadin.tests.components.richtextarea;

import com.vaadin.event.ShortcutAction;
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractTestUIWithLog;
import com.vaadin.ui.Button;
import com.vaadin.ui.RichTextArea;
import com.vaadin.ui.VerticalLayout;

public class RichTextAreaDelegateToShortcutHandler extends AbstractTestUIWithLog {

@Override
protected void setup(VaadinRequest request) {
final VerticalLayout layout = new VerticalLayout();
final RichTextArea name = new RichTextArea();
name.setCaption("Type your name here:");

Button button = new Button("Click Me");
button.setClickShortcut(ShortcutAction.KeyCode.ENTER);
button.addClickListener(e -> log("ShortcutHandler invoked " + name.getValue()));

layout.addComponents(name, button);
addComponent(layout);
}
}

+ 40
- 0
uitest/src/test/java/com/vaadin/tests/components/richtextarea/RichTextAreaDelegateToShortcutHandlerTest.java View File

@@ -0,0 +1,40 @@
package com.vaadin.tests.components.richtextarea;

import java.util.List;

import com.vaadin.testbench.elements.RichTextAreaElement;
import com.vaadin.tests.tb3.MultiBrowserTest;
import org.junit.Test;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;

import static org.hamcrest.Matchers.containsString;
import static org.junit.Assert.assertThat;

public class RichTextAreaDelegateToShortcutHandlerTest extends MultiBrowserTest {

@Override
public List<DesiredCapabilities> getBrowsersToTest() {
return getBrowsersExcludingPhantomJS();
}

@Test
public void shouldDelegateToShortcutActionHandler() {
openTestURL();

WebElement textAreaEditor = $(RichTextAreaElement.class).first().getEditorIframe();
textAreaEditor.sendKeys("Test");
textAreaEditor.sendKeys(Keys.ENTER);

assertThat("Shortcut handler has not been invoked",
getLogRow(0), containsString("ShortcutHandler invoked Test"));

textAreaEditor.sendKeys(Keys.chord(Keys.SHIFT, Keys.ENTER));
textAreaEditor.sendKeys("another row");
textAreaEditor.sendKeys(Keys.ENTER);

assertThat("Shortcut handler has not been invoked",
getLogRow(0), containsString("ShortcutHandler invoked Test\nanother row"));
}
}

Loading…
Cancel
Save