OLD | NEW |
1 "use strict"; | 1 "use strict"; |
2 | 2 |
| 3 (function() |
3 { | 4 { |
4 module("Preferences", | 5 const {Prefs} = require("prefs"); |
5 { | 6 |
| 7 module("Preferences", { |
6 setup() | 8 setup() |
7 { | 9 { |
8 preparePrefs.call(this); | 10 this._pbackup = Object.create(null); |
| 11 for (let pref in Prefs) |
| 12 { |
| 13 let value = Prefs[pref]; |
| 14 this._pbackup[pref] = value; |
| 15 } |
| 16 Prefs.enabled = true; |
9 }, | 17 }, |
10 | 18 |
11 teardown() | 19 teardown() |
12 { | 20 { |
13 restorePrefs.call(this); | 21 for (let pref in this._pbackup) |
| 22 Prefs[pref] = this._pbackup[pref]; |
14 } | 23 } |
15 }); | 24 }); |
16 | 25 |
17 function checkPrefExists(name, expectedValue, description, assert) | 26 function checkPrefExists(name, expectedValue, description, assert) |
18 { | 27 { |
19 let done = assert.async(); | 28 let done = assert.async(); |
20 let key = "pref:" + name; | 29 let key = "pref:" + name; |
21 chrome.storage.local.get(key, items => | 30 chrome.storage.local.get(key, items => |
22 { | 31 { |
23 equal(key in items, expectedValue, description); | 32 equal(key in items, expectedValue, description); |
24 done(); | 33 done(); |
25 }); | 34 }); |
26 } | 35 } |
27 | 36 |
28 function checkPref(name, expectedValue, description, assert) | 37 function checkPref(name, expectedValue, description, assert) |
29 { | 38 { |
30 let done = assert.async(); | 39 let done = assert.async(); |
31 let key = "pref:" + name; | 40 let key = "pref:" + name; |
32 chrome.storage.local.get(key, items => | 41 chrome.storage.local.get(key, items => |
33 { | 42 { |
34 deepEqual(items[key], expectedValue, description); | 43 deepEqual(items[key], expectedValue, description); |
35 done(); | 44 done(); |
36 }); | 45 }); |
37 } | 46 } |
38 | 47 |
39 test("Numerical pref", assert => | 48 test("Numerical pref", assert => |
40 { | 49 { |
41 Prefs.patternsbackups = 5; | 50 Prefs.patternsbackups = 5; |
42 equal(Prefs.patternsbackups, 5, "Prefs object returns the correct value afte
r setting pref to default value"); | 51 equal( |
43 checkPrefExists("patternsbackups", false, "User-defined pref has been remove
d", assert); | 52 Prefs.patternsbackups, 5, |
| 53 "Prefs object returns the correct value after setting pref to " + |
| 54 "default value" |
| 55 ); |
| 56 checkPrefExists( |
| 57 "patternsbackups", false, "User-defined pref has been removed", assert |
| 58 ); |
44 Prefs.patternsbackups = 12; | 59 Prefs.patternsbackups = 12; |
45 equal(Prefs.patternsbackups, 12, "Prefs object returns the correct value aft
er setting pref to non-default value"); | 60 equal( |
46 checkPrefExists("patternsbackups", true, "User-defined pref has been created
", assert); | 61 Prefs.patternsbackups, 12, |
| 62 "Prefs object returns the correct value after setting pref to " + |
| 63 "non-default value" |
| 64 ); |
| 65 checkPrefExists( |
| 66 "patternsbackups", true, "User-defined pref has been created", assert |
| 67 ); |
47 checkPref("patternsbackups", 12, "Value has been written", assert); | 68 checkPref("patternsbackups", 12, "Value has been written", assert); |
48 }); | 69 }); |
49 | 70 |
50 test("Boolean pref", assert => | 71 test("Boolean pref", assert => |
51 { | 72 { |
52 Prefs.enabled = true; | 73 Prefs.enabled = true; |
53 equal(Prefs.enabled, true, "Prefs object returns the correct value after set
ting pref to default value"); | 74 equal( |
54 checkPrefExists("enabled", false, "User-defined pref has been removed", asse
rt); | 75 Prefs.enabled, true, |
| 76 "Prefs object returns the correct value after setting pref to " + |
| 77 "default value" |
| 78 ); |
| 79 checkPrefExists("enabled", false, "User-defined pref has been removed", |
| 80 assert); |
55 Prefs.enabled = false; | 81 Prefs.enabled = false; |
56 equal(Prefs.enabled, false, "Prefs object returns the correct value after se
tting pref to non-default value"); | 82 equal( |
57 checkPrefExists("enabled", true, "User-defined pref has been created", asser
t); | 83 Prefs.enabled, false, |
| 84 "Prefs object returns the correct value after setting pref to " + |
| 85 "non-default value" |
| 86 ); |
| 87 checkPrefExists("enabled", true, "User-defined pref has been created", |
| 88 assert); |
58 checkPref("enabled", false, "Value has been written", assert); | 89 checkPref("enabled", false, "Value has been written", assert); |
59 }); | 90 }); |
60 | 91 |
61 test("String pref", assert => | 92 test("String pref", assert => |
62 { | 93 { |
63 let defaultValue = "https://notification.adblockplus.org/notification.json"; | 94 let defaultValue = "https://notification.adblockplus.org/notification.json"; |
64 Prefs.notificationurl = defaultValue; | 95 Prefs.notificationurl = defaultValue; |
65 equal(Prefs.notificationurl, defaultValue, "Prefs object returns the correct
value after setting pref to default value"); | 96 equal( |
66 checkPrefExists("notificationurl", false, "User-defined pref has been remove
d", assert); | 97 Prefs.notificationurl, defaultValue, |
| 98 "Prefs object returns the correct value after setting pref to " + |
| 99 "default value" |
| 100 ); |
| 101 checkPrefExists("notificationurl", false, |
| 102 "User-defined pref has been removed", assert); |
67 | 103 |
68 let newValue = "https://notification.adblockplus.org/foo\u1234bar.json"; | 104 let newValue = "https://notification.adblockplus.org/foo\u1234bar.json"; |
69 Prefs.notificationurl = newValue; | 105 Prefs.notificationurl = newValue; |
70 equal(Prefs.notificationurl, newValue, "Prefs object returns the correct val
ue after setting pref to non-default value"); | 106 equal( |
71 checkPrefExists("notificationurl", true, "User-defined pref has been created
", assert); | 107 Prefs.notificationurl, newValue, |
| 108 "Prefs object returns the correct value after setting pref to " + |
| 109 "non-default value" |
| 110 ); |
| 111 checkPrefExists("notificationurl", true, |
| 112 "User-defined pref has been created", assert); |
72 checkPref("notificationurl", newValue, "Value has been written", assert); | 113 checkPref("notificationurl", newValue, "Value has been written", assert); |
73 }); | 114 }); |
74 | 115 |
75 test("Object pref (complete replacement)", assert => | 116 test("Object pref (complete replacement)", assert => |
76 { | 117 { |
77 Prefs.notificationdata = {}; | 118 Prefs.notificationdata = {}; |
78 deepEqual(Prefs.notificationdata, {}, "Prefs object returns the correct valu
e after setting pref to default value"); | 119 deepEqual( |
| 120 Prefs.notificationdata, {}, |
| 121 "Prefs object returns the correct value after setting pref to " + |
| 122 "default value" |
| 123 ); |
79 | 124 |
80 let newValue = {foo:1, bar: "adsf\u1234"}; | 125 let newValue = {foo: 1, bar: "adsf\u1234"}; |
81 Prefs.notificationdata = newValue; | 126 Prefs.notificationdata = newValue; |
82 equal(Prefs.notificationdata, newValue, "Prefs object returns the correct va
lue after setting pref to non-default value"); | 127 equal( |
83 checkPrefExists("notificationdata", true, "User-defined pref has been create
d", assert); | 128 Prefs.notificationdata, newValue, |
| 129 "Prefs object returns the correct value after setting pref to " + |
| 130 "non-default value" |
| 131 ); |
| 132 checkPrefExists("notificationdata", true, |
| 133 "User-defined pref has been created", assert); |
84 checkPref("notificationdata", newValue, "Value has been written", assert); | 134 checkPref("notificationdata", newValue, "Value has been written", assert); |
85 }); | 135 }); |
86 | 136 |
87 test("Property-wise modification", assert => | 137 test("Property-wise modification", assert => |
88 { | 138 { |
89 Prefs.notificationdata = {}; | 139 Prefs.notificationdata = {}; |
90 | 140 |
91 Prefs.notificationdata.foo = 1; | 141 Prefs.notificationdata.foo = 1; |
92 Prefs.notificationdata.bar = 2; | 142 Prefs.notificationdata.bar = 2; |
93 Prefs.notificationdata = JSON.parse(JSON.stringify(Prefs.notificationdata)); | 143 Prefs.notificationdata = JSON.parse(JSON.stringify(Prefs.notificationdata)); |
94 deepEqual(Prefs.notificationdata, {foo:1, bar: 2}, "Prefs object returns the
correct value after setting pref to non-default value"); | 144 deepEqual( |
95 checkPrefExists("notificationdata", true, "User-defined pref has been create
d", assert); | 145 Prefs.notificationdata, {foo: 1, bar: 2}, |
96 checkPref("notificationdata", {foo:1, bar: 2}, "Value has been written", ass
ert); | 146 "Prefs object returns the correct value after setting pref to " + |
| 147 "non-default value" |
| 148 ); |
| 149 checkPrefExists("notificationdata", true, |
| 150 "User-defined pref has been created", assert); |
| 151 checkPref("notificationdata", {foo: 1, bar: 2}, "Value has been written", |
| 152 assert); |
97 | 153 |
98 delete Prefs.notificationdata.foo; | 154 delete Prefs.notificationdata.foo; |
99 delete Prefs.notificationdata.bar; | 155 delete Prefs.notificationdata.bar; |
100 Prefs.notificationdata = JSON.parse(JSON.stringify(Prefs.notificationdata)); | 156 Prefs.notificationdata = JSON.parse(JSON.stringify(Prefs.notificationdata)); |
101 deepEqual(Prefs.notificationdata, {}, "Prefs object returns the correct valu
e after setting pref to default value"); | 157 deepEqual( |
| 158 Prefs.notificationdata, {}, |
| 159 "Prefs object returns the correct value after setting pref to " + |
| 160 "default value" |
| 161 ); |
102 }); | 162 }); |
103 } | 163 }()); |
OLD | NEW |