editor/libeditor/tests/test_bug1140617.xul
author Jorg K <mozilla@jorgk.com>
Wed, 06 May 2015 16:15:00 +0200
changeset 243659 9bbb797f3e28edd6c850f10d55e3e7e189430d2b
permissions -rw-r--r--
Bug 1140617 - Don't clear inline style when pasting image. r=ehsan

<?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=1140617
-->
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
        title="Mozilla Bug 1140617" onload="runTest();">
  <script type="application/javascript"
          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=1140617"
     target="_blank">Mozilla Bug 1140617</a>
  <p/>
  <iframe id="i1" width="200" height="100" src="about:blank" /><br />
  <img id="i" src="green.png" />
  <p/>
  <pre id="test">
  </pre>
  </body>
  <script class="testbody" type="application/javascript">
  <![CDATA[

function runTest() {
  function pasteIntoAndCheck() {
    var e = document.getElementById('i1');
    var doc = e.contentDocument;
    doc.designMode = "on";
    doc.defaultView.focus();
    var selection = doc.defaultView.getSelection();
    selection.removeAllRanges();
    selection.selectAllChildren(doc.body);
    selection.collapseToEnd();

    doc.execCommand("fontname", false, "Arial");
    doc.execCommand("bold", false, null);
    doc.execCommand("insertText", false, "12345");
    doc.execCommand("paste", false, null);
    doc.execCommand("insertText", false, "a");

    is(doc.queryCommandValue("fontname"), "Arial", "Arial expected");
    is(doc.queryCommandState("bold"), true, "Bold expected");
  }

  function copyToClipBoard() {
    var tmpNode = document.popupNode;
    document.popupNode = document.getElementById("i");

    const kCmd = "cmd_copyImageContents";
    var controller = top.document.commandDispatcher
                     .getControllerForCommand(kCmd);
    ok((controller && controller.isCommandEnabled(kCmd)), "have copy command");
    controller.doCommand(kCmd);

    document.popupNode = tmpNode;
  }

  copyToClipBoard();
  pasteIntoAndCheck();

  SimpleTest.finish();
}

SimpleTest.waitForExplicitFinish();
]]>
</script>
</window>