diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/meson.build | 25 | ||||
-rwxr-xr-x | test/testBookmarksMenu.py | 24 | ||||
-rw-r--r-- | test/testCommon.py | 26 | ||||
-rwxr-xr-x | test/testEditMenu.py | 51 | ||||
-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 |
11 files changed, 333 insertions, 0 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/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..8e95bf58 --- /dev/null +++ b/test/testCommon.py @@ -0,0 +1,26 @@ +#!/usr/bin/python3 + +import os +import sys +import signal + +os.environ['LANG'] = 'C' + +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='xreader') + +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..5d9c672e --- /dev/null +++ b/test/testEditMenu.py @@ -0,0 +1,51 @@ +#!/usr/bin/python3 + +# This test opens the Edit menu and runs through the menu items. + +from testCommon import run_app, bail + +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='push button') + + 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') + + click('Edit', roleName='menu') + click('Preferences', roleName='menu item') + + focus.frame('Preferences') + click('Close', roleName='push button') + + 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..9b2741e5 --- /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 + +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='push button') + focus.dialog('Enter password') + click('Cancel', roleName='push button') + + # Try again with the correct password + focus.frame('test-encrypt.pdf — Password Required') + click('Unlock Document', roleName='push button') + type('Foo') + focus.dialog('Enter password') + click('Unlock Document', roleName='push button') + + # Close xreader + 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..b944b83f --- /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 + +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='push button') + + # Save a Copy + focus.frame('test-links.pdf') + click('File', roleName='menu') + click('Save a Copy…', roleName='menu item') + click('Cancel', roleName='push button') + + # Print + focus.frame('test-links.pdf') + click('File', roleName='menu') + click('Print…', roleName='menu item') + focus.dialog('Print') + click('Cancel', roleName='push button') + + # 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='push button') + + # Close All Windows + focus.frame('test-links.pdf') + click('File', roleName='menu') + click('Close All Windows', roleName='menu item') + +except: + bail() diff --git a/test/testFileReloading.py b/test/testFileReloading.py new file mode 100755 index 00000000..66ca2ec7 --- /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 xreader + 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..72c1c4b1 --- /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 + +from dogtail.procedural import * + +try: + run_app() + + click('Help', roleName='menu') + click('About', roleName='menu item') + focus.dialog('About Xreader') + click('License', roleName='toggle button') + click('Close', roleName='push button') + + focus.frame('Recent Documents') + click('Help', roleName='menu') + click('Contents', roleName='menu item') + + keyCombo('<Control>w') + + focus.frame('Recent Documents') + 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..3b866f6e --- /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 xreader + 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() |