mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-30 19:47:17 +02:00
Tests/LibWeb: Import some more webstorage WPT tests
Which were helpful in determining property behaviour for the Storage object.
This commit is contained in:
committed by
Shannon Booth
parent
e859402ea1
commit
a0d4344d4e
Notes:
github-actions[bot]
2026-02-16 17:50:33 +00:00
Author: https://github.com/shannonbooth Commit: https://github.com/LadybirdBrowser/ladybird/commit/a0d4344d4e4 Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/7967
@@ -0,0 +1,58 @@
|
||||
// NOTE: localStorage is disabled in import as this races with other tests.
|
||||
[/* "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);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user