mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-12 14:20:14 +02:00
Automatic update from web-platform-tests Add some tests for Symbol properties on Storage objects. -- wpt-commits: 4582ca92624594ad7e5d2c1137823c1c1e93d2e3 wpt-pr: 15131
81 lines
2.2 KiB
JavaScript
81 lines
2.2 KiB
JavaScript
["localStorage", "sessionStorage"].forEach(function(name) {
|
|
test(function() {
|
|
var key = Symbol();
|
|
|
|
var storage = window[name];
|
|
storage.clear();
|
|
|
|
storage[key] = "test";
|
|
assert_equals(storage[key], "test");
|
|
}, name + ": plain set + get (loose)");
|
|
|
|
test(function() {
|
|
"use strict";
|
|
var key = Symbol();
|
|
|
|
var storage = window[name];
|
|
storage.clear();
|
|
|
|
storage[key] = "test";
|
|
assert_equals(storage[key], "test");
|
|
}, name + ": plain set + get (strict)");
|
|
|
|
test(function() {
|
|
var key = Symbol();
|
|
|
|
var storage = window[name];
|
|
storage.clear();
|
|
|
|
Object.defineProperty(storage, key, { "value": "test" });
|
|
assert_equals(storage[key], "test");
|
|
}, name + ": defineProperty + get");
|
|
|
|
test(function() {
|
|
var key = Symbol();
|
|
|
|
var storage = window[name];
|
|
storage.clear();
|
|
|
|
Object.defineProperty(storage, key, { "value": "test", "configurable": false });
|
|
assert_equals(storage[key], "test");
|
|
var desc = Object.getOwnPropertyDescriptor(storage, key);
|
|
assert_true(desc.configurable, "configurable");
|
|
|
|
assert_true(delete storage[key]);
|
|
assert_equals(storage[key], undefined);
|
|
}, name + ": defineProperty not configurable");
|
|
|
|
test(function() {
|
|
var key = Symbol();
|
|
Storage.prototype[key] = "test";
|
|
this.add_cleanup(function() { delete Storage.prototype[key]; });
|
|
|
|
var storage = window[name];
|
|
storage.clear();
|
|
|
|
assert_equals(storage[key], "test");
|
|
var desc = Object.getOwnPropertyDescriptor(storage, key);
|
|
assert_equals(desc, undefined);
|
|
}, name + ": get with symbol on prototype");
|
|
|
|
test(function() {
|
|
var key = Symbol();
|
|
|
|
var storage = window[name];
|
|
storage.clear();
|
|
|
|
storage[key] = "test";
|
|
assert_true(delete storage[key]);
|
|
assert_equals(storage[key], undefined);
|
|
}, name + ": delete existing property");
|
|
|
|
test(function() {
|
|
var key = Symbol();
|
|
|
|
var storage = window[name];
|
|
storage.clear();
|
|
|
|
assert_true(delete storage[key]);
|
|
assert_equals(storage[key], undefined);
|
|
}, name + ": delete non-existent property");
|
|
});
|