/* Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ */ // Test WeakMapMap. "use strict"; const WeakMapMap = require("resource://devtools/client/shared/WeakMapMap.js"); const myWeakMapMap = new WeakMapMap(); const key = { randomObject: true }; // eslint-disable-next-line function run_test() { test_set(); test_has(); test_get(); test_delete(); test_clear(); } function test_set() { // myWeakMapMap.set myWeakMapMap.set(key, "text1", "value1"); myWeakMapMap.set(key, "text2", "value2"); myWeakMapMap.set(key, "text3", "value3"); } function test_has() { // myWeakMapMap.has ok(myWeakMapMap.has(key, "text1"), "text1 exists"); ok(myWeakMapMap.has(key, "text2"), "text2 exists"); ok(myWeakMapMap.has(key, "text3"), "text3 exists"); ok(!myWeakMapMap.has(key, "notakey"), "notakey does not exist"); } function test_get() { // myWeakMapMap.get const value1 = myWeakMapMap.get(key, "text1"); equal(value1, "value1", "test value1"); const value2 = myWeakMapMap.get(key, "text2"); equal(value2, "value2", "test value2"); const value3 = myWeakMapMap.get(key, "text3"); equal(value3, "value3", "test value3"); const value4 = myWeakMapMap.get(key, "notakey"); equal(value4, undefined, "test value4"); } function test_delete() { // myWeakMapMap.delete myWeakMapMap.delete(key, "text2"); // Check that the correct entry was deleted ok(myWeakMapMap.has(key, "text1"), "text1 exists"); ok(!myWeakMapMap.has(key, "text2"), "text2 no longer exists"); ok(myWeakMapMap.has(key, "text3"), "text3 exists"); } function test_clear() { // myWeakMapMap.clear myWeakMapMap.clear(); // Ensure myWeakMapMap was properly cleared ok(!myWeakMapMap.has(key, "text1"), "text1 no longer exists"); ok(!myWeakMapMap.has(key, "text3"), "text3 no longer exists"); }