servo/tests/wpt/web-platform-tests/bluetooth
2019-05-15 12:27:06 -04:00
..
characteristic Update web-platform-tests to revision 74bae78af4b95a2f0ca3a81df9c7fe3143f24bbc 2019-01-17 22:34:16 -05: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 74bae78af4b95a2f0ca3a81df9c7fe3143f24bbc 2019-01-17 22:34:16 -05:00
requestDevice Update web-platform-tests to revision 74bae78af4b95a2f0ca3a81df9c7fe3143f24bbc 2019-01-17 22:34:16 -05:00
resources Update web-platform-tests to revision d7afcb8708eac08a614d161d5622a48172daf7e3 2019-05-15 12:27:06 -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 74bae78af4b95a2f0ca3a81df9c7fe3143f24bbc 2019-01-17 22:34:16 -05:00
service Update web-platform-tests to revision 74bae78af4b95a2f0ca3a81df9c7fe3143f24bbc 2019-01-17 22:34:16 -05: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
META.yml Update web-platform-tests to revision 2d68590d46a990bf28a08d6384a59962d2e56bf6 2019-03-14 23:41:26 -04: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.