LCOV - code coverage report
Current view: top level - test/wpt/xhr - send-network-error-async-events.sub.js (source / functions) Hit Total Coverage
Test: lcov.info Lines: 100 100 100.0 %
Date: 2024-12-07 00:20:21 Functions: 8 8 100.0 %
Branches: 10 10 100.0 %

           Branch data     Line data    Source code
       1            [ + ]:          2 : import assert from 'node:assert/strict';
       2                 :          2 : import { XMLHttpRequest } from '../../../lib/whatwg-xhr.js';
       3                 :          2 : 
       4            [ + ]:          2 : export default (activeURL) => {
       5                 :          1 : 
       6                 :          1 :         let xhr = new XMLHttpRequest();
       7                 :          1 : 
       8                 :          1 :         let expect =  [
       9                 :          1 :                 'loadstart',
      10                 :          1 :                 'upload.loadstart',
      11                 :          1 :                 4,
      12                 :          1 :                 'upload.error',
      13                 :          1 :                 'upload.loadend',
      14                 :          1 :                 'error',
      15                 :          1 :                 'loadend'
      16                 :          1 :         ];
      17                 :          1 :         let actual = [];
      18                 :          1 : 
      19            [ + ]:          1 :         xhr.onreadystatechange = () => {
      20            [ + ]:          2 :                 if(xhr.readyState === 4){
      21                 :          1 :                         actual.push(xhr.readyState);
      22                 :          1 :                 }
      23                 :          1 :         };
      24                 :          1 : 
      25            [ + ]:          1 :         xhr.onloadstart = (e) => {
      26                 :          1 :                 actual.push(e.type);
      27                 :          1 :         };
      28                 :          1 : 
      29            [ + ]:          1 :         xhr.onloadend = (e) => {
      30                 :          1 :                 actual.push(e.type);
      31                 :          1 :                 assert.deepStrictEqual(actual, expect);
      32                 :          1 :         };
      33                 :          1 : 
      34            [ + ]:          1 :         xhr.onerror = (e) => {
      35                 :          1 :                 actual.push(e.type);
      36                 :          1 :         };
      37                 :          1 : 
      38            [ + ]:          1 :         xhr.upload.onloadstart = (e) => { actual.push("upload." + e.type); };
      39            [ + ]:          1 :         xhr.upload.onloadend   = (e) => { actual.push("upload." + e.type); };
      40            [ + ]:          1 :         xhr.upload.onerror     = (e) => { actual.push("upload." + e.type); };
      41                 :          1 : 
      42                 :          1 :         xhr.open('POST', `http://nonexistent`);
      43                 :          1 :         xhr.send('Test Message');
      44                 :          1 : }
      45                 :          2 : 
      46                 :          2 : /*
      47                 :          2 :  * send-network-error-async-events.sub.htm
      48                 :          2 :  *
      49                 :          2 : 
      50                 :          2 : <!DOCTYPE html>
      51                 :          2 : <html>
      52                 :          2 : <head>
      53                 :          2 :     <link rel="help" href="https://xhr.spec.whatwg.org/#handler-xhr-onerror" data-tested-assertations="../.." />
      54                 :          2 :     <link rel="help" href="https://xhr.spec.whatwg.org/#the-send()-method" data-tested-assertations="following::ol[1]/li[9]/ol/li[2] following::ol[1]/li[9]/ol/li[3]" />
      55                 :          2 :     <link rel="help" href="https://xhr.spec.whatwg.org/#infrastructure-for-the-send()-method" data-tested-assertations="following::dt[4] following::dd[4]/p" />
      56                 :          2 :     <link rel="help" href="https://xhr.spec.whatwg.org/#network-error" data-tested-assertations=".." />
      57                 :          2 :     <link rel="help" href="https://xhr.spec.whatwg.org/#request-error" data-tested-assertations="following::ol[1]/li[4] following::ol[1]/li[6] following::ol[1]/li[7] following::ol[1]/li[7]/ol/li[3] following::ol[1]/li[7]/ol/li[4] following::ol[1]/li[9] following::ol[1]/li[10]" />
      58                 :          2 :     <script src="/resources/testharness.js"></script>
      59                 :          2 :     <script src="/resources/testharnessreport.js"></script>
      60                 :          2 :     <title>XMLHttpRequest: The send() method: Fire a progress event named error when Network error happens (synchronous flag is unset)</title>
      61                 :          2 : </head>
      62                 :          2 : 
      63                 :          2 : <body>
      64                 :          2 :     <div id="log"></div>
      65                 :          2 : 
      66                 :          2 :     <script type="text/javascript">
      67                 :          2 :         var test = async_test();
      68                 :          2 : 
      69                 :          2 :         test.step(function(){
      70                 :          2 :             var xhr = new XMLHttpRequest();
      71                 :          2 :             var expect =  ["loadstart", "upload.loadstart", 4, "upload.error", "upload.loadend", "error", "loadend"];
      72                 :          2 :             var actual = [];
      73                 :          2 : 
      74                 :          2 :             xhr.onreadystatechange = test.step_func(() => {
      75                 :          2 :                 if (xhr.readyState == 4) {
      76                 :          2 :                     actual.push(xhr.readyState);
      77                 :          2 :                 }
      78                 :          2 :             });
      79                 :          2 : 
      80                 :          2 :             xhr.onloadstart        = test.step_func(e => { actual.push(e.type); })
      81                 :          2 :             xhr.onloadend          = test.step_func_done(e => {
      82                 :          2 :                 actual.push(e.type);
      83                 :          2 :                 assert_array_equals(actual, expect);
      84                 :          2 :             })
      85                 :          2 :             xhr.onerror            = test.step_func(e => { actual.push(e.type); })
      86                 :          2 : 
      87                 :          2 :             xhr.upload.onloadstart = test.step_func(e => { actual.push("upload." + e.type); })
      88                 :          2 :             xhr.upload.onloadend   = test.step_func(e => { actual.push("upload." + e.type); })
      89                 :          2 :             xhr.upload.onerror     = test.step_func(e => { actual.push("upload." + e.type); })
      90                 :          2 : 
      91                 :          2 :             xhr.open("POST", "http://nonexistent.{{host}}:{{ports[http][0]}}", true);
      92                 :          2 :             xhr.send("Test Message");
      93                 :          2 :         });
      94                 :          2 :     </script>
      95                 :          2 : </body>
      96                 :          2 : </html>
      97                 :          2 : 
      98                 :          2 :  *
      99                 :          2 :  * send-network-error-async-events.sub.htm
     100                 :          2 :  */

Generated by: LCOV version 1.14