| <html> |
| <head> |
| <script src="../http/tests/inspector/inspector-test.js"></script> |
| <script type="text/javascript"> |
| |
| var test = function() |
| { |
| InspectorTest.runTestSuite([ |
| function testMap(next) |
| { |
| function dumpMap(map, key1, key2) |
| { |
| InspectorTest.addResult(" key1 : " + map.get(key1)); |
| InspectorTest.addResult(" key2 : " + map.get(key2)); |
| InspectorTest.addResult(" size : " + map.size()); |
| } |
| |
| function dumpMaps(map1, map2, key1, key2) |
| { |
| InspectorTest.addResult("Dumping maps:"); |
| InspectorTest.addResult(" First map:"); |
| dumpMap(map1, key1, key2) |
| InspectorTest.addResult(" Second map:"); |
| dumpMap(map2, key1, key2) |
| InspectorTest.addResult(""); |
| } |
| |
| var key1 = {}; |
| var key2 = {}; |
| var value1 = 1; |
| var value2 = 2; |
| var map1 = new Map(); |
| var map2 = new Map(); |
| |
| dumpMaps(map1, map2, key1, key2); |
| |
| map1.put(key1, value2); |
| dumpMaps(map1, map2, key1, key2); |
| |
| map1.put(key1, value1); |
| dumpMaps(map1, map2, key1, key2); |
| |
| map2.put(key1, value1); |
| dumpMaps(map1, map2, key1, key2); |
| |
| map2.put(key1, value2); |
| dumpMaps(map1, map2, key1, key2); |
| |
| map1.put(key2, value2); |
| dumpMaps(map1, map2, key1, key2); |
| |
| map2.put(key2, value1); |
| dumpMaps(map1, map2, key1, key2); |
| |
| map1.remove(key2); |
| dumpMaps(map1, map2, key1, key2); |
| |
| map2.remove(key2); |
| dumpMaps(map1, map2, key1, key2); |
| |
| map2.remove(key2); |
| dumpMaps(map1, map2, key1, key2); |
| |
| map1.remove(key1); |
| dumpMaps(map1, map2, key1, key2); |
| |
| map2.remove(key1); |
| dumpMaps(map1, map2, key1, key2); |
| next(); |
| }, |
| |
| function testSet(next) |
| { |
| function dumpSet(set, key1, key2) |
| { |
| InspectorTest.addResult(" key1 : " + set.hasItem(key1)); |
| InspectorTest.addResult(" key2 : " + set.hasItem(key2)); |
| InspectorTest.addResult(" size : " + set.size()); |
| } |
| |
| function dumpSets(set1, set2, key1, key2) |
| { |
| InspectorTest.addResult("Dumping sets:"); |
| InspectorTest.addResult(" First set:"); |
| dumpSet(set1, key1, key2) |
| InspectorTest.addResult(" Second set:"); |
| dumpSet(set2, key1, key2) |
| InspectorTest.addResult(""); |
| } |
| |
| var key1 = {}; |
| var key2 = {}; |
| var set1 = new Set(); |
| var set2 = new Set(); |
| |
| dumpSets(set1, set2, key1, key2); |
| |
| set1.add(key1); |
| dumpSets(set1, set2, key1, key2); |
| |
| set1.add(key1); |
| dumpSets(set1, set2, key1, key2); |
| |
| set2.add(key1); |
| dumpSets(set1, set2, key1, key2); |
| |
| set2.add(key1); |
| dumpSets(set1, set2, key1, key2); |
| |
| set1.add(key2); |
| dumpSets(set1, set2, key1, key2); |
| |
| set2.add(key2); |
| dumpSets(set1, set2, key1, key2); |
| |
| set1.remove(key2); |
| dumpSets(set1, set2, key1, key2); |
| |
| set2.remove(key2); |
| dumpSets(set1, set2, key1, key2); |
| |
| set2.remove(key2); |
| dumpSets(set1, set2, key1, key2); |
| |
| set1.remove(key1); |
| dumpSets(set1, set2, key1, key2); |
| |
| set2.remove(key1); |
| dumpSets(set1, set2, key1, key2); |
| next(); |
| }, |
| |
| function testStringMap(next) |
| { |
| function dumpStringMap(map) |
| { |
| InspectorTest.addResult("Dumping map:"); |
| var keys = map.keys(); |
| var values = map.values(); |
| for (var i = 0; i < keys.length; ++i) { |
| var key = keys[i]; |
| var value = map.get(key); |
| var indexOf = values.indexOf(value); |
| InspectorTest.assertTrue(indexOf !== -1, "value not found in values"); |
| values.splice(indexOf, 1); |
| InspectorTest.addResult(" " + key + " => " + value); |
| } |
| InspectorTest.addResult(" size: " + map.size()); |
| InspectorTest.assertTrue(!values.length, "values is not empty after deleting value for each key: [" + values + "]"); |
| } |
| |
| var keys = ["foo", "bar", "hasOwnProperty", "__proto__", "constructor", "0"] |
| var value1 = 1; |
| var value2 = 2; |
| var map = new StringMap(); |
| |
| dumpStringMap(map); |
| |
| for (var i = 0; i < keys.length; ++i) { |
| map.put(keys[i], i+1); |
| dumpStringMap(map); |
| } |
| |
| for (var i = 0; i < keys.length; ++i) { |
| map.put(keys[i], 42); |
| dumpStringMap(map); |
| } |
| |
| for (var i = keys.length - 1; i >= 0; --i) { |
| map.remove(keys[i]); |
| dumpStringMap(map); |
| } |
| |
| for (var i = keys.length - 1; i >= 0; --i) { |
| map.remove(keys[i]); |
| dumpStringMap(map); |
| } |
| next(); |
| }, |
| ]); |
| } |
| |
| </script> |
| </head> |
| <body onload="runTest()"> |
| <p>Tests Map class.</p> |
| <a href="https://bugs.webkit.org/show_bug.cgi?id=74084">Bug 74084</a> |
| </body> |
| </html> |