feat(protocol): negotiate display and native input
This commit is contained in:
@@ -36,6 +36,24 @@ def main() -> int:
|
||||
maximum = entry.get("max_frame_bytes", entry.get("max_payload_bytes"))
|
||||
assert isinstance(maximum, int) and 1 <= maximum <= maximum_bound
|
||||
|
||||
feature_registry = json.loads((ROOT / "registries/features.json").read_text(encoding="utf-8"))
|
||||
registered_features = {entry["id"] for entry in feature_registry["features"]}
|
||||
assert {"display.request.v1", "input.absolute.v1", "input.scroll.v1"}.issubset(registered_features)
|
||||
|
||||
display_mode = defs["DisplayMode"]
|
||||
assert display_mode["required"] == ["resolution_width", "resolution_height", "fps"]
|
||||
assert display_mode["properties"]["resolution_width"] == {"type": "integer", "minimum": 320, "maximum": 16384}
|
||||
assert display_mode["properties"]["resolution_height"] == {"type": "integer", "minimum": 200, "maximum": 8640}
|
||||
assert display_mode["properties"]["fps"] == {"type": "integer", "minimum": 1, "maximum": 240}
|
||||
for owner, field in (
|
||||
("SessionRequest", "requested_display_mode"),
|
||||
("BrokerSession", "requested_display_mode"),
|
||||
("BrokerSession", "effective_display_mode"),
|
||||
("ManifestProfile", "display_mode"),
|
||||
):
|
||||
assert field not in defs[owner]["required"]
|
||||
assert defs[owner]["properties"][field] == {"$ref": "#/$defs/DisplayMode"}
|
||||
|
||||
manifest = json.loads((ROOT / "fixtures/valid/manifest.json").read_text(encoding="utf-8"))
|
||||
assert set(manifest).issubset(set(defs["ConnectionManifest"]["properties"]))
|
||||
forbidden = json.loads((ROOT / "fixtures/invalid/manifest-provider-field.json").read_text(encoding="utf-8"))
|
||||
|
||||
Reference in New Issue
Block a user