зеркало из https://github.com/mozilla/gecko-dev.git
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 --HG-- rename : editor/libeditor/tests/test_bug490879.xul => editor/libeditor/tests/test_bug490879.html
This commit is contained in:
Родитель
4e75722fc4
Коммит
35558fd4e9
|
@ -3,8 +3,6 @@ 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]
|
||||
|
|
|
@ -60,6 +60,9 @@ 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]
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
<!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");
|
||||
}
|
||||
|
||||
function pasteInto() {
|
||||
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();
|
||||
SpecialPowers.doCommand(window, "cmd_paste");
|
||||
}
|
||||
|
||||
function copyToClipBoard() {
|
||||
SpecialPowers.setCommandNode(window, document.getElementById("i"));
|
||||
SpecialPowers.doCommand(window, "cmd_copyImageContents");
|
||||
}
|
||||
|
||||
copyToClipBoard();
|
||||
pasteInto();
|
||||
verifyContent();
|
||||
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
addLoadEvent(runTest);
|
||||
</script>
|
|
@ -1,71 +0,0 @@
|
|||
<?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[
|
||||
|
||||
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");
|
||||
}
|
||||
|
||||
function pasteInto() {
|
||||
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);
|
||||
}
|
||||
|
||||
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();
|
||||
pasteInto();
|
||||
verifyContent();
|
||||
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
]]>
|
||||
</script>
|
||||
</window>
|
Загрузка…
Ссылка в новой задаче