chromium/third_party/blink/web_tests/storage/domstorage/localstorage/enumerate-with-length-and-key.html

<html>
<head>
<script>

if (window.testRunner)
    testRunner.dumpAsText();

function log(a)
{
    document.getElementById("logger").innerHTML += a + "<br>";
}

function startTest()
{
    if (!window.localStorage) {
        log("window.localStorage DOES NOT exist");
        return;
    }
    localStorage.clear();

    Storage.prototype.prototypeTestKey = "prototypeTestValue";
    localStorage.foo = "bar";
    localStorage.fu = "baz";
    localStorage.batman = "bin suparman";
    localStorage.bar = "foo";
    localStorage.alpha = "beta";
    localStorage.zeta = "gamma";
    
    // Enumerate localStorage, appending each key onto an array
    var enumeratedArray = new Array();
    for (var i=0; i<localStorage.length; ++i)
        enumeratedArray.push(localStorage.key(i));

    // Sort the array, since the storage order isn't guaranteed
    enumeratedArray.sort();
    
    for (var n in enumeratedArray)
        log(enumeratedArray[n]);
}

</script>
</head>
<body onload="startTest();">
This test attempts to enumerate all the keys in localStorage with .length + .key().  The built-in properties of the Storage object should be ignored.  The test operates on the localStorage object.<br>
<div id="logger"></div>
</body>
</html>