vdi-cloud/ui/terminal/output/playwright/login-verification.json

1055 lines
24 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"verifiedAt": "2026-11-09T17:03:18.593143+08:00",
"scope": "Local HTML login interaction prototype, Chromium browser. No real authentication, remote desktop, Qt port, or ARM device acceptance.",
"result": "passed",
"checkCount": 90,
"checks": [
{
"group": "flows",
"check": "Blank account is rejected and focused",
"passed": true
},
{
"group": "flows",
"check": "Empty password is rejected and focused via Enter",
"passed": true
},
{
"group": "flows",
"check": "Password reveal updates accessible state",
"passed": true
},
{
"group": "flows",
"check": "Password conceal works",
"passed": true
},
{
"group": "flows",
"check": "Login exposes busy state and blocks duplicate clicks",
"passed": true
},
{
"group": "flows",
"check": "Invalid credentials stay on login and clear password",
"passed": true
},
{
"group": "flows",
"check": "Demo helper shows public credentials",
"passed": true
},
{
"group": "flows",
"check": "Demo helper fills credentials without bypassing login",
"passed": true
},
{
"group": "flows",
"check": "Valid credentials log in via Enter with correct identity",
"passed": true
},
{
"group": "flows",
"check": "Successful login clears and conceals password",
"passed": true
},
{
"group": "flows",
"check": "Only remembered account is persisted; no password stored",
"passed": true
},
{
"group": "flows",
"check": "Logout returns login with remembered account and empty password",
"passed": true
},
{
"group": "flows",
"check": "Reload restores remembered account only",
"passed": true
},
{
"group": "flows",
"check": "Unchecking remember removes saved account across reload",
"passed": true
},
{
"group": "flows",
"check": "Forgot password provides administrator path",
"passed": true
},
{
"group": "flows",
"check": "Forgot password links to demo recovery",
"passed": true
},
{
"group": "flows",
"check": "Escape closes modal and restores trigger focus",
"passed": true
},
{
"group": "flows",
"check": "Offline experience has distinct identity and footer",
"passed": true
},
{
"group": "flows",
"check": "Admin shortcut cancels pending login without later redirect",
"passed": true
},
{
"group": "flows",
"check": "No browser runtime errors during account flows",
"passed": true
},
{
"group": "flows",
"check": "No external authentication or remote desktop requests",
"passed": true
},
{
"group": "enterprise",
"check": "Cancel does not save service draft",
"passed": true
},
{
"group": "enterprise",
"check": "SSO requires enterprise connection before identity preview",
"passed": true
},
{
"group": "enterprise",
"check": "Reject unsafe enterprise endpoint: (empty)",
"passed": true
},
{
"group": "enterprise",
"check": "Reject unsafe enterprise endpoint: invalid",
"passed": true
},
{
"group": "enterprise",
"check": "Reject unsafe enterprise endpoint: http://vdi.example.com",
"passed": true
},
{
"group": "enterprise",
"check": "Reject unsafe enterprise endpoint: https://user:secret@vdi.example.com",
"passed": true
},
{
"group": "enterprise",
"check": "Reject unsafe enterprise endpoint: https://vdi.example.com/?token=secret",
"passed": true
},
{
"group": "enterprise",
"check": "Reject unsafe enterprise endpoint: https://vdi.example.com/#secret",
"passed": true
},
{
"group": "enterprise",
"check": "Service tabs support keyboard Home",
"passed": true
},
{
"group": "enterprise",
"check": "Switching service mode preserves in-progress draft",
"passed": true
},
{
"group": "enterprise",
"check": "Save-and-continue opens correct SSO identity preview",
"passed": true
},
{
"group": "enterprise",
"check": "Escape cancels in-flight SSO without delayed login",
"passed": true
},
{
"group": "enterprise",
"check": "Cancel button cancels in-flight SSO",
"passed": true
},
{
"group": "enterprise",
"check": "SSO prototype enters workspace with enterprise identity",
"passed": true
},
{
"group": "enterprise",
"check": "Successful login moves keyboard focus to workspace title",
"passed": true
},
{
"group": "enterprise",
"check": "Saved enterprise mode survives reload",
"passed": true
},
{
"group": "enterprise",
"check": "Normalized enterprise URL and organization persist",
"passed": true
},
{
"group": "enterprise",
"check": "Local HTTP endpoint is accepted for prototype",
"passed": true
},
{
"group": "enterprise",
"check": "Service can return to cloud mode",
"passed": true
},
{
"group": "enterprise",
"check": "Account login still succeeds after SSO and service changes",
"passed": true
},
{
"group": "layout",
"check": "dark 1280×720 login and footer fit viewport",
"passed": true
},
{
"group": "layout",
"check": "dark 1280 error state fits viewport",
"passed": true
},
{
"group": "layout",
"check": "dark 1280 #auth-demo dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "dark 1280 #auth-forgot dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "dark 1280 #auth-offline dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "dark 1280 #auth-sso dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "dark 1366×768 login and footer fit viewport",
"passed": true
},
{
"group": "layout",
"check": "dark 1366 error state fits viewport",
"passed": true
},
{
"group": "layout",
"check": "dark 1366 #auth-demo dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "dark 1366 #auth-forgot dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "dark 1366 #auth-offline dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "dark 1366 #auth-sso dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "dark 1920×1080 login and footer fit viewport",
"passed": true
},
{
"group": "layout",
"check": "dark 1920 error state fits viewport",
"passed": true
},
{
"group": "layout",
"check": "dark 1920 #auth-demo dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "dark 1920 #auth-forgot dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "dark 1920 #auth-offline dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "dark 1920 #auth-sso dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "dark dialog traps keyboard focus",
"passed": true
},
{
"group": "layout",
"check": "light 1280×720 login and footer fit viewport",
"passed": true
},
{
"group": "layout",
"check": "light 1280 error state fits viewport",
"passed": true
},
{
"group": "layout",
"check": "light 1280 #auth-demo dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "light 1280 #auth-forgot dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "light 1280 #auth-offline dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "light 1280 #auth-sso dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "light 1366×768 login and footer fit viewport",
"passed": true
},
{
"group": "layout",
"check": "light 1366 error state fits viewport",
"passed": true
},
{
"group": "layout",
"check": "light 1366 #auth-demo dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "light 1366 #auth-forgot dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "light 1366 #auth-offline dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "light 1366 #auth-sso dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "light 1920×1080 login and footer fit viewport",
"passed": true
},
{
"group": "layout",
"check": "light 1920 error state fits viewport",
"passed": true
},
{
"group": "layout",
"check": "light 1920 #auth-demo dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "light 1920 #auth-forgot dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "light 1920 #auth-offline dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "light 1920 #auth-sso dialog fits viewport",
"passed": true
},
{
"group": "layout",
"check": "light dialog traps keyboard focus",
"passed": true
},
{
"group": "layout",
"check": "Narrow login 820 has no horizontal overflow",
"passed": true
},
{
"group": "layout",
"check": "Narrow dialog 820 remains inside viewport",
"passed": true
},
{
"group": "layout",
"check": "Narrow enterprise validation remains reachable 820",
"passed": true
},
{
"group": "layout",
"check": "Narrow login 390 has no horizontal overflow",
"passed": true
},
{
"group": "layout",
"check": "Narrow dialog 390 remains inside viewport",
"passed": true
},
{
"group": "layout",
"check": "Narrow enterprise validation remains reachable 390",
"passed": true
},
{
"group": "source",
"check": "Original brand HTML preserved against pre-task backup",
"passed": true
},
{
"group": "source",
"check": "Original inline design CSS preserved against pre-task backup",
"passed": true
},
{
"group": "source",
"check": "Workspace CSS preserved against pre-task backup",
"passed": true
},
{
"group": "source",
"check": "Login and workspace JavaScript pass node --check",
"passed": true
},
{
"group": "source",
"check": "Measured new helper and dialog text contrast is at least 4.5:1 in both themes",
"passed": true
}
],
"demo": {
"username": "demo",
"password": "Demo123!",
"publicPrototypeCredentials": true
},
"geometry": {
"dark-1280": {
"card": {
"top": 129.59375,
"bottom": 647.59375,
"left": 645.109375,
"right": 1077.734375
},
"footerBottom": 618.59375,
"width": 1280,
"height": 720
},
"dark-1366": {
"card": {
"top": 138.234375,
"bottom": 735.640625,
"left": 688.453125,
"right": 1150.15625
},
"footerBottom": 693.9375,
"width": 1366,
"height": 768
},
"dark-1920": {
"card": {
"top": 194.390625,
"bottom": 950.390625,
"left": 967.671875,
"right": 1616.625
},
"footerBottom": 766.625,
"width": 1920,
"height": 1080
},
"light-1280": {
"card": {
"top": 129.59375,
"bottom": 647.59375,
"left": 645.109375,
"right": 1077.734375
},
"footerBottom": 618.59375,
"width": 1280,
"height": 720
},
"light-1366": {
"card": {
"top": 138.234375,
"bottom": 735.640625,
"left": 688.453125,
"right": 1150.15625
},
"footerBottom": 693.9375,
"width": 1366,
"height": 768
},
"light-1920": {
"card": {
"top": 194.390625,
"bottom": 950.390625,
"left": 967.671875,
"right": 1616.625
},
"footerBottom": 766.625,
"width": 1920,
"height": 1080
}
},
"newInteractionTextContrast": {
"dark#auth-demo": [
{
"text": "体验账号",
"ratio": 6.96
},
{
"text": "账号或密码不正确,请重试或查看体验账号",
"ratio": 8.38
},
{
"text": "体验账号",
"ratio": 12.27
},
{
"text": "用于预览登录、桌面选择和连接设置流程。",
"ratio": 7.94
},
{
"text": "×",
"ratio": 7.14
},
{
"text": "工作账号",
"ratio": 7.14
},
{
"text": "demo",
"ratio": 11.03
},
{
"text": "密码",
"ratio": 7.14
},
{
"text": "Demo123!",
"ratio": 11.03
},
{
"text": "这是交互原型的公开体验账号,未连接真实认证服务。请使用体验信息。",
"ratio": 7.14
},
{
"text": "返回",
"ratio": 12.27
},
{
"text": "填入体验账号",
"ratio": 5.1
}
],
"dark#auth-forgot": [
{
"text": "体验账号",
"ratio": 6.96
},
{
"text": "账号或密码不正确,请重试或查看体验账号",
"ratio": 8.38
},
{
"text": "忘记密码",
"ratio": 12.27
},
{
"text": "企业工作账号由管理员统一管理。",
"ratio": 7.94
},
{
"text": "×",
"ratio": 7.14
},
{
"text": "请联系越欣科技管理员重置密码",
"ratio": 11.03
},
{
"text": "可提供工作账号与设备序列号 VDI-8F42A1,协助管理员定位。",
"ratio": 7.14
},
{
"text": "原型体验账号无法修改密码,可重新查看体验信息。",
"ratio": 7.94
},
{
"text": "返回登录",
"ratio": 12.27
},
{
"text": "查看体验账号",
"ratio": 5.1
}
],
"dark#auth-offline": [
{
"text": "体验账号",
"ratio": 6.96
},
{
"text": "账号或密码不正确,请重试或查看体验账号",
"ratio": 8.38
},
{
"text": "离线体验",
"ratio": 12.27
},
{
"text": "先了解桌面列表和终端设置。",
"ratio": 7.94
},
{
"text": "×",
"ratio": 7.14
},
{
"text": "无需工作账号",
"ratio": 11.03
},
{
"text": "可预览桌面、收藏和连接设置,设备与桌面信息为示例。配置仅保存在当前浏览器,不连接",
"ratio": 7.14
},
{
"text": "取消",
"ratio": 12.27
},
{
"text": "进入离线体验",
"ratio": 5.1
}
],
"dark#auth-sso": [
{
"text": "体验账号",
"ratio": 6.96
},
{
"text": "账号或密码不正确,请重试或查看体验账号",
"ratio": 8.38
},
{
"text": "连接设置",
"ratio": 12.27
},
{
"text": "选择云端服务或企业部署入口。",
"ratio": 7.94
},
{
"text": "×",
"ratio": 7.14
},
{
"text": "云端服务",
"ratio": 7.14
},
{
"text": "企业部署",
"ratio": 7.23
},
{
"text": "企业服务地址使用 HTTPS 地址;HTTP 仅支持本机预览。",
"ratio": 12.27
},
{
"text": "使用 HTTPS 地址;HTTP 仅支持本机预览。",
"ratio": 7.94
},
{
"text": "租户或组织标识 选填",
"ratio": 12.27
},
{
"text": "选填",
"ratio": 7.94
},
{
"text": "取消",
"ratio": 12.27
},
{
"text": "保存并继续",
"ratio": 5.1
}
],
"dark-sso": [
{
"text": "体验账号",
"ratio": 6.96
},
{
"text": "账号或密码不正确,请重试或查看体验账号",
"ratio": 8.38
},
{
"text": "企业账号登录",
"ratio": 12.27
},
{
"text": "通过企业统一身份进入云桌面。",
"ratio": 7.94
},
{
"text": "×",
"ratio": 7.14
},
{
"text": "企业服务",
"ratio": 7.14
},
{
"text": "https://vdi.example.com",
"ratio": 11.03
},
{
"text": "组织",
"ratio": 7.14
},
{
"text": "越欣科技",
"ratio": 11.03
},
{
"text": "体验身份",
"ratio": 7.14
},
{
"text": "越欣科技 · 体验用户",
"ratio": 11.03
},
{
"text": "当前为统一身份登录预览,不会跳转或访问真实企业身份服务。",
"ratio": 7.94
},
{
"text": "取消登录",
"ratio": 12.27
},
{
"text": "使用体验身份继续",
"ratio": 5.1
}
],
"light#auth-demo": [
{
"text": "体验账号",
"ratio": 6.95
},
{
"text": "账号或密码不正确,请重试或查看体验账号",
"ratio": 6.06
},
{
"text": "体验账号",
"ratio": 12.69
},
{
"text": "用于预览登录、桌面选择和连接设置流程。",
"ratio": 6.18
},
{
"text": "×",
"ratio": 5.72
},
{
"text": "工作账号",
"ratio": 5.72
},
{
"text": "demo",
"ratio": 11.72
},
{
"text": "密码",
"ratio": 5.72
},
{
"text": "Demo123!",
"ratio": 11.72
},
{
"text": "这是交互原型的公开体验账号,未连接真实认证服务。请使用体验信息。",
"ratio": 5.72
},
{
"text": "返回",
"ratio": 12.69
},
{
"text": "填入体验账号",
"ratio": 5.1
}
],
"light#auth-forgot": [
{
"text": "体验账号",
"ratio": 6.95
},
{
"text": "账号或密码不正确,请重试或查看体验账号",
"ratio": 6.06
},
{
"text": "忘记密码",
"ratio": 12.69
},
{
"text": "企业工作账号由管理员统一管理。",
"ratio": 6.18
},
{
"text": "×",
"ratio": 5.72
},
{
"text": "请联系越欣科技管理员重置密码",
"ratio": 11.72
},
{
"text": "可提供工作账号与设备序列号 VDI-8F42A1,协助管理员定位。",
"ratio": 5.72
},
{
"text": "原型体验账号无法修改密码,可重新查看体验信息。",
"ratio": 6.18
},
{
"text": "返回登录",
"ratio": 12.69
},
{
"text": "查看体验账号",
"ratio": 5.1
}
],
"light#auth-offline": [
{
"text": "体验账号",
"ratio": 6.95
},
{
"text": "账号或密码不正确,请重试或查看体验账号",
"ratio": 6.06
},
{
"text": "离线体验",
"ratio": 12.69
},
{
"text": "先了解桌面列表和终端设置。",
"ratio": 6.18
},
{
"text": "×",
"ratio": 5.72
},
{
"text": "无需工作账号",
"ratio": 11.72
},
{
"text": "可预览桌面、收藏和连接设置,设备与桌面信息为示例。配置仅保存在当前浏览器,不连接",
"ratio": 5.72
},
{
"text": "取消",
"ratio": 12.69
},
{
"text": "进入离线体验",
"ratio": 5.1
}
],
"light#auth-sso": [
{
"text": "体验账号",
"ratio": 6.95
},
{
"text": "账号或密码不正确,请重试或查看体验账号",
"ratio": 6.06
},
{
"text": "连接设置",
"ratio": 12.69
},
{
"text": "选择云端服务或企业部署入口。",
"ratio": 6.18
},
{
"text": "×",
"ratio": 5.72
},
{
"text": "云端服务",
"ratio": 5.72
},
{
"text": "企业部署",
"ratio": 5.57
},
{
"text": "企业服务地址使用 HTTPS 地址;HTTP 仅支持本机预览。",
"ratio": 12.69
},
{
"text": "使用 HTTPS 地址;HTTP 仅支持本机预览。",
"ratio": 6.18
},
{
"text": "租户或组织标识 选填",
"ratio": 12.69
},
{
"text": "选填",
"ratio": 6.18
},
{
"text": "取消",
"ratio": 12.69
},
{
"text": "保存并继续",
"ratio": 5.1
}
],
"light-sso": [
{
"text": "体验账号",
"ratio": 6.95
},
{
"text": "账号或密码不正确,请重试或查看体验账号",
"ratio": 6.06
},
{
"text": "企业账号登录",
"ratio": 12.69
},
{
"text": "通过企业统一身份进入云桌面。",
"ratio": 6.18
},
{
"text": "×",
"ratio": 5.72
},
{
"text": "企业服务",
"ratio": 5.72
},
{
"text": "https://vdi.example.com",
"ratio": 11.72
},
{
"text": "组织",
"ratio": 5.72
},
{
"text": "越欣科技",
"ratio": 11.72
},
{
"text": "体验身份",
"ratio": 5.72
},
{
"text": "越欣科技 · 体验用户",
"ratio": 11.72
},
{
"text": "当前为统一身份登录预览,不会跳转或访问真实企业身份服务。",
"ratio": 6.18
},
{
"text": "取消登录",
"ratio": 12.69
},
{
"text": "使用体验身份继续",
"ratio": 5.1
}
]
},
"minMeasuredNewTextContrast": 5.1,
"screenshots": [
"login-demo-dark.png",
"login-demo-light.png",
"login-dialog-390.png",
"login-dialog-820.png",
"login-enterprise-dark.png",
"login-enterprise-light.png",
"login-forgot-dark.png",
"login-forgot-light.png",
"login-interactive-dark-1280.png",
"login-interactive-dark-1366.png",
"login-interactive-dark-1920.png",
"login-interactive-dark.png",
"login-interactive-light-1280.png",
"login-interactive-light-1366.png",
"login-interactive-light-1920.png",
"login-interactive-light.png",
"login-offline-dark.png",
"login-offline-light.png",
"login-sso-dark.png",
"login-sso-light.png",
"login-success-dark.png",
"login-validation-dark.png",
"login-validation-light.png"
],
"browserErrors": [],
"externalRequestsDuringAccountFlows": [],
"sourceHashes": {
"index.html": "02488524b72f857c3fa307e8c17d25d3a34fd38c8c761f3c9bac611410d524d1",
"login-interactions.js": "8b48c046b824d8ef48cffffba988d950c6d78de13b5a207ab3150b2e1d506342",
"login-interactions.css": "d468dd8619b2230bcef2de3b040acd47f3e429c3c749ba54f670f862fe4db62d",
"workspace.js": "eb42cd659e2d731a05b64a8e2a6fc92ec4cd14e47d36c558432d4ff2979eb968",
"workspace.css": "c1a0e30cf11a1c5f3e539ef4446890b3f54e204f6c2e00c84c694972ece4ea2d",
"review.html": "9244afde8b12ea3f1ff2c1fd26b743f36d13c0fd96d36023c34655d3460b9378"
},
"priorReport": "verification.json describes the preceding workspace iteration. Its original login-baseline and direct-login checks are historical and superseded by this report."
}