Bug 1271119 - Port test_bug490879.xul from chrome to plain; r?masayuki draft
authorAryeh Gregor <ayg@aryeh.name>
Tue, 30 Aug 2016 18:25:18 +0300
changeset 430255 1e236ced983c072155a6c499c88798b6f762145b
parent 430254 210e7dcb484a9ebbb68144964c893c05efa985b7
child 430256 951f83592036410b29cb89a08832b800c2423ec4
push id33788
push userayg@aryeh.name
push dateThu, 27 Oct 2016 12:44:14 +0000
reviewersmasayuki
bugs1271119, 490879
milestone52.0a1
Bug 1271119 - Port test_bug490879.xul from chrome to plain; r?masayuki Possible issue: the previous version saved document.popupNode and restored it after copying the image, and the new version does not (because I don't know how). The test seems to pass anyway. It seems I had to use doCommand instead of execCommand to carry out the paste, presumably because of permissions differences between plain and chrome mochitests. MozReview-Commit-ID: CdPUCmEtgwO
editor/libeditor/tests/chrome.ini
editor/libeditor/tests/mochitest.ini
editor/libeditor/tests/test_bug490879.html
editor/libeditor/tests/test_bug490879.xul
--- a/editor/libeditor/tests/chrome.ini
+++ b/editor/libeditor/tests/chrome.ini
@@ -3,18 +3,16 @@ skip-if = buildapp == 'b2g' || os == 'an
 support-files = green.png
 
 [test_bug46555.html]
 [test_bug366682.html]
 support-files = spellcheck.js
 [test_bug471319.html]
 [test_bug483651.html]
 [test_bug489202.xul]
-[test_bug490879.xul]
-subsuite = clipboard
 [test_bug569988.html]
 skip-if = buildapp == 'mulet'
 [test_bug599983.xul]
 skip-if = buildapp == 'mulet'
 [test_bug607584.xul]
 [test_bug616590.xul]
 [test_bug635636.html]
 [test_bug636465.xul]
--- a/editor/libeditor/tests/mochitest.ini
+++ b/editor/libeditor/tests/mochitest.ini
@@ -50,16 +50,19 @@ subsuite = clipboard
 skip-if = toolkit == 'android'
 [test_bug480647.html]
 [test_bug480972.html]
 subsuite = clipboard
 skip-if = toolkit == 'android'
 [test_bug484181.html]
 skip-if = toolkit == 'android'
 [test_bug487524.html]
+[test_bug490879.html]
+subsuite = clipboard
+skip-if = toolkit == 'android' # bug 1299578
 [test_bug502673.html]
 [test_bug514156.html]
 [test_bug520189.html]
 subsuite = clipboard
 skip-if = toolkit == 'android'
 [test_bug525389.html]
 subsuite = clipboard
 skip-if = toolkit == 'android'
rename from editor/libeditor/tests/test_bug490879.xul
rename to editor/libeditor/tests/test_bug490879.html
--- a/editor/libeditor/tests/test_bug490879.xul
+++ b/editor/libeditor/tests/test_bug490879.html
@@ -1,34 +1,17 @@
-<?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=490879
--->
-<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
-        title="Mozilla Bug 490879" 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=490879"
-     target="_blank">Mozilla Bug 490879</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[
-
+<!doctype html>
+<title>Mozilla Bug 490879</title>
+<link rel=stylesheet href="/tests/SimpleTest/test.css">
+<script src="/tests/SimpleTest/SimpleTest.js"></script>
+<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=490879"
+   target="_blank">Mozilla Bug 490879</a>
+<iframe id="i1" width="200" height="100" src="about:blank"></iframe>
+<img id="i" src="green.png">
+<script>
 function runTest() {
   function verifyContent() {
     const kExpectedImgSpec = "data:image/png;base64,";
     var e = document.getElementById('i1');
     var doc = e.contentDocument;
     is(doc.getElementsByTagName("img")[0].src.substring(0, kExpectedImgSpec.length),
        kExpectedImgSpec, "The pasted image is a base64-encoded data: URI");
   }
@@ -37,35 +20,26 @@ function runTest() {
     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("paste", false, null);
+    SpecialPowers.doCommand(window, "cmd_paste");
   }
 
   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;
+    SpecialPowers.setCommandNode(window, document.getElementById("i"));
+    SpecialPowers.doCommand(window, "cmd_copyImageContents");
   }
 
   copyToClipBoard();
   pasteInto();
   verifyContent();
 
   SimpleTest.finish();
 }
 
 SimpleTest.waitForExplicitFinish();
-]]>
+addLoadEvent(runTest);
 </script>
-</window>