feat(lea): substitute save menu gesture
This commit is contained in:
@@ -413,6 +413,101 @@ class TestReplayOptimization:
|
||||
assert optimized[0]["keys"] == ["alt", "f4"]
|
||||
assert optimized[0]["action_id"] == "t1"
|
||||
|
||||
def test_optimize_file_save_sequence_to_ctrl_s(self, catalog):
|
||||
"""Fichier > Enregistrer est remplace par Ctrl+S."""
|
||||
actions = [
|
||||
{
|
||||
"type": "click",
|
||||
"target_text": "Fichier",
|
||||
"target_spec": {"by_text": "Fichier", "by_role": "menuitem"},
|
||||
"action_id": "file_menu",
|
||||
},
|
||||
{
|
||||
"type": "click",
|
||||
"target_text": "Enregistrer",
|
||||
"target_spec": {"by_text": "Enregistrer", "by_role": "menuitem"},
|
||||
"action_id": "save_menu",
|
||||
},
|
||||
]
|
||||
optimized = catalog.optimize_replay_actions(actions)
|
||||
assert len(optimized) == 1
|
||||
assert optimized[0]["type"] == "key_combo"
|
||||
assert optimized[0]["keys"] == ["ctrl", "s"]
|
||||
assert optimized[0]["gesture_id"] == "edit_save"
|
||||
assert optimized[0]["action_id"] == "save_menu"
|
||||
assert optimized[0]["original_type"] == "click_sequence"
|
||||
assert optimized[0]["substitution_source_action_ids"] == ["file_menu", "save_menu"]
|
||||
assert optimized[0]["substitution_reason"] == "file_menu_save_to_ctrl_s"
|
||||
|
||||
def test_optimize_menu_save_action_to_ctrl_s(self, catalog):
|
||||
"""Une commande de menu Enregistrer isolee est remplacee par Ctrl+S."""
|
||||
actions = [
|
||||
{
|
||||
"type": "click",
|
||||
"target_spec": {"by_text": "Enregistrer", "by_role": "menuitem"},
|
||||
"action_id": "save_menu",
|
||||
},
|
||||
]
|
||||
optimized = catalog.optimize_replay_actions(actions)
|
||||
assert len(optimized) == 1
|
||||
assert optimized[0]["type"] == "key_combo"
|
||||
assert optimized[0]["keys"] == ["ctrl", "s"]
|
||||
assert optimized[0]["gesture_id"] == "edit_save"
|
||||
|
||||
def test_optimize_toolbar_save_action_to_ctrl_s(self, catalog):
|
||||
"""Un bouton Enregistrer de barre d'outils est remplace par Ctrl+S."""
|
||||
actions = [
|
||||
{
|
||||
"type": "click",
|
||||
"target_spec": {
|
||||
"by_text": "Enregistrer",
|
||||
"by_role": "button",
|
||||
"vlm_description": "Bouton Enregistrer dans la barre d'outils",
|
||||
},
|
||||
"action_id": "save_toolbar",
|
||||
},
|
||||
]
|
||||
optimized = catalog.optimize_replay_actions(actions)
|
||||
assert len(optimized) == 1
|
||||
assert optimized[0]["type"] == "key_combo"
|
||||
assert optimized[0]["keys"] == ["ctrl", "s"]
|
||||
assert optimized[0]["gesture_id"] == "edit_save"
|
||||
|
||||
def test_save_dialog_button_not_substituted(self, catalog):
|
||||
"""Le bouton Enregistrer d'un dialogue Enregistrer sous reste un clic."""
|
||||
actions = [
|
||||
{
|
||||
"type": "click",
|
||||
"target_spec": {
|
||||
"by_text": "Enregistrer",
|
||||
"by_role": "button",
|
||||
"window_title": "Enregistrer sous",
|
||||
"context_hints": {
|
||||
"interaction": "save_dialog_primary_button",
|
||||
},
|
||||
},
|
||||
"action_id": "save_dialog",
|
||||
},
|
||||
]
|
||||
optimized = catalog.optimize_replay_actions(actions)
|
||||
assert len(optimized) == 1
|
||||
assert optimized[0] is actions[0]
|
||||
assert optimized[0]["type"] == "click"
|
||||
|
||||
def test_save_as_menu_not_substituted(self, catalog):
|
||||
"""Enregistrer sous n'est pas equivalent a Ctrl+S."""
|
||||
actions = [
|
||||
{
|
||||
"type": "click",
|
||||
"target_spec": {"by_text": "Enregistrer sous", "by_role": "menuitem"},
|
||||
"action_id": "save_as_menu",
|
||||
},
|
||||
]
|
||||
optimized = catalog.optimize_replay_actions(actions)
|
||||
assert len(optimized) == 1
|
||||
assert optimized[0] is actions[0]
|
||||
assert optimized[0]["type"] == "click"
|
||||
|
||||
def test_optimize_action_without_id(self, catalog):
|
||||
"""Action substituee sans action_id recoit un id genere."""
|
||||
actions = [{"type": "click", "x_pct": 0.97, "y_pct": 0.02}]
|
||||
|
||||
Reference in New Issue
Block a user