<?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 **/ var file = Components.classes["@mozilla.org/file/directory_service;1"] .getService(Components.interfaces.nsIProperties) .get("CurWorkD", Components.interfaces.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"); doTest(File.createFromFileName(file.path)); doTest(File.createFromNsIFile(file)); function doTest(domfile) { ok(domfile instanceof File, "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)"); } try { var nonexistentfile = File.createFromFileName("i/sure/hope/this/does/not/exist/anywhere.txt"); ok(false, "This should never be reached!"); } catch (e) { ok(true, "Attempt to construct a non-existent file should fail."); } try { var dir = Components.classes["@mozilla.org/file/directory_service;1"] .getService(Components.interfaces.nsIProperties) .get("CurWorkD", Components.interfaces.nsIFile); var dirfile = File.createFromNsIFile(dir); ok(false, "This should never be reached!"); } catch (e) { ok(true, "Attempt to construct a file from a directory should fail."); } ]]> </script> </window>