Skip to content

Commit f40d113

Browse files
committed
Test initStorageEvent()
Follows whatwg/html#4063.
1 parent d77b8fa commit f40d113

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed
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>

0 commit comments

Comments
 (0)