michael@0: "use strict"; michael@0: michael@0: Components.utils.import("resource://gre/modules/osfile.jsm"); michael@0: Components.utils.import("resource://gre/modules/Task.jsm"); michael@0: michael@0: function run_test() { michael@0: do_test_pending(); michael@0: run_next_test(); michael@0: } michael@0: michael@0: add_task(function test_closed() { michael@0: OS.Shared.DEBUG = true; michael@0: let currentDir = yield OS.File.getCurrentDirectory(); michael@0: do_print("Open a file, ensure that we can call stat()"); michael@0: let path = OS.Path.join(currentDir, "test_osfile_closed.js"); michael@0: let file = yield OS.File.open(path); michael@0: yield file.stat(); michael@0: do_check_true(true); michael@0: michael@0: yield file.close(); michael@0: michael@0: do_print("Ensure that we cannot stat() on closed file"); michael@0: let exn; michael@0: try { michael@0: yield file.stat(); michael@0: } catch (ex) { michael@0: exn = ex; michael@0: } michael@0: do_print("Ensure that this raises the correct error"); michael@0: do_check_true(!!exn); michael@0: do_check_true(exn instanceof OS.File.Error); michael@0: do_check_true(exn.becauseClosed); michael@0: michael@0: do_print("Ensure that we cannot read() on closed file"); michael@0: exn = null; michael@0: try { michael@0: yield file.read(); michael@0: } catch (ex) { michael@0: exn = ex; michael@0: } michael@0: do_print("Ensure that this raises the correct error"); michael@0: do_check_true(!!exn); michael@0: do_check_true(exn instanceof OS.File.Error); michael@0: do_check_true(exn.becauseClosed); michael@0: michael@0: }); michael@0: michael@0: add_task(do_test_finished);