| <!DOCTYPE html> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <script src="../../resources/bluetooth/bluetooth-helpers.js"></script> |
| <script> |
| 'use strict'; |
| promise_test(() => { |
| let expected = new DOMException( |
| 'Origin is not allowed to access the service. Remember to add the ' + |
| 'service to a filter or to optionalServices in requestDevice().', |
| 'SecurityError'); |
| return setBluetoothFakeAdapter('BlacklistTestAdapter') |
| .then(() => requestDeviceWithKeyDown({ |
| filters: [{services: [blacklist_test_service_uuid]}], |
| optionalServices: ['human_interface_device'] |
| })) |
| .then(device => device.gatt.connect()) |
| .then(gattServer => Promise.all([ |
| assert_promise_rejects_with_message( |
| gattServer.getPrimaryService('human_interface_device'), |
| expected, 'Blacklisted service not accessible.'), |
| assert_promise_rejects_with_message( |
| gattServer.getPrimaryServices('human_interface_device'), |
| expected, 'Blacklisted services not accessible.')])); |
| }, 'Blacklisted UUID in optionalServices is removed and access not granted.'); |
| </script> |