mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-29 05:38:24 +00:00
LibWeb: Import serial idl harness wpt tests
This commit is contained in:
parent
1be31c103f
commit
ef9a3a2327
Notes:
github-actions[bot]
2025-08-08 08:24:25 +00:00
Author: https://github.com/EdwinHoksberg
Commit: ef9a3a2327
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/5740
Reviewed-by: https://github.com/gmta ✅
4 changed files with 189 additions and 0 deletions
|
@ -0,0 +1,62 @@
|
||||||
|
Harness status: OK
|
||||||
|
|
||||||
|
Found 57 tests
|
||||||
|
|
||||||
|
57 Pass
|
||||||
|
Pass idl_test setup
|
||||||
|
Pass idl_test validation
|
||||||
|
Pass Partial interface Navigator: original interface defined
|
||||||
|
Pass Partial interface Navigator: valid exposure set
|
||||||
|
Pass Partial interface Navigator: member names are unique
|
||||||
|
Pass Partial interface WorkerNavigator: original interface defined
|
||||||
|
Pass Partial interface WorkerNavigator: valid exposure set
|
||||||
|
Pass Partial interface WorkerNavigator: member names are unique
|
||||||
|
Pass Partial interface Navigator[2]: member names are unique
|
||||||
|
Pass Partial interface mixin NavigatorID: member names are unique
|
||||||
|
Pass Navigator includes NavigatorID: member names are unique
|
||||||
|
Pass Navigator includes NavigatorLanguage: member names are unique
|
||||||
|
Pass Navigator includes NavigatorOnLine: member names are unique
|
||||||
|
Pass Navigator includes NavigatorContentUtils: member names are unique
|
||||||
|
Pass Navigator includes NavigatorCookies: member names are unique
|
||||||
|
Pass Navigator includes NavigatorPlugins: member names are unique
|
||||||
|
Pass Navigator includes NavigatorConcurrentHardware: member names are unique
|
||||||
|
Pass WorkerNavigator includes NavigatorID: member names are unique
|
||||||
|
Pass WorkerNavigator includes NavigatorLanguage: member names are unique
|
||||||
|
Pass WorkerNavigator includes NavigatorOnLine: member names are unique
|
||||||
|
Pass WorkerNavigator includes NavigatorConcurrentHardware: member names are unique
|
||||||
|
Pass Serial interface: existence and properties of interface object
|
||||||
|
Pass Serial interface object length
|
||||||
|
Pass Serial interface object name
|
||||||
|
Pass Serial interface: existence and properties of interface prototype object
|
||||||
|
Pass Serial interface: existence and properties of interface prototype object's "constructor" property
|
||||||
|
Pass Serial interface: existence and properties of interface prototype object's @@unscopables property
|
||||||
|
Pass Serial interface: attribute onconnect
|
||||||
|
Pass Serial interface: attribute ondisconnect
|
||||||
|
Pass Serial interface: operation getPorts()
|
||||||
|
Pass Serial interface: operation requestPort(optional SerialPortRequestOptions)
|
||||||
|
Pass Serial must be primary interface of navigator.serial
|
||||||
|
Pass Stringification of navigator.serial
|
||||||
|
Pass Serial interface: navigator.serial must inherit property "onconnect" with the proper type
|
||||||
|
Pass Serial interface: navigator.serial must inherit property "ondisconnect" with the proper type
|
||||||
|
Pass Serial interface: navigator.serial must inherit property "getPorts()" with the proper type
|
||||||
|
Pass Serial interface: navigator.serial must inherit property "requestPort(optional SerialPortRequestOptions)" with the proper type
|
||||||
|
Pass Serial interface: calling requestPort(optional SerialPortRequestOptions) on navigator.serial with too few arguments must throw TypeError
|
||||||
|
Pass SerialPort interface: existence and properties of interface object
|
||||||
|
Pass SerialPort interface object length
|
||||||
|
Pass SerialPort interface object name
|
||||||
|
Pass SerialPort interface: existence and properties of interface prototype object
|
||||||
|
Pass SerialPort interface: existence and properties of interface prototype object's "constructor" property
|
||||||
|
Pass SerialPort interface: existence and properties of interface prototype object's @@unscopables property
|
||||||
|
Pass SerialPort interface: attribute onconnect
|
||||||
|
Pass SerialPort interface: attribute ondisconnect
|
||||||
|
Pass SerialPort interface: attribute connected
|
||||||
|
Pass SerialPort interface: attribute readable
|
||||||
|
Pass SerialPort interface: attribute writable
|
||||||
|
Pass SerialPort interface: operation getInfo()
|
||||||
|
Pass SerialPort interface: operation open(SerialOptions)
|
||||||
|
Pass SerialPort interface: operation setSignals(optional SerialOutputSignals)
|
||||||
|
Pass SerialPort interface: operation getSignals()
|
||||||
|
Pass SerialPort interface: operation close()
|
||||||
|
Pass SerialPort interface: operation forget()
|
||||||
|
Pass Navigator interface: attribute serial
|
||||||
|
Pass Navigator interface: navigator must inherit property "serial" with the proper type
|
89
Tests/LibWeb/Text/input/wpt-import/interfaces/serial.idl
Normal file
89
Tests/LibWeb/Text/input/wpt-import/interfaces/serial.idl
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
// GENERATED CONTENT - DO NOT EDIT
|
||||||
|
// Content was automatically extracted by Reffy into webref
|
||||||
|
// (https://github.com/w3c/webref)
|
||||||
|
// Source: Web Serial API (https://wicg.github.io/serial/)
|
||||||
|
|
||||||
|
[Exposed=Window, SecureContext]
|
||||||
|
partial interface Navigator {
|
||||||
|
[SameObject] readonly attribute Serial serial;
|
||||||
|
};
|
||||||
|
|
||||||
|
[Exposed=DedicatedWorker, SecureContext]
|
||||||
|
partial interface WorkerNavigator {
|
||||||
|
[SameObject] readonly attribute Serial serial;
|
||||||
|
};
|
||||||
|
|
||||||
|
[Exposed=(DedicatedWorker, Window), SecureContext]
|
||||||
|
interface Serial : EventTarget {
|
||||||
|
attribute EventHandler onconnect;
|
||||||
|
attribute EventHandler ondisconnect;
|
||||||
|
Promise<sequence<SerialPort>> getPorts();
|
||||||
|
[Exposed=Window] Promise<SerialPort> requestPort(optional SerialPortRequestOptions options = {});
|
||||||
|
};
|
||||||
|
|
||||||
|
dictionary SerialPortRequestOptions {
|
||||||
|
sequence<SerialPortFilter> filters;
|
||||||
|
sequence<BluetoothServiceUUID> allowedBluetoothServiceClassIds;
|
||||||
|
};
|
||||||
|
|
||||||
|
dictionary SerialPortFilter {
|
||||||
|
unsigned short usbVendorId;
|
||||||
|
unsigned short usbProductId;
|
||||||
|
BluetoothServiceUUID bluetoothServiceClassId;
|
||||||
|
};
|
||||||
|
|
||||||
|
[Exposed=(DedicatedWorker,Window), SecureContext]
|
||||||
|
interface SerialPort : EventTarget {
|
||||||
|
attribute EventHandler onconnect;
|
||||||
|
attribute EventHandler ondisconnect;
|
||||||
|
readonly attribute boolean connected;
|
||||||
|
readonly attribute ReadableStream readable;
|
||||||
|
readonly attribute WritableStream writable;
|
||||||
|
|
||||||
|
SerialPortInfo getInfo();
|
||||||
|
|
||||||
|
Promise<undefined> open(SerialOptions options);
|
||||||
|
Promise<undefined> setSignals(optional SerialOutputSignals signals = {});
|
||||||
|
Promise<SerialInputSignals> getSignals();
|
||||||
|
Promise<undefined> close();
|
||||||
|
Promise<undefined> forget();
|
||||||
|
};
|
||||||
|
|
||||||
|
dictionary SerialPortInfo {
|
||||||
|
unsigned short usbVendorId;
|
||||||
|
unsigned short usbProductId;
|
||||||
|
BluetoothServiceUUID bluetoothServiceClassId;
|
||||||
|
};
|
||||||
|
|
||||||
|
dictionary SerialOptions {
|
||||||
|
[EnforceRange] required unsigned long baudRate;
|
||||||
|
[EnforceRange] octet dataBits = 8;
|
||||||
|
[EnforceRange] octet stopBits = 1;
|
||||||
|
ParityType parity = "none";
|
||||||
|
[EnforceRange] unsigned long bufferSize = 255;
|
||||||
|
FlowControlType flowControl = "none";
|
||||||
|
};
|
||||||
|
|
||||||
|
enum ParityType {
|
||||||
|
"none",
|
||||||
|
"even",
|
||||||
|
"odd"
|
||||||
|
};
|
||||||
|
|
||||||
|
enum FlowControlType {
|
||||||
|
"none",
|
||||||
|
"hardware"
|
||||||
|
};
|
||||||
|
|
||||||
|
dictionary SerialOutputSignals {
|
||||||
|
boolean dataTerminalReady;
|
||||||
|
boolean requestToSend;
|
||||||
|
boolean break;
|
||||||
|
};
|
||||||
|
|
||||||
|
dictionary SerialInputSignals {
|
||||||
|
required boolean dataCarrierDetect;
|
||||||
|
required boolean clearToSend;
|
||||||
|
required boolean ringIndicator;
|
||||||
|
required boolean dataSetReady;
|
||||||
|
};
|
|
@ -0,0 +1,16 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset=utf-8>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
self.GLOBAL = {
|
||||||
|
isWindow: function() { return true; },
|
||||||
|
isWorker: function() { return false; },
|
||||||
|
isShadowRealm: function() { return false; },
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<script src="../resources/testharness.js"></script>
|
||||||
|
<script src="../resources/testharnessreport.js"></script>
|
||||||
|
<script src="../resources/WebIDLParser.js"></script>
|
||||||
|
<script src="../resources/idlharness.js"></script>
|
||||||
|
<div id=log></div>
|
||||||
|
<script src="../serial/idlharness.https.any.js"></script>
|
|
@ -0,0 +1,22 @@
|
||||||
|
// META: script=/resources/WebIDLParser.js
|
||||||
|
// META: script=/resources/idlharness.js
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
idl_test(
|
||||||
|
['serial'],
|
||||||
|
['html', 'dom'],
|
||||||
|
idl_array => {
|
||||||
|
idl_array.add_objects({
|
||||||
|
Serial: ['navigator.serial'],
|
||||||
|
// TODO: SerialPort
|
||||||
|
// TODO: SerialPortInfo
|
||||||
|
});
|
||||||
|
|
||||||
|
if (self.GLOBAL.isWorker()) {
|
||||||
|
idl_array.add_objects({ WorkerNavigator: ['navigator'] });
|
||||||
|
} else {
|
||||||
|
idl_array.add_objects({ Navigator: ['navigator'] });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
Loading…
Add table
Add a link
Reference in a new issue