summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/serial/serial_onconnect.https.any.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/serial/serial_onconnect.https.any.js')
-rw-r--r--testing/web-platform/tests/serial/serial_onconnect.https.any.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/testing/web-platform/tests/serial/serial_onconnect.https.any.js b/testing/web-platform/tests/serial/serial_onconnect.https.any.js
new file mode 100644
index 0000000000..e2ff9a0f0a
--- /dev/null
+++ b/testing/web-platform/tests/serial/serial_onconnect.https.any.js
@@ -0,0 +1,29 @@
+// META: script=/resources/test-only-api.js
+// META: script=/serial/resources/common.js
+// META: script=resources/automation.js
+
+serial_test(async (t, fake) => {
+ const eventWatcher =
+ new EventWatcher(t, navigator.serial, ['connect', 'disconnect']);
+
+ // Wait for getPorts() to resolve in order to ensure that the Mojo client
+ // interface has been configured.
+ let ports = await navigator.serial.getPorts();
+ assert_equals(ports.length, 0);
+
+ fake.addPort();
+ const event1 = await eventWatcher.wait_for(['connect']);
+ assert_true(event1 instanceof Event);
+ assert_true(event1.target instanceof SerialPort);
+
+ fake.addPort();
+ const event2 = await eventWatcher.wait_for(['connect']);
+ assert_true(event2 instanceof Event);
+ assert_true(event2.target instanceof SerialPort);
+ assert_not_equals(event1.target, event2.target);
+
+ ports = await navigator.serial.getPorts();
+ assert_equals(ports.length, 2);
+ assert_in_array(event1.target, ports);
+ assert_in_array(event2.target, ports);
+}, 'A "connect" event is fired when ports are added.');