Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 /* Any copyright is dedicated to the Public Domain.
2 * http://creativecommons.org/publicdomain/zero/1.0/ */
4 "use strict";
6 Components.utils.import("resource://gre/modules/osfile.jsm");
8 function run_test() {
9 run_next_test();
10 }
12 /**
13 * Test OS.File.open for reading:
14 * - with an existing file (should succeed);
15 * - with a non-existing file (should fail);
16 * - with inconsistent arguments (should fail).
17 */
18 add_task(function() {
19 // Attempt to open a file that does not exist, ensure that it yields the
20 // appropriate error.
21 try {
22 let fd = yield OS.File.open(OS.Path.join(".", "This file does not exist"));
23 do_check_true(false, "File opening 1 succeeded (it should fail)");
24 } catch (err if err instanceof OS.File.Error && err.becauseNoSuchFile) {
25 do_print("File opening 1 failed " + err);
26 }
28 // Attempt to open a file with the wrong args, so that it fails before
29 // serialization, ensure that it yields the appropriate error.
30 do_print("Attempting to open a file with wrong arguments");
31 try {
32 let fd = yield OS.File.open(1, 2, 3);
33 do_check_true(false, "File opening 2 succeeded (it should fail)" + fd);
34 } catch (err) {
35 do_print("File opening 2 failed " + err);
36 do_check_false(err instanceof OS.File.Error,
37 "File opening 2 returned something that is not a file error");
38 do_check_true(err.constructor.name == "TypeError",
39 "File opening 2 returned a TypeError");
40 }
42 // Attempt to open a file correctly
43 do_print("Attempting to open a file correctly");
44 let openedFile = yield OS.File.open(OS.Path.join(do_get_cwd().path, "test_open.js"));
45 do_print("File opened correctly");
47 do_print("Attempting to close a file correctly");
48 yield openedFile.close();
50 do_print("Attempting to close a file again");
51 yield openedFile.close();
52 });
54 /**
55 * Test the error thrown by OS.File.open when attempting to open a directory
56 * that does not exist.
57 */
58 add_task(function test_error_attributes () {
60 let dir = OS.Path.join(do_get_profile().path, "test_osfileErrorAttrs");
61 let fpath = OS.Path.join(dir, "test_error_attributes.txt");
63 try {
64 yield OS.File.open(fpath, {truncate: true}, {});
65 do_check_true(false, "Opening path suceeded (it should fail) " + fpath);
66 } catch (err) {
67 do_check_true(err instanceof OS.File.Error);
68 do_check_true(err.becauseNoSuchFile);
69 }
70 });