Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!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>