cthulhu/test/keystrokes/firefox/label_inference_bugzilla_search.py
2024-12-18 10:05:44 -05:00

534 lines
21 KiB
Python
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
#
# Copyright (c) 2024 Stormux
# Copyright (c) 2010-2012 The Orca Team
# Copyright (c) 2012 Igalia, S.L.
# Copyright (c) 2005-2010 Sun Microsystems Inc.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., Franklin Street, Fifth Floor,
# Boston MA 02110-1301 USA.
#
# Fork of Orca Screen Reader (GNOME)
# Original source: https://gitlab.gnome.org/GNOME/orca
"""Test of label guess for bugzilla's advanced search page."""
from macaroon.playback import *
import utils
sequence = MacroSequence()
#sequence.append(WaitForDocLoad())
sequence.append(PauseAction(5000))
# Work around some new quirk in Gecko that causes this test to fail if
# run via the test harness rather than manually.
sequence.append(KeyComboAction("<Control>r"))
sequence.append(PauseAction(3000))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("<Shift>ISO_Left_Tab"))
sequence.append(utils.AssertPresentationAction(
"1. Shift Tab",
["BRAILLE LINE: 'S ummary: contains all of the words/strings Search table row'",
" VISIBLE: 'S ummary: contains all of the wo', cursor=1",
"BRAILLE LINE: 'Summary: contains all of the words/strings combo box'",
" VISIBLE: 'Summary: contains all of the wor', cursor=10",
"SPEECH OUTPUT: 'Summary: contains all of the words/strings combo box.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"2. Tab",
["BRAILLE LINE: ' $l'",
" VISIBLE: ' $l', cursor=1",
"SPEECH OUTPUT: 'entry.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"3. Tab",
["BRAILLE LINE: 'Search push button'",
" VISIBLE: 'Search push button', cursor=1",
"BRAILLE LINE: 'Browse mode'",
" VISIBLE: 'Browse mode', cursor=0",
"SPEECH OUTPUT: 'Search push button'",
"SPEECH OUTPUT: 'Browse mode' voice=system"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"4. Tab",
["BRAILLE LINE: 'Search push button'",
" VISIBLE: 'Search push button', cursor=1",
"BRAILLE LINE: 'Admin '",
" VISIBLE: 'Admin ', cursor=1",
"BRAILLE LINE: 'Focus mode'",
" VISIBLE: 'Focus mode', cursor=0",
"SPEECH OUTPUT: 'table with 2 rows 1 column'",
"SPEECH OUTPUT: 'Classification: multi-select List with 8 items'",
"SPEECH OUTPUT: 'Admin.'",
"SPEECH OUTPUT: 'Focus mode' voice=system"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"5. Tab",
["BRAILLE LINE: 'Admin '",
" VISIBLE: 'Admin ', cursor=1",
"BRAILLE LINE: 'accerciser'",
" VISIBLE: 'accerciser', cursor=1",
"SPEECH OUTPUT: 'table with 2 rows 1 column'",
"SPEECH OUTPUT: 'Product: multi-select List with 379 items'",
"SPEECH OUTPUT: 'accerciser.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"6. Tab",
["BRAILLE LINE: 'Component'",
" VISIBLE: 'Component', cursor=1",
"BRAILLE LINE: 'Browse mode'",
" VISIBLE: 'Browse mode', cursor=0",
"BRAILLE LINE: 'Component'",
" VISIBLE: 'Component', cursor=1",
"SPEECH OUTPUT: 'Component link.'",
"SPEECH OUTPUT: 'Browse mode' voice=system"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"7. Tab",
["BRAILLE LINE: 'abiscan'",
" VISIBLE: 'abiscan', cursor=1",
"BRAILLE LINE: 'Focus mode'",
" VISIBLE: 'Focus mode', cursor=0",
"SPEECH OUTPUT: 'Component: multi-select List with 1248 items'",
"SPEECH OUTPUT: 'abiscan.'",
"SPEECH OUTPUT: 'Focus mode' voice=system"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"8. Tab",
["BRAILLE LINE: 'abiscan'",
" VISIBLE: 'abiscan', cursor=1",
"BRAILLE LINE: '0.0.1'",
" VISIBLE: '0.0.1', cursor=1",
"SPEECH OUTPUT: 'table with 2 rows 1 column'",
"SPEECH OUTPUT: 'Version: multi-select List with 857 items'",
"SPEECH OUTPUT: '0.0.1.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"9. Tab",
["BRAILLE LINE: '---'",
" VISIBLE: '---', cursor=1",
"SPEECH OUTPUT: 'table with 2 rows 1 column'",
"SPEECH OUTPUT: 'Target Milestone: multi-select List with 555 items'",
"SPEECH OUTPUT: '---.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"10. Tab",
["BRAILLE LINE: 'A Comment: contains the string combo box'",
" VISIBLE: 'A Comment: contains the string c', cursor=12",
"SPEECH OUTPUT: 'A Comment: contains the string combo box.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"11. Tab",
["BRAILLE LINE: ' $l'",
" VISIBLE: ' $l', cursor=1",
"SPEECH OUTPUT: 'entry.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"12. Tab",
["BRAILLE LINE: 'Whiteboard: contains all of the words/strings combo box'",
" VISIBLE: 'Whiteboard: contains all of the ', cursor=13",
"SPEECH OUTPUT: 'Whiteboard: contains all of the words/strings combo box.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"13. Tab",
["BRAILLE LINE: ' $l'",
" VISIBLE: ' $l', cursor=1",
"SPEECH OUTPUT: 'entry.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"14. Tab",
["BRAILLE LINE: 'Keywords'",
" VISIBLE: 'Keywords', cursor=1",
"BRAILLE LINE: 'Browse mode'",
" VISIBLE: 'Browse mode', cursor=0",
"BRAILLE LINE: 'Keywords'",
" VISIBLE: 'Keywords', cursor=1",
"SPEECH OUTPUT: 'Keywords link.'",
"SPEECH OUTPUT: 'Browse mode' voice=system"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"15. Tab",
["BRAILLE LINE: 'Keywords: contains all of the keywords combo box'",
" VISIBLE: 'Keywords: contains all of the ke', cursor=11",
"BRAILLE LINE: 'Focus mode'",
" VISIBLE: 'Focus mode', cursor=0",
"SPEECH OUTPUT: 'Keywords: contains all of the keywords combo box.'",
"SPEECH OUTPUT: 'Focus mode' voice=system"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"16. Tab",
["BRAILLE LINE: 'Keywords: contains all of the keywords combo box'",
" VISIBLE: 'Keywords: contains all of the ke', cursor=11",
"BRAILLE LINE: ' $l'",
" VISIBLE: ' $l', cursor=1",
"SPEECH OUTPUT: 'entry.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"17. Tab",
["BRAILLE LINE: 'UNCONFIRMED'",
" VISIBLE: 'UNCONFIRMED', cursor=1",
"SPEECH OUTPUT: 'table with 2 rows 1 column'",
"SPEECH OUTPUT: 'Status: multi-select List with 8 items'",
"SPEECH OUTPUT: 'UNCONFIRMED.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"18. Tab",
["BRAILLE LINE: 'FIXED'",
" VISIBLE: 'FIXED', cursor=1",
"SPEECH OUTPUT: 'table with 2 rows 1 column'",
"SPEECH OUTPUT: 'Resolution: multi-select List with 12 items'",
"SPEECH OUTPUT: 'FIXED.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"19. Tab",
["BRAILLE LINE: 'blocker'",
" VISIBLE: 'blocker', cursor=1",
"SPEECH OUTPUT: 'table with 2 rows 1 column'",
"SPEECH OUTPUT: 'Severity: multi-select List with 7 items'",
"SPEECH OUTPUT: 'blocker.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"20. Tab",
["BRAILLE LINE: 'Immediate'",
" VISIBLE: 'Immediate', cursor=1",
"SPEECH OUTPUT: 'table with 2 rows 1 column'",
"SPEECH OUTPUT: 'Priority: multi-select List with 5 items'",
"SPEECH OUTPUT: 'Immediate.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"21. Tab",
["BRAILLE LINE: 'All'",
" VISIBLE: 'All', cursor=1",
"SPEECH OUTPUT: 'table with 2 rows 1 column'",
"SPEECH OUTPUT: 'OS: multi-select List with 21 items'",
"SPEECH OUTPUT: 'All.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"22. Tab",
["BRAILLE LINE: '<x> the bug assignee check box'",
" VISIBLE: '<x> the bug assignee check box', cursor=1",
"BRAILLE LINE: 'Browse mode'",
" VISIBLE: 'Browse mode', cursor=0",
"SPEECH OUTPUT: 'Email and Numbering panel'",
"SPEECH OUTPUT: 'the bug assignee check box checked.'",
"SPEECH OUTPUT: 'Browse mode' voice=system"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"23. Tab",
["BRAILLE LINE: '<x> the bug assignee check box'",
" VISIBLE: '<x> the bug assignee check box', cursor=1",
"BRAILLE LINE: '< > the reporter check box'",
" VISIBLE: '< > the reporter check box', cursor=1",
"SPEECH OUTPUT: 'the reporter check box not checked.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"24. Tab",
["BRAILLE LINE: '< > the QA contact check box'",
" VISIBLE: '< > the QA contact check box', cursor=1",
"SPEECH OUTPUT: 'the QA contact check box not checked.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"25. Tab",
["BRAILLE LINE: '< > a CC list member check box'",
" VISIBLE: '< > a CC list member check box', cursor=1",
"SPEECH OUTPUT: 'a CC list member check box not checked.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"26. Tab",
["BRAILLE LINE: '< > a commenter check box'",
" VISIBLE: '< > a commenter check box', cursor=1",
"SPEECH OUTPUT: 'a commenter check box not checked.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"27. Tab",
["BRAILLE LINE: 'contains combo box'",
" VISIBLE: 'contains combo box', cursor=1",
"BRAILLE LINE: 'Focus mode'",
" VISIBLE: 'Focus mode', cursor=0",
"SPEECH OUTPUT: 'contains combo box.'",
"SPEECH OUTPUT: 'Focus mode' voice=system"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"28. Tab",
["BRAILLE LINE: 'contains combo box'",
" VISIBLE: 'contains combo box', cursor=1",
"BRAILLE LINE: ' $l'",
" VISIBLE: ' $l', cursor=1",
"SPEECH OUTPUT: 'entry.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"29. Tab",
["BRAILLE LINE: '<x> the bug assignee check box'",
" VISIBLE: '<x> the bug assignee check box', cursor=1",
"BRAILLE LINE: 'Browse mode'",
" VISIBLE: 'Browse mode', cursor=0",
"SPEECH OUTPUT: 'the bug assignee check box checked.'",
"SPEECH OUTPUT: 'Browse mode' voice=system"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"30. Tab",
["BRAILLE LINE: '<x> the bug assignee check box'",
" VISIBLE: '<x> the bug assignee check box', cursor=1",
"BRAILLE LINE: '<x> the reporter check box'",
" VISIBLE: '<x> the reporter check box', cursor=1",
"SPEECH OUTPUT: 'the reporter check box checked.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"31. Tab",
["BRAILLE LINE: '<x> the QA contact check box'",
" VISIBLE: '<x> the QA contact check box', cursor=1",
"SPEECH OUTPUT: 'the QA contact check box checked.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"32. Tab",
["BRAILLE LINE: '<x> a CC list member check box'",
" VISIBLE: '<x> a CC list member check box', cursor=1",
"SPEECH OUTPUT: 'a CC list member check box checked.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"33. Tab",
["BRAILLE LINE: '< > a commenter check box'",
" VISIBLE: '< > a commenter check box', cursor=1",
"SPEECH OUTPUT: 'a commenter check box not checked.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"34. Tab",
["BRAILLE LINE: 'contains combo box'",
" VISIBLE: 'contains combo box', cursor=1",
"BRAILLE LINE: 'Focus mode'",
" VISIBLE: 'Focus mode', cursor=0",
"SPEECH OUTPUT: 'contains combo box.'",
"SPEECH OUTPUT: 'Focus mode' voice=system"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"35. Tab",
["BRAILLE LINE: 'contains combo box'",
" VISIBLE: 'contains combo box', cursor=1",
"BRAILLE LINE: ' $l'",
" VISIBLE: ' $l', cursor=1",
"SPEECH OUTPUT: 'entry.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"36. Tab",
["BRAILLE LINE: 'Only include combo box'",
" VISIBLE: 'Only include combo box', cursor=1",
"SPEECH OUTPUT: 'Only include combo box.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"37. Tab",
["BRAILLE LINE: 'bugs numbered: $l'",
" VISIBLE: 'bugs numbered: $l', cursor=16",
"SPEECH OUTPUT: 'bugs numbered: entry.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"38. Tab",
["BRAILLE LINE: 'Only bugs changed between: $l'",
" VISIBLE: 'Only bugs changed between: $l', cursor=28",
"SPEECH OUTPUT: 'Bug Changes panel'",
"SPEECH OUTPUT: 'List with 3 items'",
"SPEECH OUTPUT: 'Only bugs changed between: entry.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"39. Tab",
["BRAILLE LINE: 'and Now $l'",
" VISIBLE: 'and Now $l', cursor=8",
"BRAILLE LINE: 'and Now $l'",
" VISIBLE: 'and Now $l', cursor=8",
"SPEECH OUTPUT: 'and entry Now selected.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"40. Tab",
["BRAILLE LINE: '[Bug creation]'",
" VISIBLE: '[Bug creation]', cursor=1",
"SPEECH OUTPUT: 'where one or more of the following changed: multi-select List with 26 items'",
"SPEECH OUTPUT: '[Bug creation].'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"41. Tab",
["BRAILLE LINE: 'and the new value was: $l'",
" VISIBLE: 'and the new value was: $l', cursor=24",
"SPEECH OUTPUT: 'and the new value was: entry.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"42. Tab",
["BRAILLE LINE: 'Unspecified'",
" VISIBLE: 'Unspecified', cursor=1",
"SPEECH OUTPUT: 'table with 2 rows 1 column'",
"SPEECH OUTPUT: 'GNOME version: multi-select List with 14 items'",
"SPEECH OUTPUT: 'Unspecified.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"43. Tab",
["BRAILLE LINE: 'Unspecified'",
" VISIBLE: 'Unspecified', cursor=1",
"SPEECH OUTPUT: 'table with 2 rows 1 column'",
"SPEECH OUTPUT: 'GNOME target: multi-select List with 12 items'",
"SPEECH OUTPUT: 'Unspecified.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"44. Tab",
["BRAILLE LINE: 'Sort results by: Reuse same sort as last time combo box'",
" VISIBLE: 'Sort results by: Reuse same sort', cursor=18",
"SPEECH OUTPUT: 'Sort results by: Reuse same sort as last time combo box.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"45. Tab",
["BRAILLE LINE: 'Search push button'",
" VISIBLE: 'Search push button', cursor=1",
"BRAILLE LINE: 'Browse mode'",
" VISIBLE: 'Browse mode', cursor=0",
"SPEECH OUTPUT: 'Search push button'",
"SPEECH OUTPUT: 'Browse mode' voice=system"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"46. Tab",
["BRAILLE LINE: 'Search push button'",
" VISIBLE: 'Search push button', cursor=1",
"BRAILLE LINE: '< > and remember these as my default search options check box'",
" VISIBLE: '< > and remember these as my def', cursor=1",
"SPEECH OUTPUT: 'and remember these as my default search options check box not checked.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"47. Tab",
["BRAILLE LINE: '< > Not (negate this whole chart) check box'",
" VISIBLE: '< > Not \\(negate this whole chart', cursor=1",
"SPEECH OUTPUT: 'Not (negate this whole chart) check box not checked.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"48. Tab",
["BRAILLE LINE: '--- combo box'",
" VISIBLE: '--- combo box', cursor=1",
"BRAILLE LINE: 'Focus mode'",
" VISIBLE: 'Focus mode', cursor=0",
"SPEECH OUTPUT: '--- combo box.'",
"SPEECH OUTPUT: 'Focus mode' voice=system"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"49. Tab",
["BRAILLE LINE: '--- combo box'",
" VISIBLE: '--- combo box', cursor=1",
"BRAILLE LINE: '--- combo box'",
" VISIBLE: '--- combo box', cursor=1",
"SPEECH OUTPUT: '--- combo box.'"]))
sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("Tab"))
sequence.append(utils.AssertPresentationAction(
"50. Tab",
["BRAILLE LINE: ' $l'",
" VISIBLE: ' $l', cursor=1",
"SPEECH OUTPUT: 'entry.'"]))
sequence.append(utils.AssertionSummaryAction())
sequence.start()