|
1 /* Any copyright is dedicated to the Public Domain. |
|
2 http://creativecommons.org/publicdomain/zero/1.0/ */ |
|
3 |
|
4 const profileDir = gProfD.clone(); |
|
5 profileDir.append("extensions"); |
|
6 |
|
7 function run_test() { |
|
8 do_test_pending(); |
|
9 createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2"); |
|
10 |
|
11 writeInstallRDFForExtension({ |
|
12 id: "addon1@tests.mozilla.org", |
|
13 version: "1.0", |
|
14 name: "Test 1", |
|
15 targetApplications: [{ |
|
16 id: "xpcshell@tests.mozilla.org", |
|
17 minVersion: "0.1", |
|
18 maxVersion: "0.2" |
|
19 }] |
|
20 }, profileDir); |
|
21 |
|
22 startupManager(); |
|
23 |
|
24 AddonManager.strictCompatibility = false; |
|
25 |
|
26 AddonManager.getAddonByID("addon1@tests.mozilla.org", function(aAddon) { |
|
27 do_check_neq(aAddon, null); |
|
28 aAddon.userDisabled = true; |
|
29 do_execute_soon(run_test_1); |
|
30 }); |
|
31 } |
|
32 |
|
33 function run_test_1() { |
|
34 restartManager(); |
|
35 AddonManager.getAddonByID("addon1@tests.mozilla.org", function(aAddon) { |
|
36 do_check_neq(aAddon, null); |
|
37 do_check_true(aAddon.userDisabled); |
|
38 do_check_false(aAddon.isActive); |
|
39 do_check_false(aAddon.appDisabled); |
|
40 |
|
41 prepare_test({ |
|
42 "addon1@tests.mozilla.org": [ |
|
43 ["onPropertyChanged", ["appDisabled"]] |
|
44 ] |
|
45 }, [], run_test_2); |
|
46 |
|
47 AddonManager.strictCompatibility = true; |
|
48 }); |
|
49 } |
|
50 |
|
51 function run_test_2() { |
|
52 AddonManager.getAddonByID("addon1@tests.mozilla.org", function(aAddon) { |
|
53 do_check_neq(aAddon, null); |
|
54 do_check_true(aAddon.userDisabled); |
|
55 do_check_false(aAddon.isActive); |
|
56 do_check_true(aAddon.appDisabled); |
|
57 |
|
58 prepare_test({ |
|
59 "addon1@tests.mozilla.org": [ |
|
60 ["onPropertyChanged", ["appDisabled"]] |
|
61 ] |
|
62 }, [], callback_soon(do_test_finished)); |
|
63 |
|
64 AddonManager.strictCompatibility = false; |
|
65 }); |
|
66 } |