diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/meson.build | 25 | ||||
| -rwxr-xr-x | test/test1.py | 12 | ||||
| -rwxr-xr-x | test/test2.py | 14 | ||||
| -rwxr-xr-x | test/test6.py | 10 | ||||
| -rwxr-xr-x | test/test7.py | 12 | ||||
| -rwxr-xr-x | test/testBookmarksMenu.py | 24 | ||||
| -rw-r--r-- | test/testCommon.py | 36 | ||||
| -rwxr-xr-x | test/testEditMenu.py | 45 | ||||
| -rwxr-xr-x | test/testEncryptedFile.py | 33 | ||||
| -rwxr-xr-x | test/testFileMenu.py | 45 | ||||
| -rwxr-xr-x | test/testFileReloading.py | 27 | ||||
| -rwxr-xr-x | test/testGoMenu.py | 30 | ||||
| -rwxr-xr-x | test/testHelpMenu.py | 28 | ||||
| -rwxr-xr-x | test/testWrongFileExtension.py | 18 | ||||
| -rwxr-xr-x | test/testZoom.py | 26 |
15 files changed, 355 insertions, 30 deletions
diff --git a/test/meson.build b/test/meson.build new file mode 100644 index 00000000..edf23189 --- /dev/null +++ b/test/meson.build @@ -0,0 +1,25 @@ +test_cases = [ + 'testFileMenu.py', + 'testEditMenu.py', + 'testHelpMenu.py', + 'testZoom.py', + 'testGoMenu.py', + 'testBookmarksMenu.py', + 'testEncryptedFile.py', + 'testFileReloading.py', + 'testWrongFileExtension.py' +] + +foreach case : test_cases + test_script = find_program(case) + + test( + case, + test_script, + args: [atril.full_path()], + is_parallel: false, + depends: atril, + workdir: join_paths(prefix, bindir), + timeout: 120, + ) +endforeach diff --git a/test/test1.py b/test/test1.py index 97db085c..f485b3dd 100755 --- a/test/test1.py +++ b/test/test1.py @@ -2,27 +2,23 @@ # This test opens the interface and just clicks around a bit. -import os -import dogtail.config -dogtail.config.config.logDebugToStdOut = True -dogtail.config.config.logDebugToFile = False +from testCommon import pushButton from dogtail.procedural import * -os.environ['LANG']='C' run('atril') # Test file->open focus.application('atril') click('File', roleName='menu') click('Open…', roleName='menu item') -click('Cancel', roleName='push button') +click('Cancel', roleName=pushButton) # Toolbar editor focus.application('atril') click('Edit', roleName='menu') click('Toolbar', roleName='menu item') -click('Close', roleName='push button') +click('Close', roleName=pushButton) # About dialog focus.application('atril') @@ -30,7 +26,7 @@ click('Help', roleName='menu') click('About', roleName='menu item') click('Credits', roleName='toggle button') click('Credits', roleName='toggle button') -click('Close', roleName='push button') +click('Close', roleName=pushButton) # Close atril focus.application('atril') diff --git a/test/test2.py b/test/test2.py index d690edbb..b4f3a5c8 100755 --- a/test/test2.py +++ b/test/test2.py @@ -3,26 +3,26 @@ # This test opens a password encrypted file and tries to unlock it. import os -os.environ['LANG']='C' -srcdir = os.environ['srcdir'] - +from testCommon import pushButton from dogtail.procedural import * +srcdir = os.environ['srcdir'] + run('atril', arguments=' '+srcdir+'/test-encrypt.pdf') # Try an incorrect password first focus.application('atril') type('wrong password') -click('Unlock Document', roleName='push button') +click('Unlock Document', roleName=pushButton) focus.dialog('Enter password') -click('Cancel', roleName='push button') +click('Cancel', roleName=pushButton) # Try again with the correct password focus.frame('test-encrypt.pdf — Password Required') -click('Unlock Document', roleName='push button') +click('Unlock Document', roleName=pushButton) focus.dialog('Enter password') type('Foo') -click('Unlock Document', roleName='push button') +click('Unlock Document', roleName=pushButton) # Close atril focus.application('atril') diff --git a/test/test6.py b/test/test6.py index a2687d08..30367fe2 100755 --- a/test/test6.py +++ b/test/test6.py @@ -3,15 +3,11 @@ # Test printing import os -import dogtail.config -dogtail.config.config.logDebugToStdOut = True -dogtail.config.config.logDebugToFile = False +from testCommon import pushButton +from dogtail.procedural import * -os.environ['LANG']='C' srcdir = os.environ['srcdir'] -from dogtail.procedural import * - recent_used = os.path.expanduser('~/.local/share/recently-used.xbel') recent_used_orig = recent_used + '.orig' @@ -31,7 +27,7 @@ click('Print…', roleName='menu item') click('Print to File', roleName='table cell', raw=True) click('Postscript', roleName='radio button', raw=True) -click('Print', roleName='push button') +click('Print', roleName=pushButton) statinfo = os.stat (ps_file) if statinfo.st_size > 100000: diff --git a/test/test7.py b/test/test7.py index 03792c6c..f0b71582 100755 --- a/test/test7.py +++ b/test/test7.py @@ -3,16 +3,12 @@ # Test printing import os -import dogtail.config -import time -dogtail.config.config.logDebugToStdOut = True -dogtail.config.config.logDebugToFile = False - -os.environ['LANG']='C' -srcdir = os.environ['srcdir'] +from testCommon import pushButton from dogtail.procedural import * +srcdir = os.environ['srcdir'] + run('atril', arguments=' '+srcdir+'/test-page-labels.pdf') focus.application('atril') @@ -27,7 +23,7 @@ focus.dialog('Print') click('Page Setup', roleName='page tab', raw=True) click('All sheets') click('Odd sheets', roleName='menu item') -click('Preview', roleName='push button') +click('Preview', roleName=pushButton) keyCombo('<Alt><F4>') # Close atril diff --git a/test/testBookmarksMenu.py b/test/testBookmarksMenu.py new file mode 100755 index 00000000..2f2a5324 --- /dev/null +++ b/test/testBookmarksMenu.py @@ -0,0 +1,24 @@ +#!/usr/bin/python3 + +# This test opens the Bookmarks menu. + +from testCommon import run_app, bail + +from dogtail.procedural import * + +try: + run_app(file='test-links.pdf') + + focus.frame('test-links.pdf') + click('Bookmarks', roleName='menu') + click('Add Bookmark', roleName='menu item') + + click('Bookmarks', roleName='menu') + click('Page 1', roleName='menu item') + + # Close + click('File', roleName='menu') + click('Close', roleName='menu item') + +except: + bail() diff --git a/test/testCommon.py b/test/testCommon.py new file mode 100644 index 00000000..c4aa3a0e --- /dev/null +++ b/test/testCommon.py @@ -0,0 +1,36 @@ +#!/usr/bin/python3 + +import os +import sys +import signal + +os.environ['LANG'] = 'C' + +# try and figure out the role name for push buttons, which changed in ATSPI 2.53 +try: + import gi + gi.require_version('Atspi', '2.0') + from gi.repository import Atspi + + pushButton = Atspi.role_get_name(Atspi.Role.PUSH_BUTTON) +except ImportError: + pushButton = 'push button' + +from dogtail.config import config +config.logDebugToStdOut = True +config.logDebugToFile = False + +import dogtail.procedural as dt + +def run_app(file=None): + global pid + + if file is not None: + arguments = os.path.join(os.path.dirname(__file__), file) + else: + arguments = '' + pid = dt.run(sys.argv[1], arguments=arguments, appName='atril') + +def bail(): + os.kill(pid, signal.SIGTERM) + sys.exit(1) diff --git a/test/testEditMenu.py b/test/testEditMenu.py new file mode 100755 index 00000000..2a8e89b5 --- /dev/null +++ b/test/testEditMenu.py @@ -0,0 +1,45 @@ +#!/usr/bin/python3 + +# This test opens the Edit menu and runs through the menu items. + +from testCommon import run_app, bail, pushButton + +from dogtail.procedural import * + +try: + run_app(file='test-links.pdf') + + # Begin to run through Edit options + focus.frame('test-links.pdf') + click('Edit', roleName='menu') + + click('Select All', roleName='menu item') + + click('Edit', roleName='menu') + click('Find…', roleName='menu item') + + focus.frame('test-links.pdf') + type('link') + click('Find Previous', roleName=pushButton) + + click('Edit', roleName='menu') + click('Find Next', roleName='menu item') + + click('Edit', roleName='menu') + click('Find Previous', roleName='menu item') + + click('Edit', roleName='menu') + click('Rotate Left', roleName='menu item') + + click('Edit', roleName='menu') + click('Rotate Right', roleName='menu item') + + click('Edit', roleName='menu') + click('Save Current Settings as Default', roleName='menu item') + + focus.frame('test-links.pdf') + click('File', roleName='menu') + click('Close', roleName='menu item') + +except: + bail() diff --git a/test/testEncryptedFile.py b/test/testEncryptedFile.py new file mode 100755 index 00000000..808efac4 --- /dev/null +++ b/test/testEncryptedFile.py @@ -0,0 +1,33 @@ +#!/usr/bin/python3 + +# Test opening a password encrypted file and unlocking it. + +from testCommon import run_app, bail, pushButton + +from dogtail.procedural import * + +try: + + run_app(file='test-encrypt.pdf') + + # Try an incorrect password first + focus.dialog('Enter password') + type('wrong password') + click('Unlock Document', roleName=pushButton) + focus.dialog('Enter password') + click('Cancel', roleName=pushButton) + + # Try again with the correct password + focus.frame('test-encrypt.pdf — Password Required') + click('Unlock Document', roleName=pushButton) + type('Foo') + focus.dialog('Enter password') + click('Unlock Document', roleName=pushButton) + + # Close Atril + focus.frame('test-encrypt.pdf — Dokument1') + click('File', roleName='menu') + click('Close', roleName='menu item') + +except: + bail() diff --git a/test/testFileMenu.py b/test/testFileMenu.py new file mode 100755 index 00000000..81723c8d --- /dev/null +++ b/test/testFileMenu.py @@ -0,0 +1,45 @@ +#!/usr/bin/python3 + +# Test that the File menu and menu items work correctly. + +from testCommon import run_app, bail, pushButton + +from dogtail.procedural import * + +try: + run_app(file='test-links.pdf') + + # Open a file + click('File', roleName='menu') + click('Open…', roleName='menu item') + click('Cancel', roleName=pushButton) + + # Save As + focus.frame('test-links.pdf') + click('File', roleName='menu') + click('Save As…', roleName='menu item') + click('Cancel', roleName=pushButton) + + # Print + focus.frame('test-links.pdf') + click('File', roleName='menu') + click('Print…', roleName='menu item') + focus.dialog('Print') + click('Cancel', roleName=pushButton) + + # Properties + focus.frame('test-links.pdf') + click('File', roleName='menu') + click('Properties', roleName='menu item') + click('Fonts', roleName='page tab') + click('General', roleName='page tab') + focus.dialog('Properties') + click('Close', roleName=pushButton) + + # Close + focus.frame('test-links.pdf') + click('File', roleName='menu') + click('Close', roleName='menu item') + +except: + bail() diff --git a/test/testFileReloading.py b/test/testFileReloading.py new file mode 100755 index 00000000..b696c7e6 --- /dev/null +++ b/test/testFileReloading.py @@ -0,0 +1,27 @@ +#!/usr/bin/python3 + +# Test reloading a document. + +from testCommon import run_app, bail + +from dogtail.procedural import * + +try: + + run_app(file='test-page-labels.pdf') + + focus.widget('page-label-entry') + focus.widget.text = "iii" + activate() + + if focus.widget.text != "III": + click('File', roleName='menu') + click('Close', roleName='menu item') + exit (1) + + # Close Atril + click('File', roleName='menu') + click('Close', roleName='menu item') + +except: + bail() diff --git a/test/testGoMenu.py b/test/testGoMenu.py new file mode 100755 index 00000000..3ba753b1 --- /dev/null +++ b/test/testGoMenu.py @@ -0,0 +1,30 @@ +#!/usr/bin/python3 + +# This test opens the Go menu and test menu items. + +from testCommon import run_app, bail + +from dogtail.procedural import * + +try: + run_app(file='test-links.pdf') + + focus.frame('test-links.pdf') + click('Go', roleName='menu') + click('Next Page', roleName='menu item') + + click('Go', roleName='menu') + click('Previous Page', roleName='menu item') + + click('Go', roleName='menu') + click('Last Page', roleName='menu item') + + click('Go', roleName='menu') + click('First Page', roleName='menu item') + + # Close + click('File', roleName='menu') + click('Close', roleName='menu item') + +except: + bail() diff --git a/test/testHelpMenu.py b/test/testHelpMenu.py new file mode 100755 index 00000000..fcbdaeb5 --- /dev/null +++ b/test/testHelpMenu.py @@ -0,0 +1,28 @@ +#!/usr/bin/python3 + +# This test opens the Help menu and runs through the menu items. + +from testCommon import run_app, bail, pushButton + +from dogtail.procedural import * + +try: + run_app() + + click('Help', roleName='menu') + click('About', roleName='menu item') + focus.dialog('About Atril Document Viewer') + click('License', roleName='toggle button') + click('Close', roleName=pushButton) + + focus.frame('') + click('Help', roleName='menu') + click('Contents', roleName='menu item') + + keyCombo('<Control>w') + + focus.frame('') + click('File', roleName='menu') + click('Close', roleName='menu item') +except: + bail() diff --git a/test/testWrongFileExtension.py b/test/testWrongFileExtension.py new file mode 100755 index 00000000..17dcc0ed --- /dev/null +++ b/test/testWrongFileExtension.py @@ -0,0 +1,18 @@ +#!/usr/bin/python3 + +# Test opening a file with wrong extenstion. + +from testCommon import run_app, bail + +from dogtail.procedural import * + +try: + + run_app(file='test-mime.bin') + + # Close Atril + click('File', roleName='menu') + click('Close', roleName='menu item') + +except: + bail() diff --git a/test/testZoom.py b/test/testZoom.py new file mode 100755 index 00000000..994a2ee9 --- /dev/null +++ b/test/testZoom.py @@ -0,0 +1,26 @@ +#!/usr/bin/python3 + +# This test opens the View menu and test zoom features. + +from testCommon import run_app, bail + +from dogtail.procedural import * + +try: + run_app(file='test-links.pdf') + + # Zoom In + focus.frame('test-links.pdf') + click('View', roleName='menu') + click('Zoom In', roleName='menu item') + + # Zoom Out + click('View', roleName='menu') + click('Zoom Out', roleName='menu item') + + # Close + click('File', roleName='menu') + click('Close', roleName='menu item') + +except: + bail() |
