gecko-dev/widget/tests/test_bug466599.xul
Brian Grinstead 911776d674 Bug 1544322 - Part 3 - Remove the [type] attribute for multiline <script> tags loading files in chrome://mochikit/content/ r=bzbarsky
This is an autogenerated commit to handle scripts loading mochitest harness files, in
the case where the script src is on the line below the script tag.

This was generated with https://bug1544322.bmoattachments.org/attachment.cgi?id=9058170
using the `--part 3` argument.

Differential Revision: https://phabricator.services.mozilla.com/D27458

--HG--
extra : moz-landing-system : lando
2019-04-16 03:59:25 +00:00

105 lines
2.9 KiB
XML

<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
<?xml-stylesheet type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=466599
-->
<window title="Mozilla Bug 466599"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="initAndRunTests()">
<script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
<!-- test results are displayed in the html:body -->
<body xmlns="http://www.w3.org/1999/xhtml">
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test"></pre>
</body>
<!-- test code goes here -->
<script class="testbody" type="application/javascript">
<![CDATA[
/** Test for Bug 466599 **/
function getLoadContext() {
return window.docShell.QueryInterface(Ci.nsILoadContext);
}
function copyToClipboard(txt)
{
var clipid = Ci.nsIClipboard;
var clip =
Cc['@mozilla.org/widget/clipboard;1'].createInstance(clipid);
if (!clip)
return false;
var trans =
Cc['@mozilla.org/widget/transferable;1'].createInstance(Ci.nsITransferable);
if (!trans)
return false;
trans.init(getLoadContext());
trans.addDataFlavor('text/html');
var str =
Cc['@mozilla.org/supports-string;1'].createInstance(Ci.nsISupportsString);
var copytext = txt;
str.data = copytext;
trans.setTransferData("text/html",str,copytext.length*2);
if (!clip)
return false;
clip.setData(trans,null,clipid.kGlobalClipboard);
return true;
}
function readFromClipboard()
{
var clipid = Ci.nsIClipboard;
var clip =
Cc['@mozilla.org/widget/clipboard;1'].createInstance(clipid);
if (!clip)
return;
var trans =
Cc['@mozilla.org/widget/transferable;1'].createInstance(Ci.nsITransferable);
if (!trans)
return;
trans.init(getLoadContext());
trans.addDataFlavor('text/html');
clip.getData(trans,clipid.kGlobalClipboard);
var str = new Object();
trans.getTransferData("text/html",str);
if (str)
str = str.value.QueryInterface(Ci.nsISupportsString);
if (str)
pastetext = str.data;
return pastetext;
}
function encodeHtmlEntities(s)
{
var result = '';
for (var i = 0; i < s.length; i++) {
var c = s.charAt(i);
result += {'<':'&lt;', '>':'&gt;', '&':'&amp;', '"':'&quot;'}[c] || c;
}
return result;
}
function initAndRunTests()
{
var source = '<p>Lorem ipsum</p>';
var expect = new RegExp('<html>.*charset=utf-8.*' + source + '.*</html>', 'im');
var result = copyToClipboard(source);
ok(result, "copied HTML data to system pasteboard");
result = readFromClipboard();
ok(expect.test(result), "data on system pasteboard is wrapped with charset metadata");
$("display").innerHTML =
'<em>source:</em> <pre>' + encodeHtmlEntities(source) + '</pre><br/>' +
'<em>result:</em> <pre>' + encodeHtmlEntities(result) + '</pre>';
}
]]>
</script>
</window>