mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-20 00:35:44 +00:00
b1bf7e0db4
For preparing to remove `nsIPlaintextEditor` interface, this patch moves all of them to `nsIEditor`, but for avoiding bustage in comm-central, makes `nsIPlaintextEditor` inherit `nsIEditor` for now (i.e., even with this patch, script can access old `nsIPlaintextEditor` members with the interface. In C++ code, this patch moves `SetWrapColumn()`, `InsertTextAsAction()`, `InsertTextAsSubAction()` and `InsertLineBreakAsSubAction()` because they do common things between `TextEditor` and `HTMLEditor`. On the other hand, this does not move `TextEditor::GetTextLength()` because it's designed only for `TextEditor`. Differential Revision: https://phabricator.services.mozilla.com/D60820 --HG-- rename : editor/libeditor/tests/test_nsIPlaintextEditor_insertLineBreak.html => editor/libeditor/tests/test_nsIEditor_insertLineBreak.html extra : moz-landing-system : lando
68 lines
2.3 KiB
HTML
68 lines
2.3 KiB
HTML
<?xml version="1.0"?>
|
|
<?xml-stylesheet href="chrome://global/skin"
|
|
type="text/css"?>
|
|
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
|
type="text/css"?>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=599983
|
|
-->
|
|
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
|
title="Mozilla Bug 599983" onload="runTest()">
|
|
<script src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"/>
|
|
<script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
|
|
|
<body xmlns="http://www.w3.org/1999/xhtml">
|
|
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=599983"
|
|
target="_blank">Mozilla Bug 599983</a>
|
|
<editor xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
|
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>
|