74 lines
3.0 KiB
HTML
74 lines
3.0 KiB
HTML
<html><!-- webkit-test-runner [ JavaScriptCanOpenWindowsAutomatically=false ] -->
|
|
<head>
|
|
<script>
|
|
if (window.testRunner) {
|
|
testRunner.dumpAsText();
|
|
testRunner.setCanOpenWindows();
|
|
testRunner.setCloseRemainingWindowsWhenComplete(true);
|
|
testRunner.waitUntilDone();
|
|
}
|
|
|
|
function test() {
|
|
if (!window.testRunner)
|
|
return;
|
|
// Record current window count.
|
|
window.windowCount = window.testRunner.windowCount();
|
|
console.log("window count: " + window.testRunner.windowCount());
|
|
// Send a mouse-click event to set the input focus to the test plug-in.
|
|
eventSender.mouseMoveTo(0, 0);
|
|
eventSender.mouseMoveTo(20, 20);
|
|
eventSender.mouseDown();
|
|
eventSender.mouseUp();
|
|
}
|
|
|
|
// This function will be called when plugin receives a mousedown event.
|
|
function popup_by_mousedown() {
|
|
// Open a new window.
|
|
window.open("data:text/html\, open new window by mouse down", "_blank");
|
|
// Check the new opened window and logging the result.
|
|
console.log("window count: " + window.testRunner.windowCount());
|
|
if (window.testRunner.windowCount() == (window.windowCount + 1)) {
|
|
document.getElementById("mousedown_output").innerHTML = "PASSED";
|
|
window.windowCount++;
|
|
}
|
|
setTimeout(send_key_to_plugin, 100);
|
|
}
|
|
|
|
function send_key_to_plugin() {
|
|
// Send keyboard events to the plug-in.
|
|
eventSender.mouseMoveTo(0, 0);
|
|
eventSender.mouseMoveTo(60, 60);
|
|
eventSender.mouseDown();
|
|
eventSender.mouseUp();
|
|
eventSender.keyDown('p');
|
|
}
|
|
|
|
// This function will be called when plugin receives a keydown event.
|
|
function popup_by_keydown() {
|
|
// Open a new window.
|
|
window.open("data:text/html\, open new window by key down", "_blank");
|
|
// Check the new opened window and logging the result.
|
|
console.log("window count: " + window.testRunner.windowCount());
|
|
if (window.testRunner.windowCount() == (window.windowCount + 1))
|
|
document.getElementById("keydown_output").innerHTML = "PASSED";
|
|
// Wait for plugin stopping and ending this test.
|
|
setTimeout(end_test, 100);
|
|
}
|
|
|
|
function end_test() {
|
|
// Change focus back to window to stop the plugin event logging.
|
|
window.focus();
|
|
// Close the test.
|
|
setTimeout(function() {testRunner.notifyDone();}, 1);
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="internals.updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(); test();">
|
|
<embed type="application/x-webkit-test-netscape" width=100 height=40 evaluatescript="mouse::popup_by_mousedown()" windowedplugin="false"></embed><br>
|
|
<embed type="application/x-webkit-test-netscape" width=100 height=40 evaluatescript="key::popup_by_keydown()" windowedplugin="false"></embed><br>
|
|
Specify a script and a mouse/keyboard event to the plugin. The specified script will be evaluated in the browser when the specified event is received by the plugin. The test is for bug https://bugs.webkit.org/show_bug.cgi?id=41292.<br>
|
|
Opening window by mouse down is <span id="mousedown_output">FAILED</span><br>
|
|
Opening window by key down is <span id="keydown_output">FAILED</span>
|
|
</body>
|
|
</html>
|