feat: refactor vehicle and gesture control console
This commit is contained in:
@@ -111,8 +111,20 @@ class SeatWebApiTests(unittest.TestCase):
|
||||
def test_static_console_and_runtime_endpoint(self) -> None:
|
||||
with self.opener.open(f"{self.base_url}/", timeout=3) as response:
|
||||
html = response.read().decode("utf-8")
|
||||
with self.opener.open(f"{self.base_url}/app.js?v=seat-hil-13", timeout=3) as response:
|
||||
with self.opener.open(f"{self.base_url}/app.js?v=seat-hil-42", timeout=3) as response:
|
||||
app_script = response.read().decode("utf-8")
|
||||
with self.opener.open(
|
||||
f"{self.base_url}/gesture-control.js?v=android-pad-5", timeout=3
|
||||
) as response:
|
||||
gesture_script = response.read().decode("utf-8")
|
||||
with self.opener.open(
|
||||
f"{self.base_url}/console-v2.js?v=desktop-refactor-16", timeout=3
|
||||
) as response:
|
||||
console_script = response.read().decode("utf-8")
|
||||
with self.opener.open(
|
||||
f"{self.base_url}/console-v2.css?v=desktop-refactor-56", timeout=3
|
||||
) as response:
|
||||
console_styles = response.read().decode("utf-8")
|
||||
with self.opener.open(f"{self.base_url}/api/runtime", timeout=3) as response:
|
||||
runtime = json.loads(response.read().decode("utf-8"))
|
||||
|
||||
@@ -120,10 +132,78 @@ class SeatWebApiTests(unittest.TestCase):
|
||||
self.assertIn('id="seatTwinCanvas"', html)
|
||||
self.assertIn('data-vehicle-model="byd-tang-2024-reference"', html)
|
||||
self.assertIn("整车孪生界面", html)
|
||||
self.assertIn("透明车体 · 实体设备", html)
|
||||
self.assertIn('src="/app.js?v=seat-hil-13"', html)
|
||||
self.assertIn("<strong>阅读灯</strong>", html)
|
||||
self.assertNotIn("透明车体 · 实体设备", html)
|
||||
self.assertIn('src="/app.js?v=seat-hil-42"', html)
|
||||
self.assertIn('src="/gesture-control.js?v=android-pad-5"', html)
|
||||
self.assertNotIn('class="vehicle-system-hud"', html)
|
||||
self.assertIn('src="/console-v2.js?v=desktop-refactor-16"', html)
|
||||
self.assertIn('href="/console-v2.css?v=desktop-refactor-56"', html)
|
||||
self.assertNotIn("滚动查看更多", html)
|
||||
self.assertIn('aria-label="执行车舱控制指令"', html)
|
||||
self.assertIn('sessionStorage.getItem("cognitive-agent.demo-role")', console_script)
|
||||
self.assertIn('id="v2SidebarToggle"', console_script)
|
||||
self.assertIn('class="field-label">手势模型</span>', console_script)
|
||||
self.assertIn('id="v2GestureModelValue">MediaPipe GR</strong>', console_script)
|
||||
self.assertIn('id="v2GestureModelNote">Tasks Vision · 0.10.14</small>', console_script)
|
||||
self.assertIn('cameraStage.append(cameraToggle)', console_script)
|
||||
self.assertIn("function enhanceConfiguredDropdowns()", console_script)
|
||||
self.assertIn("function updateModeEdgeHints()", console_script)
|
||||
self.assertIn('classList.toggle("v2-twin-active", definition.index === 0)', console_script)
|
||||
self.assertIn('label: "执行结果与硬件回读"', console_script)
|
||||
self.assertIn('userTargetText.textContent = "真实台架尚未就绪"', console_script)
|
||||
self.assertIn('grid-template-columns: clamp(245px, 18.5vw, 310px)', console_styles)
|
||||
self.assertIn('.v2-control-switch {', console_styles)
|
||||
self.assertIn('.v2-gesture-model-field', console_styles)
|
||||
self.assertIn('.v2-inline-gesture .v2-camera-toggle', console_styles)
|
||||
self.assertIn('[data-demo-role="user"] .v2-inline-gesture .gesture-actions', console_styles)
|
||||
self.assertIn('.v2-inline-gesture #gestureStopButton', console_styles)
|
||||
self.assertIn('grid-template-columns: 1fr;', console_styles)
|
||||
self.assertIn('.v2-page-rail', console_styles)
|
||||
self.assertIn('.v2-dropdown-menu', console_styles)
|
||||
self.assertIn('.v2-edge-fade-left', console_styles)
|
||||
self.assertIn('.v2-edge-fade-right', console_styles)
|
||||
self.assertIn('.mode-group-divider', console_styles)
|
||||
self.assertIn('.joint-twin-shell > .cabin-band', console_styles)
|
||||
self.assertIn('[data-demo-role="user"] .v2-page-index', console_styles)
|
||||
self.assertIn('.joint-twin-shell .twin-readout', console_styles)
|
||||
self.assertIn('.joint-seat-panel .thermal-states', console_styles)
|
||||
self.assertIn('.joint-twin-shell .domain-readouts', console_styles)
|
||||
self.assertIn('grid-template-columns: repeat(2, minmax(0, 1fr))', console_styles)
|
||||
self.assertIn('.v2-config-section > .v2-field-caption', console_styles)
|
||||
self.assertIn('.console-v2.v2-sidebar-collapsed .workspace', console_styles)
|
||||
self.assertIn('id="hardwareAccessField"', html)
|
||||
self.assertIn('const dynamicModeOrder = ["rocking_horse", "dynamic_cradle"]', app_script)
|
||||
self.assertIn('divider.className = "mode-group-divider"', app_script)
|
||||
self.assertIn("function extractReferenceWindowPanes", app_script)
|
||||
self.assertIn("function collectReferenceFrontLampMeshes", app_script)
|
||||
self.assertIn("function emphasizeReferenceWindowPanes", app_script)
|
||||
self.assertIn("function configureActiveSeatDepthLayers", app_script)
|
||||
self.assertIn("function addTwinGlassDepthMask", app_script)
|
||||
self.assertIn("function applyTwinVehicleTheme", app_script)
|
||||
self.assertIn("leadingMaxZ", app_script)
|
||||
self.assertIn("function updateReferenceWindowOutlineLayers", app_script)
|
||||
self.assertIn("vehicle.traverse((object) => object.layers.set(1))", app_script)
|
||||
self.assertIn('const categoryPriority = ["body", "glass", "wheel"', app_script)
|
||||
self.assertIn("function styleReferencePassiveGlass", app_script)
|
||||
self.assertIn("function styleReferencePassiveRearExterior", app_script)
|
||||
self.assertIn('twinRole: "reference_passive_rear_bumper"', app_script)
|
||||
self.assertIn('"cognitive-agent:demo-role-change"', console_script)
|
||||
self.assertIn("function emphasizeReferenceFrontLampMeshes", app_script)
|
||||
self.assertIn("function createReferenceFrontLampHighlights", app_script)
|
||||
self.assertIn("referenceFrontLampMaterials", app_script)
|
||||
self.assertIn("targets.windowPositions", app_script)
|
||||
self.assertIn("hardware_access_required", app_script)
|
||||
self.assertIn('button.setAttribute("aria-label", "关闭摄像头")', gesture_script)
|
||||
self.assertIn("function refreshCameraAvailability", gesture_script)
|
||||
self.assertIn("navigator.mediaDevices.enumerateDevices()", gesture_script)
|
||||
self.assertIn('addEventListener?.("devicechange", handleCameraDeviceChange)', gesture_script)
|
||||
self.assertIn('case "NotFoundError":', gesture_script)
|
||||
self.assertIn('case "NotAllowedError":', gesture_script)
|
||||
self.assertIn('case "NotReadableError":', gesture_script)
|
||||
self.assertIn('case "OverconstrainedError":', gesture_script)
|
||||
self.assertIn("function sendSimulatedGesture()", gesture_script)
|
||||
self.assertIn('document.body.dataset.demoRole !== "admin"', gesture_script)
|
||||
self.assertIn("HARDWARE_REQUEST_TIMEOUT_MS = 15 * 60 * 1000", app_script)
|
||||
self.assertIn(
|
||||
"requestTimeoutForExecutionMode(state.executionMode)", app_script
|
||||
@@ -147,6 +227,13 @@ class SeatWebApiTests(unittest.TestCase):
|
||||
self.assertIn('data-domain-panel="climate"', html)
|
||||
self.assertIn('data-domain-panel="roof"', html)
|
||||
self.assertIn('data-domain-panel="ambient_light"', html)
|
||||
self.assertIn('data-domain-panel="window"', html)
|
||||
self.assertIn('data-domain-panel="front_light"', html)
|
||||
self.assertIn('id="driverAirDirection"', html)
|
||||
self.assertIn('id="passengerAirDirection"', html)
|
||||
self.assertNotIn('id="transmittanceValue"', html)
|
||||
self.assertNotIn('id="roofMotorState"', html)
|
||||
self.assertNotIn('id="ambientBrightness"', html)
|
||||
self.assertIn("坐垫脚托夹角133度", html)
|
||||
self.assertNotIn('data-axis="height"', html)
|
||||
self.assertEqual(runtime["domain"], "cabin")
|
||||
|
||||
Reference in New Issue
Block a user