servo/tests/wpt/web-platform-tests/bluetooth
2018-04-23 23:10:53 -04:00
..
characteristic Update web-platform-tests to revision 28300a0874230d668f0b02cfddfd994f2a735a56 2018-03-12 23:08:35 -04:00
descriptor Update web-platform-tests to revision 28300a0874230d668f0b02cfddfd994f2a735a56 2018-03-12 23:08:35 -04:00
device/gattserverdisconnected-event Update web-platform-tests to revision 4a5223502fa660ce03e470af6a61c8bc26c5a8ee 2018-04-23 23:10:53 -04:00
idl Update web-platform-tests to revision 4a5223502fa660ce03e470af6a61c8bc26c5a8ee 2018-04-23 23:10:53 -04:00
requestDevice Update web-platform-tests to revision 4a5223502fa660ce03e470af6a61c8bc26c5a8ee 2018-04-23 23:10:53 -04:00
resources Update web-platform-tests to revision 4a5223502fa660ce03e470af6a61c8bc26c5a8ee 2018-04-23 23:10:53 -04:00
script-tests Update web-platform-tests to revision 4a5223502fa660ce03e470af6a61c8bc26c5a8ee 2018-04-23 23:10:53 -04:00
server Update web-platform-tests to revision 4a5223502fa660ce03e470af6a61c8bc26c5a8ee 2018-04-23 23:10:53 -04:00
service Update web-platform-tests to revision 28300a0874230d668f0b02cfddfd994f2a735a56 2018-03-12 23:08:35 -04:00
generate.py Update web-platform-tests to revision ddfc95cf0493ae147a4f6a4d7be8eff1a0c23098 2018-01-18 11:04:13 +01:00
generate_test.py Update web-platform-tests to revision ddfc95cf0493ae147a4f6a4d7be8eff1a0c23098 2018-01-18 11:04:13 +01:00
OWNERS Update web-platform-tests to revision 58eb04cecbbec2e18531ab440225e38944a9c444 2017-04-22 14:17:10 +02:00
README.md Update web-platform-tests to revision 10168e9a5d44efbc6e7d416d1d454eb9c9f1396c 2018-01-31 12:24:47 -05:00

Web Bluetooth Testing

Web Bluetooth testing relies on the Web Bluetooth Testing API which must be provided by browsers under test.

In this test suite resources/bluetooth-helpers.js detects and triggers the API to be loaded as needed.

The Chromium implementation is provided by ../resources/chromium/web-bluetooth-test.js.

The Chromium implementation is not included in stable Chrome builds since it would add too much to the binary size. On Chromium infrastructure, it is run using the content_shell executable.

In the future, Chromium src/device/bluetooth may be refactored into a Mojo service. At this point, it would be possible to add the necessary testing hooks into stable Chrome without substantially increasing the binary size, similar to WebUSB.

These bluetooth tests are upstreamed here because other browsers can reuse them by implementing the Web Bluetooth Testing API, even if only on their internal infrastructure.

Generated gen-* files from generator.py

generator.py builds gen-*.html tests using templates in script-tests/*/*.js.

The subdirectory structure in bluetooth/script-test/* is recreated into bluetooth/*. The generator expands each CALL function from templates into new leaf directories and files.

Example:

script-tests/server/get-same-object.js contains:

gattServer.CALLS([
        getPrimaryService('heart_rate')|
        getPrimaryServices()|
        getPrimaryServices('heart_rate')[UUID]]),

Generating:

server/getPrimaryService/gen-get-same-object.html
server/getPrimaryServices/gen-get-same-object.html
server/getPrimaryServices/gen-get-same-object-with-uuid.html

Usage:

$ python generate.py

More details documented in generate.py.