summaryrefslogtreecommitdiffstats
path: root/toolkit/components/normandy/test/browser/browser_Storage.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/normandy/test/browser/browser_Storage.js')
-rw-r--r--toolkit/components/normandy/test/browser/browser_Storage.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/toolkit/components/normandy/test/browser/browser_Storage.js b/toolkit/components/normandy/test/browser/browser_Storage.js
new file mode 100644
index 0000000000..74272c52d9
--- /dev/null
+++ b/toolkit/components/normandy/test/browser/browser_Storage.js
@@ -0,0 +1,43 @@
+"use strict";
+
+add_task(async function () {
+ const store1 = new Storage("prefix1");
+ const store2 = new Storage("prefix2");
+
+ // Make sure values return null before being set
+ Assert.equal(await store1.getItem("key"), null);
+ Assert.equal(await store2.getItem("key"), null);
+
+ // Set values to check
+ await store1.setItem("key", "value1");
+ await store2.setItem("key", "value2");
+
+ // Check that they are available
+ Assert.equal(await store1.getItem("key"), "value1");
+ Assert.equal(await store2.getItem("key"), "value2");
+
+ // Remove them, and check they are gone
+ await store1.removeItem("key");
+ await store2.removeItem("key");
+ Assert.equal(await store1.getItem("key"), null);
+ Assert.equal(await store2.getItem("key"), null);
+
+ // Check that numbers are stored as numbers (not strings)
+ await store1.setItem("number", 42);
+ Assert.equal(await store1.getItem("number"), 42);
+
+ // Check complex types work
+ const complex = { a: 1, b: [2, 3], c: { d: 4 } };
+ await store1.setItem("complex", complex);
+ Assert.deepEqual(await store1.getItem("complex"), complex);
+
+ // Check that clearing the storage removes data from multiple
+ // prefixes.
+ await store1.setItem("removeTest", 1);
+ await store2.setItem("removeTest", 2);
+ Assert.equal(await store1.getItem("removeTest"), 1);
+ Assert.equal(await store2.getItem("removeTest"), 2);
+ await Storage.clearAllStorage();
+ Assert.equal(await store1.getItem("removeTest"), null);
+ Assert.equal(await store2.getItem("removeTest"), null);
+});