diff options
Diffstat (limited to 'widget/tests/test_bug565392.html')
-rw-r--r-- | widget/tests/test_bug565392.html | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/widget/tests/test_bug565392.html b/widget/tests/test_bug565392.html new file mode 100644 index 000000000..da6999ec6 --- /dev/null +++ b/widget/tests/test_bug565392.html @@ -0,0 +1,70 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=565392 +--> +<head> + <title>Test for Bug 565392</title> + <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> +</head> +<body> +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=565392">Mozilla Bug 565392</a> +<p id="display"></p> +<div id="content" style="display: none"> + +</div> +<pre id="test"> +<script type="application/javascript"> + +/** Test for Bug 565392 **/ + + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + const Cc = SpecialPowers.Cc; + const Ci = SpecialPowers.Ci; + var ds = Cc["@mozilla.org/file/directory_service;1"] + .getService(Ci.nsIProperties); + var dir1 = ds.get("ProfD", Ci.nsIFile); + var clipboard = Cc["@mozilla.org/widget/clipboard;1"] + .getService(Ci.nsIClipboard); + + function getLoadContext() { + return SpecialPowers.wrap(window).QueryInterface(Ci.nsIInterfaceRequestor) + .getInterface(Ci.nsIWebNavigation) + .QueryInterface(Ci.nsILoadContext); + } + + function getTransferableFile(file) { + var transferable = Cc['@mozilla.org/widget/transferable;1'] + .createInstance(Ci.nsITransferable); + transferable.init(getLoadContext()); + transferable.setTransferData("application/x-moz-file", file, 0); + return transferable; + } + + function setClipboardData(transferable) { + clipboard.setData(transferable, null, 1); + } + + function getClipboardData(mime) { + var transferable = Cc['@mozilla.org/widget/transferable;1'] + .createInstance(Ci.nsITransferable); + transferable.init(getLoadContext()); + transferable.addDataFlavor(mime); + clipboard.getData(transferable, 1); + var data = {}; + transferable.getTransferData(mime, data, {}) ; + return data; + } + +setClipboardData(getTransferableFile(dir1)) +is(clipboard.hasDataMatchingFlavors(["application/x-moz-file"], 1,1), true); +var data = getClipboardData("application/x-moz-file"); +var file = data.value.QueryInterface(Ci.nsIFile); +ok(file.isDirectory(), true); +is(file.target, dir1.target, true); + +</script> +</pre> +</body> +</html> |