tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

measure-exceptions.html (1508B)


      1 <!DOCTYPE html>
      2 <html>
      3 <head>
      4    This tests that 'performance.measure' throws exceptions with reasonable messages.
      5 </head>
      6 <body>
      7 <script src="/resources/testharness.js"></script>
      8 <script src="/resources/testharnessreport.js"></script>
      9 <script>
     10    window.performance.clearMarks();
     11    window.performance.clearMeasures();
     12 
     13    window.performance.mark('mark');
     14 
     15    const eventMarks = [
     16        'unloadEventStart',
     17        'unloadEventEnd',
     18        'redirectStart',
     19        'redirectEnd',
     20        'secureConnectionStart',
     21        'domInteractive',
     22        'domContentLoadedEventStart',
     23        'domContentLoadedEventEnd',
     24        'domComplete',
     25        'loadEventStart',
     26        'loadEventEnd',
     27    ];
     28    eventMarks.forEach(function(name) {
     29        test(()=>{
     30            assert_throws_dom("InvalidAccessError", ()=>{
     31                window.performance.measure("measuring", name, "mark");
     32            }, "Should throw");
     33        }, `Passing '${name}' as a mark to measure API should cause error when the mark is empty.`);
     34    });
     35 
     36    const args = [
     37        51.15,  // Verify that number is parsed as string, not number.
     38        "DoesNotExist", // Non-existant mark name should cause error.
     39    ];
     40    args.forEach(each => {
     41        test(()=>{
     42            assert_throws_dom("SyntaxError", ()=>{
     43                window.performance.measure("measuring", each, "mark");
     44            }, "Should throw");
     45        }, `Passing ${each} as a mark to measure API should cause error.`);
     46    });
     47 </script>
     48 </body>
     49 </html>