blob: 99f2a47949d99c3db42a7106480d04f2c1892f40 [file] [log] [blame]
<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>