mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-29 20:29:18 +00:00
Tests/LibWeb: Import webstorage symbol-props WPT test
I noticed a subtest in this test failing along with every other browser. After investigation, the failure was due to testing the previous specification before:3fb6ab4
So this imports the now adjusted WPT test as of:bb3f032
This commit is contained in:
parent
994bbcaa75
commit
c63e77142a
Notes:
github-actions[bot]
2025-07-03 11:46:50 +00:00
Author: https://github.com/shannonbooth
Commit: c63e77142a
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/5283
Reviewed-by: https://github.com/tcl3 ✅
3 changed files with 108 additions and 0 deletions
|
@ -0,0 +1,19 @@
|
|||
Harness status: OK
|
||||
|
||||
Found 14 tests
|
||||
|
||||
14 Pass
|
||||
Pass localStorage: plain set + get (loose)
|
||||
Pass localStorage: plain set + get (strict)
|
||||
Pass localStorage: defineProperty + get
|
||||
Pass localStorage: defineProperty not configurable
|
||||
Pass localStorage: get with symbol on prototype
|
||||
Pass localStorage: delete existing property
|
||||
Pass localStorage: delete non-existent property
|
||||
Pass sessionStorage: plain set + get (loose)
|
||||
Pass sessionStorage: plain set + get (strict)
|
||||
Pass sessionStorage: defineProperty + get
|
||||
Pass sessionStorage: defineProperty not configurable
|
||||
Pass sessionStorage: get with symbol on prototype
|
||||
Pass sessionStorage: delete existing property
|
||||
Pass sessionStorage: delete non-existent property
|
|
@ -0,0 +1,8 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
|
||||
<script src="../resources/testharness.js"></script>
|
||||
<script src="../resources/testharnessreport.js"></script>
|
||||
|
||||
<div id=log></div>
|
||||
<script src="../webstorage/symbol-props.window.js"></script>
|
|
@ -0,0 +1,81 @@
|
|||
["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_false(desc.configurable, "configurable");
|
||||
|
||||
assert_false(delete storage[key]);
|
||||
assert_equals(storage[key], "test");
|
||||
}, 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");
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue