diff options
Diffstat (limited to 'dom/base/test/chrome/test_fileconstructor.xhtml')
-rw-r--r-- | dom/base/test/chrome/test_fileconstructor.xhtml | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/dom/base/test/chrome/test_fileconstructor.xhtml b/dom/base/test/chrome/test_fileconstructor.xhtml new file mode 100644 index 0000000000..8884eb169b --- /dev/null +++ b/dom/base/test/chrome/test_fileconstructor.xhtml @@ -0,0 +1,86 @@ +<?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=607114.xul +--> +<window title="Mozilla Bug 607114" + xmlns:html="http://www.w3.org/1999/xhtml" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> + + <script type="application/javascript" + src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> + +<body xmlns="http://www.w3.org/1999/xhtml"> +<a target="_blank" + href="https://bugzilla.mozilla.org/show_bug.cgi?id=607114"> + Mozilla Bug 607114</a> +<p id="display"></p> +<div id="content" style="display: none"> + +</div> +<pre id="test"> +</pre> +</body> + +<script class="testbody" type="application/javascript"> +<![CDATA[ + +/** Test for Bug 607114 **/ + +// eslint-disable-next-line mozilla/no-addtask-setup +add_task(async function setup() { + await SpecialPowers.pushPrefEnv({ set: [[ "dom.file.createInChild", true ]]}); +}); + +add_task(async function test() { + var file = SpecialPowers.Services.dirsvc.get("CurWorkD", Ci.nsIFile); + // man I wish this were simpler ... + file.append("chrome"); + file.append("dom"); + file.append("base"); + file.append("test"); + file.append("chrome"); + file.append("fileconstructor_file.png"); + + let domFile = await File.createFromFileName(file.path); + + ok(File.isInstance(domFile), "File() should return a File"); + is(domFile.type, "image/png", "File should be a PNG"); + is(domFile.size, 95, "File has size 95 (and more importantly we can read it)"); + + domFile = await File.createFromNsIFile(file); + ok(File.isInstance(domFile), "File() should return a File for an nsIFile"); + is(domFile.type, "image/png", "File should be a PNG"); + is(domFile.size, 95, "File has size 95 (and more importantly we can read it)"); + + try { + await File.createFromFileName( + "i/sure/hope/this/does/not/exist/anywhere.txt" + ); + ok(false, "Attempt to construct a non-existent file should fail."); + } catch (ex) { + is( + ex.result, + Cr.NS_ERROR_FILE_UNRECOGNIZED_PATH, + "Constructing a non-existing file should fail with the correct error code" + ); + } + let dir = SpecialPowers.Services.dirsvc.get("CurWorkD", Ci.nsIFile); + try { + await File.createFromNsIFile(dir); + ok(false, "Attempt to construct a file from a directory should fail."); + } catch (ex) { + is( + ex.result, + Cr.NS_ERROR_FILE_IS_DIRECTORY, + "Constructing a file from a directory should fail with the correct error code" + ); + } +}) +]]> +</script> + +</window> |