Bug 1271119 - Port test_bug490879.xul from chrome to plain; r=masayuki
authorAryeh Gregor <ayg@aryeh.name>
Tue, 30 Aug 2016 18:25:18 +0300
changeset 432275 8fe257d9c2438ecc15160c3229b25042a5ba3026
parent 432274 26187d6585ae2f40ec06c153e58539f5fffb37d6
child 432276 ae9a33708ecce23b67b973e654f9a43edbf872f5
push id34240
push userbmo:ttromey@mozilla.com
push dateTue, 01 Nov 2016 14:41:32 +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
@@ -1,15 +1,13 @@
 [DEFAULT]
 skip-if = buildapp == 'b2g' || os == 'android'
 support-files = green.png
 
 [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_bug636465.xul]
 [test_bug646194.xul]
--- a/editor/libeditor/tests/mochitest.ini
+++ b/editor/libeditor/tests/mochitest.ini
@@ -55,16 +55,19 @@ skip-if = toolkit == 'android'
 [test_bug480647.html]
 [test_bug480972.html]
 subsuite = clipboard
 skip-if = toolkit == 'android'
 [test_bug483651.html]
 [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>