summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/meson.build25
-rwxr-xr-xtest/testBookmarksMenu.py24
-rw-r--r--test/testCommon.py26
-rwxr-xr-xtest/testEditMenu.py51
-rwxr-xr-xtest/testEncryptedFile.py33
-rwxr-xr-xtest/testFileMenu.py45
-rwxr-xr-xtest/testFileReloading.py27
-rwxr-xr-xtest/testGoMenu.py30
-rwxr-xr-xtest/testHelpMenu.py28
-rwxr-xr-xtest/testWrongFileExtension.py18
-rwxr-xr-xtest/testZoom.py26
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()