diff -r 000000000000 -r 6474c204b198 toolkit/components/osfile/tests/xpcshell/test_osfile_closed.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toolkit/components/osfile/tests/xpcshell/test_osfile_closed.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,48 @@ +"use strict"; + +Components.utils.import("resource://gre/modules/osfile.jsm"); +Components.utils.import("resource://gre/modules/Task.jsm"); + +function run_test() { + do_test_pending(); + run_next_test(); +} + +add_task(function test_closed() { + OS.Shared.DEBUG = true; + let currentDir = yield OS.File.getCurrentDirectory(); + do_print("Open a file, ensure that we can call stat()"); + let path = OS.Path.join(currentDir, "test_osfile_closed.js"); + let file = yield OS.File.open(path); + yield file.stat(); + do_check_true(true); + + yield file.close(); + + do_print("Ensure that we cannot stat() on closed file"); + let exn; + try { + yield file.stat(); + } catch (ex) { + exn = ex; + } + do_print("Ensure that this raises the correct error"); + do_check_true(!!exn); + do_check_true(exn instanceof OS.File.Error); + do_check_true(exn.becauseClosed); + + do_print("Ensure that we cannot read() on closed file"); + exn = null; + try { + yield file.read(); + } catch (ex) { + exn = ex; + } + do_print("Ensure that this raises the correct error"); + do_check_true(!!exn); + do_check_true(exn instanceof OS.File.Error); + do_check_true(exn.becauseClosed); + +}); + +add_task(do_test_finished);