| <!doctype html> |
| <html> |
| <head> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| <script type="application/javascript"> |
| test(() => { |
| assert_true(!!window.internals); |
| const setlike = internals.createInternalsSetLike(); |
| assert_array_equals(setlike.items(), ["init"]); |
| assert_true(setlike.has("init")); |
| |
| setlike.add("test"); |
| assert_array_equals(setlike.items(), ["init", "test"]); |
| setlike.add("test"); |
| assert_array_equals(setlike.items(), ["init", "test"]); |
| setlike.add("test2"); |
| assert_array_equals(setlike.items(), ["init", "test", "test2"]); |
| |
| setlike.delete("init"); |
| assert_array_equals(setlike.items(), ["test", "test2"]); |
| |
| assert_equals(setlike.size, 2, "size"); |
| |
| let entriesTest = ""; |
| for (let entry of setlike.entries()) { |
| entriesTest += entry; |
| } |
| assert_equals(entriesTest, "test,testtest2,test2", "entries test"); |
| |
| let valuesTest = ""; |
| for (let entry of setlike.values()) { |
| valuesTest += entry; |
| } |
| assert_equals(valuesTest, "testtest2", "values test"); |
| |
| let keysTest = ""; |
| for (let entry of setlike.keys()) { |
| keysTest += entry; |
| } |
| assert_equals(keysTest, "testtest2", "keys test"); |
| |
| assert_equals(setlike.forEach.length, 1); |
| let forEachTest = ""; |
| const forEachResult = setlike.forEach((key, value, object) => { |
| forEachTest += key; |
| forEachTest += value; |
| assert_equals(object, setlike); |
| }); |
| assert_equals(forEachTest, "testtesttest2test2", "forEach test"); |
| assert_equals(forEachResult, undefined); |
| |
| setlike.clear(); |
| assert_array_equals(setlike.items(), []); |
| }, "Basic add/remove/clear functionality"); |
| </script> |
| </body> |
| </html> |