| | |
| | | FIXTURE_APP_COUNT="${ALIGNER_ROUND1_MOUSE_FIXTURE_APP_COUNT:-8}" |
| | | FIXTURE_WINDOWS_PER_APP="${ALIGNER_ROUND1_MOUSE_FIXTURE_WINDOWS_PER_APP:-8}" |
| | | MOUSE_SEQUENCE="${ALIGNER_ROUND1_MOUSE_SEQUENCE:-hover-card:1:7,hover-app:5,hover-card:7:0,click-card:7:0}" |
| | | APP_ONLY_MOUSE_SEQUENCE="${ALIGNER_ROUND1_MOUSE_APP_ONLY_SEQUENCE:-hover-app:5,click-app:7}" |
| | | APP_ONLY_MOUSE_SEQUENCE="${ALIGNER_ROUND1_MOUSE_APP_ONLY_SEQUENCE:-hover-app:7,click-app-near-close:7}" |
| | | REPORT_WAIT="${ALIGNER_ROUND1_MOUSE_REPORT_WAIT:-6.0}" |
| | | WINDOW_WAIT="${ALIGNER_ROUND1_MOUSE_WINDOW_WAIT:-6.0}" |
| | | |
| | |
| | | root = report.get("rootView", {}) |
| | | items = root.get("appShelfItems", []) |
| | | columns = root.get("waterfallColumns", []) |
| | | click_app_commands = [command for command in mouse_sequence if command.startswith("click-app:")] |
| | | require(click_app_commands, "app-only sequence must include click-app:<appGroupIndex>") |
| | | click_app_prefixes = ("click-app:", "click-app-center:", "click-app-near-close:") |
| | | click_app_commands = [command for command in mouse_sequence if command.startswith(click_app_prefixes)] |
| | | require(click_app_commands, "app-only sequence must include an App click command") |
| | | last_click_app = click_app_commands[-1] |
| | | last_click_parts = last_click_app.split(":") |
| | | require(len(last_click_parts) == 2, "click-app command must be click-app:<appGroupIndex>") |
| | | require(len(last_click_parts) == 2, "App click command must be <command>:<appGroupIndex>") |
| | | target_app_group_index = int(last_click_parts[1]) |
| | | |
| | | require(report.get("snapshotLoaded") is True, "app-only snapshotLoaded must be true") |
| | |
| | | require(report.get("lastCommitSource") == "mouse", "session App Shelf commit source must be mouse") |
| | | require(report.get("lastActivationWindowID") == expected_window_id, "App Shelf activation window must be the first target-column window") |
| | | require(report.get("lastActivationResult") == "activated", "debug activation must activate the App Shelf first window") |
| | | require(report.get("lastCloseTargetKind") is None, "App Shelf body click must not enter close flow") |
| | | require(report.get("lastCloseResult") is None, "App Shelf body click must not request close") |
| | | require(root.get("pendingCloseTargetKind") is None, "App Shelf body click must not create pending close target") |
| | | require(root.get("hoveredCloseTargetKind") is None, "App Shelf body click must not leave a hovered close target") |
| | | require(root.get("closeConfirmationVisible") is False, "App Shelf body click must not show close confirmation") |
| | | require(root.get("closeFeedbackKind") is None, "App Shelf body click must not show close feedback") |
| | | require(root.get("lastClickedAppGroupIndex") == target_app_group_index, "click App Shelf must record target App group") |
| | | require(root.get("lastAppShelfClickChangedSelection") is True, "click App Shelf must explicitly report selection moved to target column") |
| | | require(root.get("waterfallScrollOffset", 0) > 0, "clicking far-right App Shelf item must position its Waterfall column") |
| | |
| | | "selectedAppGroupIndex": root.get("selectedAppGroupIndex"), |
| | | "lastCommittedWindowID": root.get("lastCommittedWindowID"), |
| | | "lastActivationResult": report.get("lastActivationResult"), |
| | | "closeConfirmationVisible": root.get("closeConfirmationVisible"), |
| | | "pendingCloseTargetKind": root.get("pendingCloseTargetKind"), |
| | | "lastClickedAppGroupIndex": root.get("lastClickedAppGroupIndex"), |
| | | "waterfallScrollOffset": root.get("waterfallScrollOffset") |
| | | }, indent=2, ensure_ascii=False)) |