<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>localStorage key order test</title> <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> <!-- Check we preserve order of keys in localStorage when keys are just modified. When a new key is added or a key is removed order is again unspecified. --> <script type="text/javascript"> function startTest() { try { var keyNames = new Array; localStorage.a = "1"; localStorage.b = "2"; localStorage.c = "3"; localStorage.d = "4"; localStorage.e = "5"; is(localStorage.a, "1", "a = 1"); is(localStorage.b, "2", "b = 2"); is(localStorage.c, "3", "c = 3"); is(localStorage.d, "4", "d = 4"); is(localStorage.e, "5", "e = 5"); is(localStorage.length, 5, "length = 5"); for (var i = 0; i < localStorage.length; ++i) keyNames[i] = localStorage.key(i); localStorage.a = "10"; localStorage.b = "20"; localStorage.c = "30"; localStorage.d = "40"; localStorage.e = "50"; is(localStorage.a, "10", "a = 10"); is(localStorage.b, "20", "b = 20"); is(localStorage.c, "30", "c = 30"); is(localStorage.d, "40", "d = 40"); is(localStorage.e, "50", "e = 50"); is(localStorage.length, 5, "length = 5"); for (var i = 0; i < localStorage.length; ++i) is(keyNames[i], localStorage.key(i), "key "+keyNames[i]+" on same index"); keyNamesStringify = "[\"" + keyNames.join("\",\"") + "\"]"; frame.location = "http://mochi.test:8888/tests/dom/tests/mochitest/localstorage/frameOrder.html?" + keyNamesStringify; } catch (ex) { localStorage.clear(); throw ex; } } SimpleTest.waitForExplicitFinish(); </script> </head> <body onload="startTest();"> <iframe src="" name="frame"></frame> </body> </html>