#!/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 sayAll."""

from macaroon.playback import *
import utils

sequence = MacroSequence()

#sequence.append(WaitForDocLoad())
sequence.append(PauseAction(5000))

sequence.append(utils.StartRecordingAction())
sequence.append(KeyComboAction("KP_Add"))
sequence.append(utils.AssertPresentationAction(
    "1. KP_Add to do a SayAll",
    ["SPEECH OUTPUT: 'Home'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'News'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'Projects'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'Art'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'Support'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'Development'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'Community'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'leaving list.'",
     "SPEECH OUTPUT: 'live.gnome.org'",
     "SPEECH OUTPUT: 'heading level 1'",
     "SPEECH OUTPUT: 'form'",
     "SPEECH OUTPUT: 'entry'",
     "SPEECH OUTPUT: 'Search'",
     "SPEECH OUTPUT: 'Titles'",
     "SPEECH OUTPUT: 'push button'",
     "SPEECH OUTPUT: 'grayed'",
     "SPEECH OUTPUT: 'Text'",
     "SPEECH OUTPUT: 'push button'",
     "SPEECH OUTPUT: 'grayed'",
     "SPEECH OUTPUT: 'Home'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'RecentChanges'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'FindPage'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'HelpContents'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'Cthulhu'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'en Español'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'Home'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '|'",
     "SPEECH OUTPUT: 'Download/Installation'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '|'",
     "SPEECH OUTPUT: 'Configuration/Use'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '|'",
     "SPEECH OUTPUT: 'Accessible Applications'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '|'",
     "SPEECH OUTPUT: 'Mailing List'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '('",
     "SPEECH OUTPUT: 'Archives'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: ') |'",
     "SPEECH OUTPUT: 'FAQ'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '|'",
     "SPEECH OUTPUT: 'DocIndex'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'Welcome to Cthulhu!'",
     "SPEECH OUTPUT: 'heading level 1'",
     "SPEECH OUTPUT: 'Cthulhu Logo'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'HOT HOT HOT: Notes on'",
     "SPEECH OUTPUT: 'access to Firefox 3.0'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'Contents'",
     "SPEECH OUTPUT: 'List with 8 items'",
     "SPEECH OUTPUT: '1.'",
     "SPEECH OUTPUT: 'Welcome to Cthulhu!'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '2.'",
     "SPEECH OUTPUT: 'About'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '3.'",
     "SPEECH OUTPUT: 'Audio Guides'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '4.'",
     "SPEECH OUTPUT: 'Download/Installation'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '5.'",
     "SPEECH OUTPUT: 'Configuration/Use'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '6.'",
     "SPEECH OUTPUT: 'Accessible Applications'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '7.'",
     "SPEECH OUTPUT: 'How Can I Help?'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '8.'",
     "SPEECH OUTPUT: 'More Information'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'leaving list.'",
     "SPEECH OUTPUT: 'About'",
     "SPEECH OUTPUT: 'heading level 1'",
     "SPEECH OUTPUT: 'Cthulhu is a free, open source, flexible, extensible, and powerful assistive technology for people with visual impairments.'",
     "SPEECH OUTPUT: 'Using various combinations of speech synthesis, braille, and magnification, Cthulhu helps provide access to applications and toolkits that support the AT-SPI \\(e.g.,'",
     "SPEECH OUTPUT: 'the GNOME desktop\\).'",
     "SPEECH OUTPUT: 'The development of Cthulhu has been led by the'",
     "SPEECH OUTPUT: 'Accessibility Program Office of Sun Microsystems, Inc.'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'with'",
     "SPEECH OUTPUT: 'contributions from many community members'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '.'",
     "SPEECH OUTPUT: 'The complete list of work to do, including bugs and feature requests, along with known problems in other components, is maintained in'",
     "SPEECH OUTPUT: 'Bugzilla'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '(please see our'",
     "SPEECH OUTPUT: 'notes on how we use Bugzilla'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: ').'",
     "SPEECH OUTPUT: 'Please join and participate on the'",
     "SPEECH OUTPUT: 'Cthulhu mailing list'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '('",
     "SPEECH OUTPUT: 'archives'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '): it's a helpful, kind, and productive environment composed of users and developers.'",
     "SPEECH OUTPUT: 'Audio Guides'",
     "SPEECH OUTPUT: 'heading level 1'",
     "SPEECH OUTPUT: 'Darragh \xd3 H\xe9iligh'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'has created several audio guides for Cthulhu.'",
     "SPEECH OUTPUT: 'This is a fantastic contribution (THANKS!)!!!'",
     "SPEECH OUTPUT: 'The audio guides can be found at'",
     "SPEECH OUTPUT: 'http://www.digitaldarragh.com/linuxat.asp'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'and include the following:'",
     "SPEECH OUTPUT: 'List with 3 items'",
     "SPEECH OUTPUT: '•'",
     "SPEECH OUTPUT: 'Walk through of the installation of Ubuntu 7.4. Very helpful tutorial'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '•'",
     "SPEECH OUTPUT: 'Review of Fedora 7 and the Cthulhu screen reader for the Gnome graphical desktop'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '•'",
     "SPEECH OUTPUT: 'Guide to installing the latest versions of Firefox and Cthulhu'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'leaving list.'",
     "SPEECH OUTPUT: 'Download/Installation'",
     "SPEECH OUTPUT: 'heading level 1'",
     "SPEECH OUTPUT: 'As of GNOME 2.16,'",
     "SPEECH OUTPUT: 'Cthulhu is a part of the GNOME platform.'",
     "SPEECH OUTPUT: 'As a result, Cthulhu is already provided by default on a number of operating system distributions, including'",
     "SPEECH OUTPUT: 'Open Solaris'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'and'",
     "SPEECH OUTPUT: 'Ubuntu'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '.'",
     "SPEECH OUTPUT: 'Please also refer to the'",
     "SPEECH OUTPUT: 'Download/Installation page'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'for detailed information on various distributions as well as installing Cthulhu directly from source.'",
     "SPEECH OUTPUT: 'Configuration/Use'",
     "SPEECH OUTPUT: 'heading level 1'",
     "SPEECH OUTPUT: 'The command to run cthulhu is cthulhu.'",
     "SPEECH OUTPUT: 'You can enter this command by pressing Alt+F2 when logged in, waiting for a second or so, then typing cthulhu and pressing return.'",
     "SPEECH OUTPUT: 'Cthulhu is designed to present information as you navigate the desktop using the'",
     "SPEECH OUTPUT: 'built-in navigation mechanisms of GNOME'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '.'",
     "SPEECH OUTPUT: 'These navigation mechanisms are consistent across most desktop applications.'",
     "SPEECH OUTPUT: 'You may sometimes wish to control Cthulhu itself, such as bringing up the'",
     "SPEECH OUTPUT: 'Cthulhu Configuration GUI'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '(accessed by pressing Insert+Space when Cthulhu is running) and for using flat review mode to examine a window.'",
     "SPEECH OUTPUT: 'Refer to'",
     "SPEECH OUTPUT: 'Cthulhu Keyboard Commands'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '(Laptop Layout)'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'for more information on Cthulhu-specific keyboard commands.'",
     "SPEECH OUTPUT: 'The'",
     "SPEECH OUTPUT: 'Cthulhu Configuration GUI'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'also includes a \"Key Bindings\" tab that allows you to get a complete list of Cthulhu key bindings.'",
     "SPEECH OUTPUT: 'Please also refer to the'",
     "SPEECH OUTPUT: 'Configuration/Use page'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'for detailed information.'",
     "SPEECH OUTPUT: 'Accessible Applications'",
     "SPEECH OUTPUT: 'heading level 1'",
     "SPEECH OUTPUT: 'Cthulhu is designed to work with applications and toolkits that support the assistive technology service provider interface (AT-SPI).'",
     "SPEECH OUTPUT: 'This includes the GNOME desktop and its applications,'",
     "SPEECH OUTPUT: 'OpenOffice'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: ', Firefox, and the Java platform.'",
     "SPEECH OUTPUT: 'Some applications work better than others, however, and the Cthulhu community continually works to provide compelling access to more and more applications.'",
     "SPEECH OUTPUT: 'On the'",
     "SPEECH OUTPUT: 'Accessible Applications page'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: ', you will find a growing list of information regarding various applications that can be accessed with Cthulhu as well as tips and tricks for using them.'",
     "SPEECH OUTPUT: 'The list is not to be a conclusive list of all applications.'",
     "SPEECH OUTPUT: 'Rather, the goal is to provide a repository within which users can share experiences regarding applications they have tested.'",
     "SPEECH OUTPUT: 'See also the'",
     "SPEECH OUTPUT: 'Application Specific Settings'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'page for how to configure settings specific to an application.'",
     "SPEECH OUTPUT: 'Please also refer to the'",
     "SPEECH OUTPUT: 'Accessible Applications page'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'for detailed information.'",
     "SPEECH OUTPUT: 'How Can I Help?'",
     "SPEECH OUTPUT: 'heading level 1'",
     "SPEECH OUTPUT: 'There's a bunch you can do!'",
     "SPEECH OUTPUT: 'Please refer to the'",
     "SPEECH OUTPUT: 'How Can I Help page'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'for detailed information.'",
     "SPEECH OUTPUT: 'More Information'",
     "SPEECH OUTPUT: 'heading level 1'",
     "SPEECH OUTPUT: 'List with 7 items'",
     "SPEECH OUTPUT: '•'",
     "SPEECH OUTPUT: 'Frequently Asked Questions:'",
     "SPEECH OUTPUT: 'FAQ'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '•'",
     "SPEECH OUTPUT: 'Mailing list:'",
     "SPEECH OUTPUT: 'cthulhu-list@gnome.org'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '('",
     "SPEECH OUTPUT: 'Archives'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: ')'",
     "SPEECH OUTPUT: '•'",
     "SPEECH OUTPUT: 'Bug database:'",
     "SPEECH OUTPUT: 'GNOME Bug Tracking System (Bugzilla)'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '('",
     "SPEECH OUTPUT: 'current bug list'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: ')'",
     "SPEECH OUTPUT: '•'",
     "SPEECH OUTPUT: 'Design documents:'",
     "SPEECH OUTPUT: 'Cthulhu Documentation Series'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '•'",
     "SPEECH OUTPUT: 'Dive Into Python, Mark Pilgrim'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '•'",
     "SPEECH OUTPUT: 'Python in a Nutshell, Alex Martelli'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '•'",
     "SPEECH OUTPUT: 'Python Pocket Reference, Mark Lutz'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'leaving list.'",
     "SPEECH OUTPUT: 'separator'",
     "SPEECH OUTPUT: 'The information on this page and the other Cthulhu-related pages on this site are 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.'",
     "SPEECH OUTPUT: 'separator'",
     "SPEECH OUTPUT: 'CategoryAccessibility'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'Cthulhu (last edited 2007-12-07 22:09:22 by'",
     "SPEECH OUTPUT: 'WillieWalker'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: ')'",
     "SPEECH OUTPUT: 'User'",
     "SPEECH OUTPUT: 'heading level 3'",
     "SPEECH OUTPUT: 'Login'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'leaving list.'",
     "SPEECH OUTPUT: 'Page'",
     "SPEECH OUTPUT: 'heading level 3'",
     "SPEECH OUTPUT: 'List with 4 items'",
     "SPEECH OUTPUT: 'Immutable Page'",
     "SPEECH OUTPUT: 'Info'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'Attachments'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'form'",
     "SPEECH OUTPUT: 'More Actions:'",
     "SPEECH OUTPUT: 'combo box'",
     "SPEECH OUTPUT: 'leaving list.'",
     "SPEECH OUTPUT: 'GNOME World Wide'",
     "SPEECH OUTPUT: 'heading level 3'",
     "SPEECH OUTPUT: 'GnomeWorldWide'",
     "SPEECH OUTPUT: 'image'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: 'Copyright \xa9 2005, 2006, 2007'",
     "SPEECH OUTPUT: 'The GNOME Project'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '.'",
     "SPEECH OUTPUT: 'Hosted by'",
     "SPEECH OUTPUT: 'Red Hat'",
     "SPEECH OUTPUT: 'link'",
     "SPEECH OUTPUT: '.'"]))

sequence.append(utils.AssertionSummaryAction())
sequence.start()