diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /dom/events/test/test_dom_before_after_keyboard_event_remote.html | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'dom/events/test/test_dom_before_after_keyboard_event_remote.html')
-rw-r--r-- | dom/events/test/test_dom_before_after_keyboard_event_remote.html | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/dom/events/test/test_dom_before_after_keyboard_event_remote.html b/dom/events/test/test_dom_before_after_keyboard_event_remote.html new file mode 100644 index 000000000..b82b102a9 --- /dev/null +++ b/dom/events/test/test_dom_before_after_keyboard_event_remote.html @@ -0,0 +1,195 @@ +<!DOCTYPE HTML> +<html> +<head> + <title>Test for Bug 989198</title> + <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script> + <script type="text/javascript" src="/tests/SimpleTest/NativeKeyCodes.js"></script> + <script type="text/javascript" src="bug989198_helper.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> +</head> +<body onload="runTests();"> +<a target="_blank" + href="https://bugzilla.mozilla.org/show_bug.cgi?id=989198">Mozilla Bug 989198</a> +<p id="display"></p> +<div id="content"> +</div> +<pre id="test"> +<script type="application/javascript"> + +SimpleTest.waitForExplicitFinish(); +SimpleTest.requestFlakyTimeout("untriaged"); + +var testsForEventOrder = [ + { + description: "Testing the order of the events (OOP)", + expectedEvents: [ [ kParent | kBeforeEvent | kKeyDownEvent, + kParent | kKeyDownEvent, + kChild | kKeyDownEvent, + kParent | kAfterEvent | kKeyDownEvent ], + [ kParent | kBeforeEvent | kKeyUpEvent, + kParent | kKeyUpEvent, + kChild | kKeyUpEvent, + kParent | kAfterEvent | kKeyUpEvent ] ], + resultEvents: [], + classifiedEvents: [ [], [] ], + doPreventDefaultAt: kUnknownEvent + }, + { + description: "Testing the order of the events (OOP), calling " + + "preventDefault() at \"mozbrowserbeforekeydown\" event", + expectedEvents: [ [ kParent | kBeforeEvent | kKeyDownEvent, + kParent | kAfterEvent | kKeyDownEvent ], + [ kParent | kBeforeEvent | kKeyUpEvent, + kParent | kKeyUpEvent, + kChild | kKeyUpEvent, + kParent | kAfterEvent | kKeyUpEvent ] ], + resultEvents: [], + classifiedEvents: [ [], [] ], + doPreventDefaultAt: kParent | kBeforeEvent | kKeyDownEvent + }, + { + description: "Testing the order of the events (OOP), calling " + + "preventDefault() at \"mozbrowserbeforekeyup\" event", + expectedEvents: [ [ kParent | kBeforeEvent | kKeyDownEvent, + kParent | kKeyDownEvent, + kChild | kKeyDownEvent, + kParent | kAfterEvent | kKeyDownEvent ], + [ kParent | kBeforeEvent | kKeyUpEvent, + kParent | kAfterEvent | kKeyUpEvent ] ], + resultEvents: [], + classifiedEvents: [ [], [] ], + doPreventDefaultAt: kParent | kBeforeEvent | kKeyUpEvent + }, + { + description: "Testing the order of the events (OOP), calling " + + "preventDefault() at \"keydown\" event in parent process", + expectedEvents: [ [ kParent | kBeforeEvent | kKeyDownEvent, + kParent | kKeyDownEvent, + kParent | kAfterEvent | kKeyDownEvent ], + [ kParent | kBeforeEvent | kKeyUpEvent, + kParent | kKeyUpEvent, + kChild | kKeyUpEvent, + kParent | kAfterEvent | kKeyUpEvent ] ], + resultEvents: [], + classifiedEvents: [ [], [] ], + doPreventDefaultAt: kParent | kKeyDownEvent + }, + { + description: "Testing the order of the events (OOP), calling " + + "preventDefault() at \"keydown\" event in child process", + expectedEvents: [ [ kParent | kBeforeEvent | kKeyDownEvent, + kParent | kKeyDownEvent, + kChild | kKeyDownEvent, + kParent | kAfterEvent | kKeyDownEvent ], + [ kParent | kBeforeEvent | kKeyUpEvent, + kParent | kKeyUpEvent, + kChild | kKeyUpEvent, + kParent | kAfterEvent | kKeyUpEvent ] ], + resultEvents: [], + classifiedEvents: [ [], [] ], + doPreventDefaultAt: kChild | kKeyDownEvent + }, + { + description: "Testing the order of the events (OOP), calling " + + "preventDefault() at \"keyup\" event in parent process", + expectedEvents: [ [ kParent | kBeforeEvent | kKeyDownEvent, + kParent | kKeyDownEvent, + kChild | kKeyDownEvent, + kParent | kAfterEvent | kKeyDownEvent ], + [ kParent | kBeforeEvent | kKeyUpEvent, + kParent | kKeyUpEvent, + kParent | kAfterEvent | kKeyUpEvent ] ], + resultEvents: [], + classifiedEvents: [ [], [] ], + doPreventDefaultAt: kParent | kKeyUpEvent + }, + { + description: "Testing the order of the events (OOP), calling " + + "preventDefault() at \"keyup\" event in child process", + expectedEvents: [ [ kParent | kBeforeEvent | kKeyDownEvent, + kParent | kKeyDownEvent, + kChild | kKeyDownEvent, + kParent | kAfterEvent | kKeyDownEvent ], + [ kParent | kBeforeEvent | kKeyUpEvent, + kParent | kKeyUpEvent, + kChild | kKeyUpEvent, + kParent | kAfterEvent | kKeyUpEvent ] ], + resultEvents: [], + classifiedEvents: [ [], [] ], + doPreventDefaultAt: kChild | kKeyUpEvent + } +]; + +function cleanupTest() +{ + teardownHandlers(window, embedderHandler); + runTests(); +} + +function testEventOrder() +{ + if (!testsForEventOrder.length) { + runTests(); + return; + } + gCurrentTest = testsForEventOrder.shift(); + + synthesizeKey('a', {}, document.getElementById("embedded").contentWindow); + // It take some time to propagate events to a remote iframe. + + waitAndVerifyResult(0); +} + +function waitAndVerifyResult(aCount) { + expectedEventLength = gCurrentTest.expectedEvents[0].length + + gCurrentTest.expectedEvents[1].length; + if (gCurrentTest.resultEvents.length >= expectedEventLength || aCount > 10) { + classifyEvents(gCurrentTest); + verifyResults(gCurrentTest); + testEventOrder(); + } + else { + setTimeout(() => waitAndVerifyResult(aCount + 1), + 100); + } +} + +var tests = [ + function addPermissions() { + SpecialPowers.pushPermissions( + [{ type: "before-after-keyboard-event", allow: true, context: document }, + { type: "browser", allow: true, context: document }], + runTests); + }, + function addPreferences() { + SpecialPowers.pushPrefEnv( + { "set": [["dom.beforeAfterKeyboardEvent.enabled", true], + ["dom.mozBrowserFramesEnabled", true], + ["network.disable.ipc.security", true], + ["dom.ipc.tabs.disabled", false]] }, + runTests); + }, + + // Tests for out-of-process iframe, i.el. <iframe mozbrowser remote> + function () { + prepareTest(true); + }, + testEventOrder, + cleanupTest +]; + +function runTests() +{ + if (!tests.length) { + SimpleTest.finish(); + return; + } + + var test = tests.shift(); + test(); +} + +</script> +</body> +</html> |