1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Text direction switch target of HTMLEditor</title>
<script src="/tests/SimpleTest/EventUtils.js"></script>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" href="/tests/SimpleTest/test.css">
<script>
"use strict";
SimpleTest.waitForExplicitFinish();
SimpleTest.waitForFocus(async () => {
await (async function test_in_contenteditable() {
document.body.innerHTML = "<div><div contenteditable>editable text</div></div>";
const editingHost = document.querySelector("div[contenteditable]");
editingHost.focus();
SpecialPowers.doCommand(window, "cmd_switchTextDirection");
is(
editingHost.getAttribute("dir"),
"rtl",
"test_in_contenteditable: dir attr of the editing host should be set"
);
is(
editingHost.parentElement.getAttribute("dir"),
null,
"test_in_contenteditable: dir attr of the parent div of the editing host should not be set"
);
is(
document.body.getAttribute("dir"),
null,
"test_in_contenteditable: dir attr of the <body> should not be set",
);
is(
document.documentElement.getAttribute("dir"),
null,
"test_in_contenteditable: dir attr of the <html> should not be set",
);
})();
await (async function test_in_designMode() {
document.body.innerHTML = "<div>abc</div>";
document.designMode = "on";
getSelection().collapse(document.querySelector("div").firstChild, 0);
SpecialPowers.doCommand(window, "cmd_switchTextDirection");
is(
document.querySelector("div").getAttribute("dir"),
null,
"test_in_designMode: dir attr of the <div> should not be set",
);
is(
document.body.getAttribute("dir"),
"rtl",
"test_in_designMode: dir attr of the <body> should be set",
);
is(
document.documentElement.getAttribute("dir"),
null,
"test_in_designMode: dir attr of the <html> should not be set",
);
document.designMode = "off";
document.body.removeAttribute("dir");
document.body.innerHTML = "";
document.documentElement.removeAttribute("dir");
})();
SimpleTest.finish();
});
</script>
</head>
<body>
</body>
</html>
|