gecko-dev/testing/web-platform/tests/bluetooth
Ovidio Henriquez b370189785 Bug 1564800 [wpt PR 17578] - bluetooth: Standalone Tests for characteristic/, a=testonly
Automatic update from web-platform-tests
bluetooth: Standalone Tests for characteristic/

This change refactors the Web Bluetooth WPT tests in the characteristic/
directory to be standalone window tests, as well as use the async/await
pattern. This makes the tests easier to format and easier to read.

The generated tests are not updated in this patch because they will
require updating the Python script that generates them.

Bug: 509038
Change-Id: I74d2158bbff3ef3b30d5286129cc3fc855e9a9da
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1682840
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Commit-Queue: Ovidio de Jesús Ruiz-Henríquez <odejesush@chromium.org>
Cr-Commit-Position: refs/heads/master@{#675371}

--

wpt-commits: 175bb1c4268b76f5023708a11c9b48c694e7eae7
wpt-pr: 17578
2019-07-24 13:33:22 +01:00
..
characteristic Bug 1564800 [wpt PR 17578] - bluetooth: Standalone Tests for characteristic/, a=testonly 2019-07-24 13:33:22 +01:00
descriptor Bug 1553840 [wpt PR 16763] - Check for detached ArrayBuffers in Web Bluetooth writeValue functions, a=testonly 2019-06-19 11:06:07 -07:00
device/gattserverdisconnected-event
idl
requestDevice
resources Bug 1550361 [wpt PR 16617] - Reland "Reland "bluetooth: FakeBluetoothChooser impl."", a=testonly 2019-06-05 10:28:55 +01:00
script-tests
server
service
generate_test.py
generate.py
META.yml
README.md Bug 1564782 [wpt PR 17646] - [bluetooth] Correct typos in documentation, a=testonly 2019-07-24 13:33:15 +01: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 generate.py

generate.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.