< prev index next >
modules/web/src/test/java/javafx/scene/web/MiscellaneousTest.java
Print this page
*** 35,47 ****
--- 35,54 ----
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.concurrent.Worker.State;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+ import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+ import static javafx.concurrent.Worker.State.SUCCEEDED;
+ import javafx.event.Event;
+ import javafx.scene.input.Clipboard;
+ import javafx.scene.input.ClipboardContent;
+ import javafx.scene.input.KeyCode;
import org.junit.Test;
import org.w3c.dom.Document;
+ import org.w3c.dom.html.HTMLInputElement;
public class MiscellaneousTest extends TestBase {
@Test public void testNoEffectOnFollowRedirects() {
assertEquals("Unexpected HttpURLConnection.getFollowRedirects() result",
*** 107,116 ****
--- 114,165 ----
" alert(s.length);\n" +
" s = s + s;\n" +
"}\n" +
"</script>");
}
+ @Test public void testJDK8143894() {
+ loadContent("<!DOCTYPE html><html><body><input id=\"inputText\" value=\"Default text\" autofocus>" +
+ "<input id=\"pasteInputText\"></input><script>var pasteElement=document.getElementById('inputText');" +
+ "pasteElement.onpaste=function myFunction(e){document.getElementById(\"pasteInputText\").value=" +
+ "e.clipboardData.getData('text/plain');}</script></body></html>");
+
+ assertTrue("Load task completed successfully", getLoadState() == SUCCEEDED);
+
+ submit(() -> {
+ String clipboardData = "Clipboard content";
+ ClipboardContent content = new ClipboardContent();
+ content.putString(clipboardData);
+ Clipboard.getSystemClipboard().setContent(content);
+ //paste the ClipboardConent to first inputText input element
+ //from javascript capture this paste and copy to pasteInputtext input element
+ javafx.scene.input.KeyEvent kv = new javafx.scene.input.KeyEvent(null,
+ getView(), // EventTarget
+ javafx.scene.input.KeyEvent.KEY_PRESSED, // eventType
+ "", // Character (unused unless evtType == KEY_TYPED)
+ "", // text
+ KeyCode.V, // KeyCode
+ false, // shiftDown
+ true, // ctrlDown
+ false, // altDown
+ false // metaData
+ );
+ Event.fireEvent(getView(), kv);
+
+ Document doc = getEngine().getDocument();
+ HTMLInputElement el = (HTMLInputElement)doc.getElementById("inputText");
+ assertNotNull("HTMLInputElement Not Null", el);
+ assertEquals("Default value", "Default text", el.getDefaultValue());
+ assertEquals("Paste value", clipboardData, el.getValue());
+
+ HTMLInputElement pl = (HTMLInputElement)doc.getElementById("pasteInputText");
+ assertEquals("Paste value", clipboardData, pl.getValue());
+ });
+ }
private WebEngine createWebEngine() {
return submit(() -> new WebEngine());
}
+
+ private State getLoadState() {
+ return submit(() -> getEngine().getLoadWorker().getState());
+ }
}
< prev index next >