Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test gets skipped with pattern: os == 'android'
- Manifest: editor/libeditor/tests/chrome.toml
<?xml version="1.0"?>
type="text/css"?>
type="text/css"?>
<!--
-->
id="editor"
editortype="html"
src="about:blank" />
</body>
<script type="application/javascript">
<![CDATA[
SimpleTest.waitForExplicitFinish();
const kAllowInteraction = Ci.nsIEditor.eEditorAllowInteraction;
const kMailMask = Ci.nsIEditor.eEditorMailMask;
function runTest() {
testEditor(false, false);
testEditor(false, true);
testEditor(true, false);
testEditor(true, true);
SimpleTest.finish();
}
function testEditor(setAllowInteraction, setMailMask) {
var desc = " with " + (setAllowInteraction ? "" : "no ") +
"eEditorAllowInteraction and " +
(setMailMask ? "" : "no ") + "eEditorMailMask";
var editorElem = document.getElementById("editor");
var editorObj = editorElem.getEditor(editorElem.contentWindow);
editorObj.flags = (setAllowInteraction ? kAllowInteraction : 0) |
(setMailMask ? kMailMask : 0);
var editorDoc = editorElem.contentDocument;
editorDoc.body.innerHTML = "<p>foo<p>bar";
editorDoc.getSelection().selectAllChildren(editorDoc.body.firstChild);
editorDoc.execCommand("bold");
var createsDirty = !setAllowInteraction || setMailMask;
(createsDirty ? isnot : is)(editorDoc.querySelector("[_moz_dirty]"), null,
"Elements with _moz_dirty" + desc);
// Even if we do create _moz_dirty, we should strip it for innerHTML.
is(editorDoc.body.innerHTML, "<p><b>foo</b></p><p>bar</p>",
"innerHTML" + desc);
}
]]>
</script>
</window>