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
--- 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>