Branch data Line data Source code
1 [ + ]: 2 : import assert from 'node:assert/strict';
2 : 2 : import { ProgressEvent } from '../../../lib/whatwg-xhr.js';
3 : 2 :
4 [ + ]: 2 : export default (activeURL) => {
5 : 1 :
6 [ + ]: 1 : (() => {
7 : 1 : assert.strictEqual(typeof ProgressEvent, 'function');
8 : 1 : assert.strictEqual(ProgressEvent.length, 1);
9 : 1 : })();
10 : 1 :
11 [ + ]: 1 : (() => {
12 : 1 : let desc = Object.getOwnPropertyDescriptor(ProgressEvent, 'prototype');
13 : 1 :
14 : 1 : assert.strictEqual(desc.value, ProgressEvent.prototype);
15 : 1 : assert.strictEqual(desc.writable, false);
16 : 1 : assert.strictEqual(desc.enumerable, false);
17 : 1 : assert.strictEqual(desc.configurable, false);
18 : 1 :
19 : 1 : assert.throws(
20 [ + ]: 1 : () => {
21 : 1 : 'use strict';
22 : 1 : delete ProgressEvent.prototype;
23 : 1 : },
24 [ + ]: 1 : (err) => {
25 : 1 : assert(err instanceof TypeError, 'TypeError expected');
26 : 1 :
27 : 1 : return true;
28 : 1 : }
29 : 1 : );
30 : 1 :
31 : 1 : assert.strictEqual(ProgressEvent.prototype.constructor, ProgressEvent);
32 : 1 : assert.strictEqual(Object.getPrototypeOf(ProgressEvent.prototype), Event.prototype);
33 : 1 :
34 : 1 : })('interface prototype object');
35 : 1 :
36 : 1 : let attributes = [
37 : 1 : ['boolean', 'lengthComputable'],
38 : 1 : ['unsigned long long', 'loaded'],
39 : 1 : ['unsigned long long', 'total']
40 : 1 : ];
41 : 1 :
42 [ + ]: 1 : attributes.forEach((a) => {
43 : 3 :
44 : 3 : let desc = Object.getOwnPropertyDescriptor(ProgressEvent.prototype, a[1]);
45 : 3 :
46 : 3 : assert.strictEqual(desc.enumerable, true);
47 : 3 : assert.strictEqual(desc.configurable, true);
48 : 3 :
49 : 3 : assert.throws(
50 [ + ]: 3 : () => {
51 : 3 : ProgressEvent.prototype[a[1]];
52 : 3 : },
53 [ + ]: 3 : (err) => {
54 : 3 : assert(err instanceof TypeError, 'TypeError expected');
55 : 3 :
56 : 3 : return true;
57 : 3 : }
58 : 3 : );
59 : 1 : });
60 : 1 :
61 [ + ]: 1 : (() => {
62 [ + ]: 1 : for (var p in globalThis){
63 : 14 : assert(p !== 'ProgressEvent');
64 : 14 : }
65 : 1 : })('Interface objects properties should not be Enumerable');
66 : 1 :
67 [ + ]: 1 : (() => {
68 : 1 :
69 : 1 : assert(!!ProgressEvent, 'Interface should exist.');
70 : 1 : // assert(delete globalThis.ProgressEvent, 'The delete operator should return true.');
71 : 1 : // assert.strictEqual(globalThis.ProgressEvent, undefined, 'Interface should be gone.');
72 : 1 :
73 : 1 : })('Should be able to delete ProgressEvent.');
74 : 1 : }
75 : 2 :
76 : 2 : /*
77 : 2 : * progressevent-interface.html
78 : 2 : *
79 : 2 :
80 : 2 : <!DOCTYPE html>
81 : 2 : <title>The ProgressEvent interface</title>
82 : 2 : <script src="/resources/testharness.js"></script>
83 : 2 : <script src="/resources/testharnessreport.js"></script>
84 : 2 : <div id="log"></div>
85 : 2 : <script>
86 : 2 : test(function() {
87 : 2 : assert_equals(typeof ProgressEvent, "function")
88 : 2 : assert_equals(ProgressEvent.length, 1)
89 : 2 : })
90 : 2 : test(function() {
91 : 2 : var desc = Object.getOwnPropertyDescriptor(ProgressEvent, "prototype")
92 : 2 : assert_equals(desc.value, ProgressEvent.prototype)
93 : 2 : assert_equals(desc.writable, false)
94 : 2 : assert_equals(desc.enumerable, false)
95 : 2 : assert_equals(desc.configurable, false)
96 : 2 : assert_throws_js(TypeError, function() {
97 : 2 : "use strict";
98 : 2 : delete ProgressEvent.prototype;
99 : 2 : })
100 : 2 : assert_equals(ProgressEvent.prototype.constructor, ProgressEvent)
101 : 2 : assert_equals(Object.getPrototypeOf(ProgressEvent.prototype), Event.prototype)
102 : 2 : }, "interface prototype object")
103 : 2 : var attributes = [
104 : 2 : ["boolean", "lengthComputable"],
105 : 2 : ["unsigned long long", "loaded"],
106 : 2 : ["unsigned long long", "total"]
107 : 2 : ];
108 : 2 : attributes.forEach(function(a) {
109 : 2 : test(function() {
110 : 2 : var desc = Object.getOwnPropertyDescriptor(ProgressEvent.prototype, a[1])
111 : 2 : assert_equals(desc.enumerable, true)
112 : 2 : assert_equals(desc.configurable, true)
113 : 2 : assert_throws_js(TypeError, function() {
114 : 2 : ProgressEvent.prototype[a[1]]
115 : 2 : })
116 : 2 : })
117 : 2 : })
118 : 2 : test(function() {
119 : 2 : for (var p in window) {
120 : 2 : assert_not_equals(p, "ProgressEvent")
121 : 2 : }
122 : 2 : }, "Interface objects properties should not be Enumerable")
123 : 2 : test(function() {
124 : 2 : assert_true(!!window.ProgressEvent, "Interface should exist.")
125 : 2 : assert_true(delete window.ProgressEvent, "The delete operator should return true.")
126 : 2 : assert_equals(window.ProgressEvent, undefined, "Interface should be gone.")
127 : 2 : }, "Should be able to delete ProgressEvent.")
128 : 2 : </script>
129 : 2 :
130 : 2 : *
131 : 2 : * progressevent-interface.html
132 : 2 : */
|