mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-04 23:30:20 +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