Index: qunit/tests/prefs.js |
diff --git a/qunit/tests/prefs.js b/qunit/tests/prefs.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f620ca9a555056d0a53856fb805a0cc64120011a |
--- /dev/null |
+++ b/qunit/tests/prefs.js |
@@ -0,0 +1,102 @@ |
+(function() |
+{ |
+ module("Preferences", |
+ { |
+ setup: function() |
+ { |
+ preparePrefs.call(this); |
+ }, |
+ |
+ teardown: function() |
+ { |
+ restorePrefs.call(this); |
+ } |
+ }); |
+ |
+ function checkPrefExists(name, expectedValue, description, assert) |
+ { |
+ let done = assert.async(); |
+ let key = "pref:" + name; |
+ chrome.storage.local.get(key, function(items) |
+ { |
+ equal(key in items, expectedValue, description); |
+ done(); |
+ }); |
+ } |
+ |
+ function checkPref(name, expectedValue, description, assert) |
+ { |
+ let done = assert.async(); |
+ let key = "pref:" + name; |
+ chrome.storage.local.get(key, function(items) |
+ { |
+ deepEqual(items[key], expectedValue, description); |
+ done(); |
+ }); |
+ } |
+ |
+ test("Numerical pref", function(assert) |
+ { |
+ Prefs.patternsbackups = 5; |
+ equal(Prefs.patternsbackups, 5, "Prefs object returns the correct value after setting pref to default value"); |
+ checkPrefExists("patternsbackups", false, "User-defined pref has been removed", assert); |
+ Prefs.patternsbackups = 12; |
+ equal(Prefs.patternsbackups, 12, "Prefs object returns the correct value after setting pref to non-default value"); |
+ checkPrefExists("patternsbackups", true, "User-defined pref has been created", assert); |
+ checkPref("patternsbackups", 12, "Value has been written", assert); |
+ }); |
+ |
+ test("Boolean pref", function(assert) |
+ { |
+ Prefs.enabled = true; |
+ equal(Prefs.enabled, true, "Prefs object returns the correct value after setting pref to default value"); |
+ checkPrefExists("enabled", false, "User-defined pref has been removed", assert); |
+ Prefs.enabled = false; |
+ equal(Prefs.enabled, false, "Prefs object returns the correct value after setting pref to non-default value"); |
+ checkPrefExists("enabled", true, "User-defined pref has been created", assert); |
+ checkPref("enabled", false, "Value has been written", assert); |
+ }); |
+ |
+ test("String pref", function(assert) |
+ { |
+ let defaultValue = "https://notification.adblockplus.org/notification.json"; |
+ Prefs.notificationurl = defaultValue; |
+ equal(Prefs.notificationurl, defaultValue, "Prefs object returns the correct value after setting pref to default value"); |
+ checkPrefExists("notificationurl", false, "User-defined pref has been removed", assert); |
+ |
+ let newValue = "https://notification.adblockplus.org/foo\u1234bar.json"; |
+ Prefs.notificationurl = newValue; |
+ equal(Prefs.notificationurl, newValue, "Prefs object returns the correct value after setting pref to non-default value"); |
+ checkPrefExists("notificationurl", true, "User-defined pref has been created", assert); |
+ checkPref("notificationurl", newValue, "Value has been written", assert); |
+ }); |
+ |
+ test("Object pref (complete replacement)", function(assert) |
+ { |
+ Prefs.notificationdata = {}; |
+ deepEqual(Prefs.notificationdata, {}, "Prefs object returns the correct value after setting pref to default value"); |
+ |
+ let newValue = {foo:1, bar: "adsf\u1234"}; |
+ Prefs.notificationdata = newValue; |
+ equal(Prefs.notificationdata, newValue, "Prefs object returns the correct value after setting pref to non-default value"); |
+ checkPrefExists("notificationdata", true, "User-defined pref has been created", assert); |
+ checkPref("notificationdata", newValue, "Value has been written", assert); |
+ }); |
+ |
+ test("Property-wise modification", function(assert) |
+ { |
+ Prefs.notificationdata = {}; |
+ |
+ Prefs.notificationdata.foo = 1; |
+ Prefs.notificationdata.bar = 2; |
+ Prefs.notificationdata = JSON.parse(JSON.stringify(Prefs.notificationdata)); |
+ deepEqual(Prefs.notificationdata, {foo:1, bar: 2}, "Prefs object returns the correct value after setting pref to non-default value"); |
+ checkPrefExists("notificationdata", true, "User-defined pref has been created", assert); |
+ checkPref("notificationdata", {foo:1, bar: 2}, "Value has been written", assert); |
+ |
+ delete Prefs.notificationdata.foo; |
+ delete Prefs.notificationdata.bar; |
+ Prefs.notificationdata = JSON.parse(JSON.stringify(Prefs.notificationdata)); |
+ deepEqual(Prefs.notificationdata, {}, "Prefs object returns the correct value after setting pref to default value"); |
+ }); |
+})(); |