зеркало из https://github.com/mozilla/gecko-dev.git
128 строки
2.8 KiB
HTML
128 строки
2.8 KiB
HTML
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<title>sessionStorage basic test</title>
|
|
|
|
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
|
|
|
<script type="application/javascript;version=1.7">
|
|
|
|
var expectedTypes = [
|
|
"localStorage",
|
|
"localStorage",
|
|
"sessionStorage",
|
|
"localStorage",
|
|
"sessionStorage",
|
|
"sessionStorage",
|
|
"localStorage",
|
|
"sessionStorage",
|
|
"localStorage",
|
|
"sessionStorage",
|
|
"localStorage",
|
|
"sessionStorage",
|
|
"sessionStorage",
|
|
"localStorage",
|
|
"sessionStorage",
|
|
"localStorage",
|
|
];
|
|
|
|
var tests = Tests();
|
|
function setup() {
|
|
sessionStorage.clear();
|
|
SimpleTest.executeSoon(function() {
|
|
tests.next();
|
|
});
|
|
}
|
|
|
|
function Tests()
|
|
{
|
|
// Initially check the both storages are empty
|
|
is(sessionStorage.length, 0, "Session storage is empty [1]");
|
|
is(localStorage.length, 0, "Local storage is empty [1]");
|
|
|
|
var onStorageChanged = {
|
|
observe: function(subject, topic, type) {
|
|
if (topic == "dom-storage2-changed") {
|
|
ok(expectedTypes.length > 0, "Not more then expected events encountered");
|
|
is(type, expectedTypes.shift(), "Expected type of the storage notificaiton");
|
|
tests.next();
|
|
}
|
|
}
|
|
}
|
|
|
|
// Listen for dom-storage2-changed notification
|
|
SpecialPowers.Services.obs.addObserver(onStorageChanged,
|
|
"dom-storage2-changed", false);
|
|
|
|
// add an empty-value key
|
|
localStorage.setItem("empty", "");
|
|
yield undefined;
|
|
|
|
localStorage.setItem("empty", "value-1");
|
|
yield undefined;
|
|
|
|
sessionStorage.setItem("empty", "");
|
|
yield undefined;
|
|
|
|
localStorage.removeItem("empty");
|
|
yield undefined;
|
|
|
|
sessionStorage.setItem("empty", "value-1");
|
|
yield undefined;
|
|
|
|
sessionStorage.removeItem("empty");
|
|
yield undefined;
|
|
|
|
localStorage.setItem("key1", "value-1");
|
|
yield undefined;
|
|
|
|
sessionStorage.setItem("key2", "value-2");
|
|
yield undefined;
|
|
|
|
localStorage.setItem("key1", "value-1-2");
|
|
yield undefined;
|
|
|
|
sessionStorage.setItem("key2", "value-2-2");
|
|
yield undefined;
|
|
|
|
localStorage.setItem("key3", "value-3");
|
|
yield undefined;
|
|
|
|
sessionStorage.setItem("key4", "value-4");
|
|
yield undefined;
|
|
|
|
sessionStorage.removeItem("key4");
|
|
yield undefined;
|
|
|
|
localStorage.setItem("key4", "value-4");
|
|
yield undefined;
|
|
|
|
sessionStorage.clear();
|
|
yield undefined;
|
|
|
|
localStorage.clear();
|
|
yield undefined;
|
|
|
|
SimpleTest.executeSoon(function () {
|
|
SpecialPowers.Services.obs.removeObserver(onStorageChanged,
|
|
"dom-storage2-changed", false);
|
|
is(expectedTypes.length, 0, "received the correct number of events");
|
|
|
|
sessionStorage.clear();
|
|
localStorage.clear();
|
|
tests = null;
|
|
SimpleTest.finish();
|
|
});
|
|
}
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
</script>
|
|
|
|
</head>
|
|
|
|
<body onload="setup();">
|
|
|
|
</body>
|
|
</html>
|