gecko-dev/editor/libeditor/tests/test_bug795785.html
Brian Grinstead ede8c44ef2 Bug 1544322 - Part 2.1 - Remove the [type] attribute for one-liner <script> tags loading files in /tests/SimpleTest/ in everything except for dom/ r=bzbarsky
This excludes dom/, otherwise the file size is too large for phabricator to handle.

This is an autogenerated commit to handle scripts loading mochitest harness files, in
the simple case where the script src is on the same line as the tag.

This was generated with https://bug1544322.bmoattachments.org/attachment.cgi?id=9058170
using the `--part 2` argument.

Differential Revision: https://phabricator.services.mozilla.com/D27456

--HG--
extra : moz-landing-system : lando
2019-04-16 03:50:44 +00:00

147 lines
5.1 KiB
HTML

<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=795785
-->
<head>
<title>Test for Bug 795785</title>
<script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<script src="/tests/SimpleTest/EventUtils.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=795785">Mozilla Bug 795785</a>
<div id="display">
<textarea id="textarea" style="overflow: hidden; height: 3em; width: 5em; word-wrap: normal;"></textarea>
<div id="div" contenteditable style="overflow: hidden; height: 3em; width: 5em;"></div>
</div>
<div id="content" style="display: none">
</div>
<pre id="test">
</pre>
<script class="testbody" type="application/javascript">
SimpleTest.waitForExplicitFinish();
SimpleTest.requestFlakyTimeout("This test uses setTimeouts in order to fix an intermittent failure.");
// Turn off spatial navigation because it hijacks arrow key events and VK_RETURN
// events.
SimpleTest.waitForFocus(function() {
SpecialPowers.pushPrefEnv({"set": [["snav.enabled", false]]}, runTests);
});
var textarea = document.getElementById("textarea");
var div = document.getElementById("div");
function hitEventLoop(aFunc, aTimes) {
if (--aTimes) {
setTimeout(hitEventLoop, 0, aFunc, aTimes);
} else {
setTimeout(aFunc, 100);
}
}
function doKeyEventTest(aElement, aElementDescription, aCallback) {
aElement.focus();
aElement.scrollTop = 0;
hitEventLoop(function() {
is(aElement.scrollTop, 0,
aElementDescription + "'s scrollTop isn't 0");
synthesizeKey("KEY_Enter", {shiftKey: true, repeat: 6});
hitEventLoop(function() {
isnot(aElement.scrollTop, 0,
aElementDescription + " was not scrolled by inserting line breaks");
var scrollTop = aElement.scrollTop;
synthesizeKey("KEY_ArrowUp", {repeat: 5});
hitEventLoop(function() {
isnot(aElement.scrollTop, scrollTop,
aElementDescription + " was not scrolled by up key events");
synthesizeKey("KEY_ArrowDown", {repeat: 5});
hitEventLoop(function() {
is(aElement.scrollTop, scrollTop,
aElementDescription + " was not scrolled by down key events");
var longWord = "aaaaaaaaaaaaaaaaaaaa";
sendString(longWord);
hitEventLoop(function() {
isnot(aElement.scrollLeft, 0,
aElementDescription + " was not scrolled by typing long word");
var scrollLeft = aElement.scrollLeft;
synthesizeKey("KEY_ArrowLeft", {repeat: longWord.length});
hitEventLoop(function() {
isnot(aElement.scrollLeft, scrollLeft,
aElementDescription + " was not scrolled by left key events");
synthesizeKey("KEY_ArrowRight", {repeat: longWord.length});
hitEventLoop(function() {
is(aElement.scrollLeft, scrollLeft,
aElementDescription + " was not scrolled by right key events");
aCallback();
}, 20);
}, 20);
}, 20);
}, 20);
}, 20);
}, 20);
}, 20);
}
function doCompositionTest(aElement, aElementDescription, aCallback) {
aElement.focus();
aElement.scrollTop = 0;
hitEventLoop(function() {
is(aElement.scrollTop, 0,
aElementDescription + "'s scrollTop isn't 0");
var str = "Web \u958b\u767a\u8005\u306e\u7686\u3055\u3093\u306f\u3001" +
"Firefox \u306b\u5b9f\u88c5\u3055\u308c\u3066\u3044\u308b HTML5" +
" \u3084 CSS \u306e\u65b0\u6a5f\u80fd\u3092\u6d3b\u7528\u3059" +
"\u308b\u3053\u3068\u3067\u3001\u9b45\u529b\u3042\u308b Web " +
"\u30b5\u30a4\u30c8\u3084\u9769\u65b0\u7684\u306a Web \u30a2" +
"\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u3088\u308a" +
"\u77ed\u6642\u9593\u3067\u7c21\u5358\u306b\u4f5c\u6210\u3067" +
"\u304d\u307e\u3059\u3002";
synthesizeCompositionChange({
composition: {
string: str,
clauses: [
{ length: str.length, attr: COMPOSITION_ATTR_RAW_CLAUSE },
],
},
caret: { start: str.length, length: 0 },
});
hitEventLoop(function() {
isnot(aElement.scrollTop, 0,
aElementDescription + " was not scrolled by composition");
synthesizeComposition({ type: "compositioncommit", data: "" });
hitEventLoop(function() {
is(aElement.scrollTop, 0,
aElementDescription + " was not scrolled back to the top by canceling composition");
aCallback();
}, 20);
}, 20);
}, 20);
}
function runTests() {
doKeyEventTest(textarea, "textarea",
function() {
textarea.value = "";
doKeyEventTest(div, "div (contenteditable)",
function() {
div.innerHTML = "";
doCompositionTest(textarea, "textarea",
function() {
doCompositionTest(div, "div (contenteditable)",
function() {
SimpleTest.finish();
});
});
});
});
}
</script>
</body>
</html>