WIP: AX port and noatspi work

This commit is contained in:
Storm Dragon
2025-12-25 20:51:34 -05:00
parent 0a18de8e87
commit e134bf97d5
103 changed files with 12882 additions and 3556 deletions

View File

@@ -27,6 +27,9 @@
OOo sbase application crashes when entering a database record.
"""
import gi
gi.require_version('Atspi', '2.0')
from gi.repository import Atspi
from macaroon.playback import *
sequence = MacroSequence()
@@ -36,7 +39,7 @@ sequence = MacroSequence()
# appear.
#
sequence.append(WaitForWindowActivate("Database Wizard", None))
sequence.append(WaitForFocus("Select database", acc_role=pyatspi.ROLE_LABEL))
sequence.append(WaitForFocus("Select database", acc_role=Atspi.Role.LABEL))
######################################################################
# 2. Press Return to get to the second screen of the startup wizard.
@@ -46,7 +49,7 @@ sequence.append(WaitForFocus("Select database", acc_role=pyatspi.ROLE_LABEL))
# SPEECH OUTPUT: 'Save and proceed label'
#
sequence.append(KeyComboAction("Return"))
sequence.append(WaitForFocus("Save and proceed", acc_role=pyatspi.ROLE_LABEL))
sequence.append(WaitForFocus("Save and proceed", acc_role=Atspi.Role.LABEL))
######################################################################
# 3. Press Tab to get to the database registration radio buttons.
@@ -56,7 +59,7 @@ sequence.append(WaitForFocus("Save and proceed", acc_role=pyatspi.ROLE_LABEL))
# SPEECH OUTPUT: 'Yes, register the database for me selected radio button'
#
sequence.append(KeyComboAction("Tab"))
sequence.append(WaitForFocus("Yes, register the database for me", acc_role=pyatspi.ROLE_RADIO_BUTTON))
sequence.append(WaitForFocus("Yes, register the database for me", acc_role=Atspi.Role.RADIO_BUTTON))
######################################################################
# 4. Press down arrow to not register this database.
@@ -66,7 +69,7 @@ sequence.append(WaitForFocus("Yes, register the database for me", acc_role=pyats
# SPEECH OUTPUT: 'No, do not register the database selected radio button'
#
sequence.append(KeyComboAction("Down"))
sequence.append(WaitForFocus("No, do not register the database", acc_role=pyatspi.ROLE_RADIO_BUTTON))
sequence.append(WaitForFocus("No, do not register the database", acc_role=Atspi.Role.RADIO_BUTTON))
sequence.append(PauseAction(3000))
######################################################################
@@ -78,7 +81,7 @@ sequence.append(PauseAction(3000))
# SPEECH OUTPUT: 'Files table'
#
sequence.append(KeyComboAction("Return"))
sequence.append(WaitForFocus("Files", acc_role=pyatspi.ROLE_TABLE))
sequence.append(WaitForFocus("Files", acc_role=Atspi.Role.TABLE))
sequence.append(PauseAction(3000))
######################################################################
@@ -97,19 +100,19 @@ sequence.append(PauseAction(3000))
#
sequence.append(KeyComboAction("Return"))
sequence.append(WaitForWindowActivate("New Database - OpenOffice.org Base", None))
sequence.append(WaitForFocus("IconChoiceControl", acc_role=pyatspi.ROLE_TREE))
sequence.append(WaitForFocus("IconChoiceControl", acc_role=Atspi.Role.TREE))
######################################################################
# 7. Enter Alt-f, Alt-c to close the database window.
#
sequence.append(KeyComboAction("<Alt>f"))
sequence.append(WaitForFocus("New", acc_role=pyatspi.ROLE_MENU))
sequence.append(WaitForFocus("New", acc_role=Atspi.Role.MENU))
sequence.append(KeyComboAction("<Alt>c"))
sequence.append(WaitAction("object:property-change:accessible-name",
None,
None,
pyatspi.ROLE_ROOT_PANE,
Atspi.Role.ROOT_PANE,
30000))
######################################################################

View File

@@ -27,6 +27,9 @@
OOo sbase application crashes when entering a database record.
"""
import gi
gi.require_version('Atspi', '2.0')
from gi.repository import Atspi
from macaroon.playback import *
sequence = MacroSequence()
@@ -49,10 +52,10 @@ sequence.append(WaitForWindowActivate("bug_465109 - OpenOffice.org Base", None))
# SPEECH OUTPUT: 'Tables label'
#
sequence.append(KeyComboAction("<Alt>v"))
sequence.append(WaitForFocus("Database Objects", acc_role=pyatspi.ROLE_MENU))
sequence.append(WaitForFocus("Database Objects", acc_role=Atspi.Role.MENU))
sequence.append(KeyComboAction("Right"))
sequence.append(WaitForFocus("Tables", acc_role=pyatspi.ROLE_MENU_ITEM))
sequence.append(WaitForFocus("Tables", acc_role=Atspi.Role.MENU_ITEM))
sequence.append(KeyComboAction("Return"))
@@ -61,13 +64,13 @@ sequence.append(KeyComboAction("Return"))
# Tables pane.
#
sequence.append(KeyComboAction("Tab"))
sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_TREE))
sequence.append(WaitForFocus("", acc_role=Atspi.Role.TREE))
sequence.append(KeyComboAction("Tab"))
sequence.append(WaitForFocus("None", acc_role=pyatspi.ROLE_PUSH_BUTTON))
sequence.append(WaitForFocus("None", acc_role=Atspi.Role.PUSH_BUTTON))
sequence.append(KeyComboAction("Tab"))
sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_TREE))
sequence.append(WaitForFocus("", acc_role=Atspi.Role.TREE))
######################################################################
# 4. Enter down arrow and Return to bring up a separate window showing
@@ -82,7 +85,7 @@ sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_TREE))
sequence.append(KeyComboAction("Down"))
sequence.append(KeyComboAction("Return"))
sequence.append(WaitForWindowActivate("bug_465109: NameAddrPhone", None))
sequence.append(WaitForFocus("Data source table view", acc_role=pyatspi.ROLE_PANEL))
sequence.append(WaitForFocus("Data source table view", acc_role=Atspi.Role.PANEL))
######################################################################
# 5. Press Tab to get focus into the LastName field and enter "smith".
@@ -93,7 +96,7 @@ sequence.append(WaitForFocus("Data source table view", acc_role=pyatspi.ROLE_PAN
# SPEECH OUTPUT: 'text '
#
sequence.append(KeyComboAction("Tab"))
sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_TEXT))
sequence.append(WaitForFocus("", acc_role=Atspi.Role.TEXT))
sequence.append(TypeAction("smith"))
@@ -101,7 +104,7 @@ sequence.append(TypeAction("smith"))
# 6. Press Tab to get focus into the City field and enter "san francisco".
#
sequence.append(KeyComboAction("Tab"))
sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_TEXT))
sequence.append(WaitForFocus("", acc_role=Atspi.Role.TEXT))
sequence.append(TypeAction("san francisco"))
@@ -110,7 +113,7 @@ sequence.append(TypeAction("san francisco"))
# "california".
#
sequence.append(KeyComboAction("Tab"))
sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_TEXT))
sequence.append(WaitForFocus("", acc_role=Atspi.Role.TEXT))
sequence.append(TypeAction("california"))
@@ -119,7 +122,7 @@ sequence.append(TypeAction("california"))
# "415-555-1212".
#
sequence.append(KeyComboAction("Tab"))
sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_TEXT))
sequence.append(WaitForFocus("", acc_role=Atspi.Role.TEXT))
sequence.append(TypeAction("415-555-1212"))
@@ -127,33 +130,33 @@ sequence.append(TypeAction("415-555-1212"))
# 9. Enter Alt-f, up arrow and Return to select Exit from the File menu.
#
sequence.append(KeyComboAction("<Alt>f"))
sequence.append(WaitForFocus("New", acc_role=pyatspi.ROLE_MENU))
sequence.append(WaitForFocus("New", acc_role=Atspi.Role.MENU))
sequence.append(KeyComboAction("Up"))
sequence.append(WaitForFocus("Exit", acc_role=pyatspi.ROLE_MENU_ITEM))
sequence.append(WaitForFocus("Exit", acc_role=Atspi.Role.MENU_ITEM))
sequence.append(KeyComboAction("Return"))
sequence.append(WaitForFocus("Yes", acc_role=pyatspi.ROLE_PUSH_BUTTON))
sequence.append(WaitForFocus("Yes", acc_role=Atspi.Role.PUSH_BUTTON))
######################################################################
# 10. Press Tab and Return to not save the current changes.
# This dismisses the NameAddrPhone table window.
#
sequence.append(KeyComboAction("Tab"))
sequence.append(WaitForFocus("No", acc_role=pyatspi.ROLE_PUSH_BUTTON))
sequence.append(WaitForFocus("No", acc_role=Atspi.Role.PUSH_BUTTON))
sequence.append(KeyComboAction("Return"))
sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_TREE))
sequence.append(WaitForFocus("", acc_role=Atspi.Role.TREE))
######################################################################
# 9. Enter Alt-f, up arrow and Return to select Exit from the File menu.
# of the main oobase window.
#
sequence.append(KeyComboAction("<Alt>f"))
sequence.append(WaitForFocus("New", acc_role=pyatspi.ROLE_MENU))
sequence.append(WaitForFocus("New", acc_role=Atspi.Role.MENU))
sequence.append(KeyComboAction("Up"))
sequence.append(WaitForFocus("Exit", acc_role=pyatspi.ROLE_MENU_ITEM))
sequence.append(WaitForFocus("Exit", acc_role=Atspi.Role.MENU_ITEM))
sequence.append(KeyComboAction("Return"))