tor-browser

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

bluetooth-report-only.https.html (2585B)


      1 <!DOCTYPE html>
      2 <html>
      3  <head>
      4    <script src='/resources/testharness.js'></script>
      5    <script src='/resources/testharnessreport.js'></script>
      6    <script src='/resources/testdriver.js'></script>
      7    <script src='/resources/testdriver-vendor.js'></script>
      8    <script src='/bluetooth/resources/bluetooth-test.js'></script>
      9  </head>
     10  <body>
     11    <script>
     12 
     13 function check_report_format([reports, observer]) {
     14  const report = reports[0];
     15  assert_equals(report.type, "permissions-policy-violation");
     16  assert_equals(report.body.featureId, "bluetooth");
     17  assert_equals(report.body.disposition, "report");
     18 };
     19 
     20 bluetooth_test(() => {
     21  promise_test(async t => {
     22    const report = new Promise(resolve => {
     23      new ReportingObserver((reports, observer) => resolve([reports, observer]),
     24                            {types: ['permissions-policy-violation']}).observe();
     25    });
     26 
     27    await navigator.bluetooth.getAvailability();
     28    check_report_format(await report);
     29  }, 'getAvailability in bluetooth report only mode');
     30 
     31  promise_test(async t => {
     32    const report = new Promise(resolve => {
     33      new ReportingObserver((reports, observer) => resolve([reports, observer]),
     34                            {types: ['permissions-policy-violation']}).observe();
     35    });
     36 
     37    await navigator.bluetooth.getDevices();
     38    check_report_format(await report);
     39  }, 'getDevices in bluetooth report only mode');
     40 
     41  promise_test(async t => {
     42    const report = new Promise(resolve => {
     43      new ReportingObserver((reports, observer) => resolve([reports, observer]),
     44                            {types: ['permissions-policy-violation']}).observe();
     45    });
     46 
     47    await test_driver.bless('Activate document for bluetooth.requestDevice');
     48    await promise_rejects_js(t, TypeError, navigator.bluetooth.requestDevice({filters: []}), 'requestDevice() call should fail when no filters are selected.')
     49 
     50    check_report_format(await report);
     51  }, 'requestDevice in bluetooth report only mode');
     52 
     53  promise_test(async t => {
     54    const report = new Promise(resolve => {
     55      new ReportingObserver((reports, observer) => resolve([reports, observer]),
     56                            {types: ['permissions-policy-violation']}).observe();
     57    });
     58 
     59    await test_driver.bless('Activate document for bluetooth.requestLEScan');
     60    await promise_rejects_js(t, TypeError, navigator.bluetooth.requestLEScan({filters: []}), 'requestLEScan() call should fail when no filters are selected.');
     61 
     62    check_report_format(await report);
     63  }, 'requestLEScan in bluetooth report only mode');
     64 });
     65    </script>
     66  </body>
     67 </html>