mirror of
https://github.com/servo/servo.git
synced 2025-06-25 09:34:32 +01:00
57 lines
2 KiB
JavaScript
57 lines
2 KiB
JavaScript
["localStorage", "sessionStorage"].forEach(function(name) {
|
|
[9, "x"].forEach(function(key) {
|
|
test(function() {
|
|
var desc = {
|
|
value: "value",
|
|
};
|
|
|
|
var storage = window[name];
|
|
storage.clear();
|
|
|
|
assert_equals(storage[key], undefined);
|
|
assert_equals(storage.getItem(key), null);
|
|
assert_equals(Object.defineProperty(storage, key, desc), storage);
|
|
assert_equals(storage[key], "value");
|
|
assert_equals(storage.getItem(key), "value");
|
|
}, "Defining data property for key " + key + " on " + name);
|
|
|
|
test(function() {
|
|
var desc1 = {
|
|
value: "value",
|
|
};
|
|
var desc2 = {
|
|
value: "new value",
|
|
};
|
|
|
|
var storage = window[name];
|
|
storage.clear();
|
|
|
|
assert_equals(storage[key], undefined);
|
|
assert_equals(storage.getItem(key), null);
|
|
assert_equals(Object.defineProperty(storage, key, desc1), storage);
|
|
assert_equals(storage[key], "value");
|
|
assert_equals(storage.getItem(key), "value");
|
|
|
|
assert_equals(Object.defineProperty(storage, key, desc2), storage);
|
|
assert_equals(storage[key], "new value");
|
|
assert_equals(storage.getItem(key), "new value");
|
|
}, "Defining data property for key " + key + " on " + name + " twice");
|
|
|
|
test(function() {
|
|
var desc = {
|
|
value: {
|
|
toString: function() { return "value"; }
|
|
},
|
|
};
|
|
|
|
var storage = window[name];
|
|
storage.clear();
|
|
|
|
assert_equals(storage[key], undefined);
|
|
assert_equals(storage.getItem(key), null);
|
|
assert_equals(Object.defineProperty(storage, key, desc), storage);
|
|
assert_equals(storage[key], "value");
|
|
assert_equals(storage.getItem(key), "value");
|
|
}, "Defining data property with toString for key " + key + " on " + name);
|
|
});
|
|
});
|