|
1 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
2 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. |
|
4 */ |
|
5 |
|
6 function run_test() { |
|
7 do_test_pending(); |
|
8 createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1"); |
|
9 |
|
10 startupManager(); |
|
11 |
|
12 installAllFiles([do_get_file("data/test_bug541420.xpi")], function() { |
|
13 |
|
14 restartManager(); |
|
15 |
|
16 AddonManager.getAddonByID("bug541420@tests.mozilla.org", function(addon) { |
|
17 |
|
18 do_check_neq(addon, null); |
|
19 do_check_true(addon.hasResource("binary")); |
|
20 let uri = addon.getResourceURI("binary"); |
|
21 do_check_true(uri instanceof AM_Ci.nsIFileURL); |
|
22 let file = uri.file; |
|
23 do_check_true(file.exists()); |
|
24 do_check_true(file.isReadable()); |
|
25 do_check_true(file.isWritable()); |
|
26 |
|
27 // We don't understand executable permissions on Windows since we don't |
|
28 // support NTFS permissions so we don't need to test there. OSX's isExecutable |
|
29 // only tests if the file is an application so it is better to just check the |
|
30 // raw permission bits |
|
31 if (!("nsIWindowsRegKey" in Components.interfaces)) |
|
32 do_check_true((file.permissions & 0100) == 0100); |
|
33 |
|
34 do_execute_soon(do_test_finished); |
|
35 }); |
|
36 }); |
|
37 } |