Skip to content

Commit 64ab3c4

Browse files
committed
Bug 1496735 [wpt PR 13368] - Test StorageEvent constructor and initStorageEvent(), a=testonly
Automatic update from web-platform-testsTest initStorageEvent() Follows whatwg/html#4063. -- Consolidate/simplify StorageEvent constructor tests The use of `async_test` was already unnecessary as `dispatchEvent` synchronously invokes listeners, and use of `dispatcEvent` itself is not necessary to test the constructor, so simplify to just `test`s. -- wpt-commits: c4fce5c3c37e30b192a596c4dc779e4192f1bc12, bd5f3403f34f8e83eecbdc172cd330039e12ab86 wpt-pr: 13368 UltraBlame original commit: e726946c50a836304adcf437ca93290e061e2a71
1 parent 43c7394 commit 64ab3c4

File tree

6 files changed

+140
-129
lines changed

6 files changed

+140
-129
lines changed
Lines changed: 68 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,81 @@
11
<!DOCTYPE HTML>
22
<html>
33
<head>
4-
<title>WebStorage Test: StorageEvent - init value</title>
4+
<title>WebStorage Test: StorageEvent - constructor</title>
55
<script src="/resources/testharness.js"></script>
66
<script src="/resources/testharnessreport.js"></script>
77
</head>
88
<body>
9-
<h1>event_session_Constructor</h1>
10-
<div id="log"></div>
119
<script>
1210
test(function() {
13-
var t = async_test("storageeventinit test");
14-
function onStorageEvent(event) {
15-
t.step(function() {
16-
assert_equals(event.type, 'storage');
17-
assert_equals(event.key, null);
18-
assert_equals(event.oldValue, null);
19-
assert_equals(event.newValue, null);
20-
assert_equals(event.url, '');
21-
assert_equals(event.storageArea, null);
22-
});
23-
t.done();
24-
}
11+
assert_throws(new TypeError, () => new StorageEvent());
12+
// should be redundant, but .length can be wrong with custom bindings
13+
assert_equals(StorageEvent.length, 1, 'StorageEvent.length');
14+
}, 'constructor with no arguments');
2515

26-
window.addEventListener('storage', onStorageEvent, false);
27-
var event = new StorageEvent('storage');
28-
window.dispatchEvent(event);
29-
}, "The initial values of storage event properties.");
16+
test(function() {
17+
var event = new StorageEvent('type');
18+
assert_equals(event.type, 'type', 'type');
19+
assert_equals(event.key, null, 'key');
20+
assert_equals(event.oldValue, null, 'oldValue');
21+
assert_equals(event.newValue, null, 'newValue');
22+
assert_equals(event.url, '', 'url');
23+
assert_equals(event.storageArea, null, 'storageArea');
24+
}, 'constructor with just type argument');
25+
26+
test(function() {
27+
assert_not_equals(localStorage, null, 'localStorage'); // precondition
28+
29+
var event = new StorageEvent('storage', {
30+
bubbles: true,
31+
cancelable: true,
32+
key: 'key',
33+
oldValue: 'oldValue',
34+
newValue: 'newValue',
35+
url: 'url', // not an absolute URL to ensure it isn't resolved
36+
storageArea: localStorage
37+
});
38+
assert_equals(event.type, 'storage', 'type');
39+
assert_equals(event.bubbles, true, 'bubbles');
40+
assert_equals(event.cancelable, true, 'cancelable');
41+
assert_equals(event.key, 'key', 'key');
42+
assert_equals(event.oldValue, 'oldValue', 'oldValue');
43+
assert_equals(event.newValue, 'newValue', 'newValue');
44+
assert_equals(event.url, 'url', 'url');
45+
assert_equals(event.storageArea, localStorage, 'storageArea');
46+
}, 'constructor with sensible type argument and members');
47+
48+
test(function() {
49+
var event = new StorageEvent(null, {
50+
key: null,
51+
oldValue: null,
52+
newValue: null,
53+
url: null,
54+
storageArea: null
55+
});
56+
assert_equals(event.type, 'null', 'type');
57+
assert_equals(event.key, null, 'key');
58+
assert_equals(event.oldValue, null, 'oldValue');
59+
assert_equals(event.newValue, null, 'newValue');
60+
assert_equals(event.url, 'null', 'url');
61+
assert_equals(event.storageArea, null, 'storageArea');
62+
}, 'constructor with null type argument and members');
63+
64+
test(function() {
65+
var event = new StorageEvent(undefined, {
66+
key: undefined,
67+
oldValue: undefined,
68+
newValue: undefined,
69+
url: undefined,
70+
storageArea: undefined
71+
});
72+
assert_equals(event.type, 'undefined', 'type');
73+
assert_equals(event.key, null, 'key');
74+
assert_equals(event.oldValue, null, 'oldValue');
75+
assert_equals(event.newValue, null, 'newValue');
76+
assert_equals(event.url, '', 'url'); // not 'undefined'!
77+
assert_equals(event.storageArea, null, 'storageArea');
78+
}, 'constructor with undefined type argument and members');
3079
</script>
3180
</body>
3281
</html>

testing/web-platform/tests/webstorage/event_constructor_eventinit.html

Lines changed: 0 additions & 34 deletions
This file was deleted.
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
<!DOCTYPE HTML>
2+
<html>
3+
<head>
4+
<title>WebStorage Test: StorageEvent - initStorageEvent</title>
5+
<script src="/resources/testharness.js"></script>
6+
<script src="/resources/testharnessreport.js"></script>
7+
</head>
8+
<body>
9+
<script>
10+
test(() => {
11+
const event = new StorageEvent('storage');
12+
assert_throws(new TypeError, () => event.initStorageEvent());
13+
// should be redundant, but .length can be wrong with custom bindings
14+
assert_equals(event.initStorageEvent.length, 1, 'event.initStorageEvent.length');
15+
}, 'initStorageEvent with 0 arguments');
16+
17+
test(() => {
18+
const event = new StorageEvent('storage');
19+
event.initStorageEvent('type');
20+
assert_equals(event.type, 'type', 'event.type');
21+
assert_equals(event.bubbles, false, 'event.bubbles');
22+
assert_equals(event.cancelable, false, 'event.cancelable');
23+
assert_equals(event.key, null, 'event.key');
24+
assert_equals(event.oldValue, null, 'event.oldValue');
25+
assert_equals(event.newValue, null, 'event.newValue');
26+
assert_equals(event.url, '', 'event.url');
27+
assert_equals(event.storageArea, null, 'event.storageArea');
28+
}, 'initStorageEvent with 1 argument');
29+
30+
test(() => {
31+
assert_not_equals(localStorage, null, 'localStorage'); // precondition
32+
33+
const event = new StorageEvent('storage');
34+
event.initStorageEvent('type', true, true, 'key', 'oldValue', 'newValue', 'url', localStorage);
35+
assert_equals(event.type, 'type', 'event.type');
36+
assert_equals(event.bubbles, true, 'event.bubbles');
37+
assert_equals(event.cancelable, true, 'event.cancelable');
38+
assert_equals(event.key, 'key', 'event.key');
39+
assert_equals(event.oldValue, 'oldValue', 'event.oldValue');
40+
assert_equals(event.newValue, 'newValue', 'event.newValue');
41+
assert_equals(event.url, 'url', 'event.url');
42+
assert_equals(event.storageArea, localStorage, 'event.storageArea');
43+
}, 'initStorageEvent with 8 sensible arguments');
44+
45+
test(() => {
46+
const event = new StorageEvent('storage');
47+
event.initStorageEvent(null, null, null, null, null, null, null, null);
48+
assert_equals(event.type, 'null', 'event.type');
49+
assert_equals(event.bubbles, false, 'event.bubbles');
50+
assert_equals(event.cancelable, false, 'event.cancelable');
51+
assert_equals(event.key, null, 'event.key');
52+
assert_equals(event.oldValue, null, 'event.oldValue');
53+
assert_equals(event.newValue, null, 'event.newValue');
54+
assert_equals(event.url, 'null', 'event.url');
55+
assert_equals(event.storageArea, null, 'event.storageArea');
56+
}, 'initStorageEvent with 8 null arguments');
57+
58+
test(() => {
59+
const event = new StorageEvent('storage');
60+
event.initStorageEvent(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined);
61+
assert_equals(event.type, 'undefined', 'event.type');
62+
assert_equals(event.bubbles, false, 'event.bubbles');
63+
assert_equals(event.cancelable, false, 'event.cancelable');
64+
assert_equals(event.key, null, 'event.key');
65+
assert_equals(event.oldValue, null, 'event.oldValue');
66+
assert_equals(event.newValue, null, 'event.newValue');
67+
assert_equals(event.url, 'undefined', 'event.url');
68+
assert_equals(event.storageArea, null, 'event.storageArea');
69+
}, 'initStorageEvent with 8 undefined arguments');
70+
</script>
71+
</body>
72+
</html>

testing/web-platform/tests/webstorage/event_local_storageeventinit.html

Lines changed: 0 additions & 37 deletions
This file was deleted.

testing/web-platform/tests/webstorage/event_session_storageeventinit.html

Lines changed: 0 additions & 36 deletions
This file was deleted.

testing/web-platform/tests/webstorage/missing_arguments.html

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
<script src="/resources/testharnessreport.js"></script>
77
</head>
88
<body>
9-
<h1>missing_arguments</h1>
10-
<div id="log"></div>
119
<script>
1210
var tests = [
1311
function() { localStorage.key(); },
@@ -20,7 +18,6 @@ <h1>missing_arguments</h1>
2018
function() { sessionStorage.setItem(); },
2119
function() { sessionStorage.setItem("a"); },
2220
function() { sessionStorage.removeItem(); },
23-
function() { new StorageEvent(); }
2421
];
2522
tests.forEach(function(fun) {
2623
test(function() {

0 commit comments

Comments
 (0)