LCOV - code coverage report
Current view: top level - test/wpt/xhr - progressevent-interface.js (source / functions) Hit Total Coverage
Test: lcov.info Lines: 132 132 100.0 %
Date: 2024-12-07 00:20:21 Functions: 10 10 100.0 %
Branches: 12 12 100.0 %

           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 :  */

Generated by: LCOV version 1.14