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>