Create an automated test to test printing on Desktop

Add functions to test on KDE, too.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
This commit is contained in:
Lukáš Růžička 2019-11-19 16:09:25 +01:00 committed by Adam Williamson
parent f4ca51e508
commit 77ae127cce
20 changed files with 265 additions and 0 deletions

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 363,
"ypos": 143,
"width": 187,
"height": 17,
"type": "match"
}
],
"properties": [],
"tags": [
"printing_check_sentence"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -0,0 +1,15 @@
{
"properties": [],
"tags": [
"printing_print"
],
"area": [
{
"xpos": 790,
"ypos": 134,
"width": 40,
"height": 19,
"type": "match"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

View File

@ -0,0 +1,15 @@
{
"properties": [],
"tags": [
"printing_print_completed"
],
"area": [
{
"xpos": 356,
"ypos": 49,
"width": 76,
"height": 16,
"type": "match"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -0,0 +1,15 @@
{
"properties": [],
"tags": [
"printing_select_pdfprinter"
],
"area": [
{
"xpos": 185,
"ypos": 270,
"width": 99,
"height": 19,
"type": "match"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View File

@ -0,0 +1,15 @@
{
"properties": [],
"tags": [
"printing_check_sentence"
],
"area": [
{
"xpos": 252,
"ypos": 134,
"width": 300,
"height": 24,
"type": "match"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 KiB

View File

@ -0,0 +1,15 @@
{
"properties": [],
"tags": [
"printing_check_sentence"
],
"area": [
{
"xpos": 247,
"ypos": 136,
"width": 305,
"height": 20,
"type": "match"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"type": "match",
"xpos": 246,
"height": 20,
"width": 305,
"ypos": 136
}
],
"properties": [],
"tags": [
"printing_check_sentence"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View File

@ -0,0 +1,22 @@
{
"properties": [],
"tags": [
"printing_pdfprinter_ready"
],
"area": [
{
"xpos": 377,
"ypos": 98,
"width": 69,
"height": 18,
"type": "match"
},
{
"xpos": 377,
"ypos": 97,
"width": 69,
"height": 20,
"type": "match"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 433 KiB

View File

@ -0,0 +1,15 @@
{
"properties": [],
"tags": [
"printing_print"
],
"area": [
{
"xpos": 561,
"ypos": 229,
"width": 57,
"height": 19,
"type": "match"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 433 KiB

View File

@ -458,6 +458,28 @@
},
test_suite => { name => "desktop_terminal" },
},
{
machine => { name => "64bit" },
prio => 20,
product => {
arch => "x86_64",
distri => "fedora",
flavor => "Workstation-live-iso",
version => "*",
},
test_suite => { name => "desktop_printing" },
},
{
machine => { name => "64bit" },
prio => 20,
product => {
arch => "x86_64",
distri => "fedora",
flavor => "KDE-live-iso",
version => "*",
},
test_suite => { name => "desktop_printing" },
},
{
machine => { name => "64bit" },
prio => 22,
@ -1930,6 +1952,18 @@
},
test_suite => { name => "desktop_terminal" },
},
{
group_name => "Fedora PowerPC",
machine => { name => "ppc64le" },
prio => 20,
product => {
arch => "ppc64le",
distri => "fedora",
flavor => "Workstation-live-iso",
version => "*",
},
test_suite => { name => "desktop_printing" },
},
{
group_name => "Fedora PowerPC",
machine => { name => "ppc64le" },
@ -5391,6 +5425,15 @@
{ key => "HDD_1", value => "disk_%FLAVOR%_%MACHINE%.qcow2" },
],
},
{
name => "desktop_printing",
settings => [
{ key => "POSTINSTALL", value => "desktop_printing" },
{ key => "START_AFTER_TEST", value => "install_default_upload" },
{ key => "BOOTFROM", value => "c" },
{ key => "HDD_1", value => "disk_%FLAVOR%_%MACHINE%.qcow2" },
],
},
{
name => "desktop_terminal",
settings => [

80
tests/desktop_printing.pm Normal file
View File

@ -0,0 +1,80 @@
use base "installedtest";
use strict;
use testapi;
use utils;
sub run {
my $self = shift;
# Prepare the environment:
#
# Become root
$self->root_console(tty=>3);
# Create a text file with content to print
script_run "cd /home/test/";
assert_script_run "echo 'A quick brown fox jumps over a lazy dog.' > testfile.txt";
script_run "chmod 666 testfile.txt";
# Install the Cups-PDF package to use the Cups-PDF printer
assert_script_run "dnf -y install cups-pdf", 180;
# Leave the root terminal and switch back to desktop.
desktop_vt();
my $desktop = get_var("DESKTOP");
# some simple variances between desktops. defaults are for GNOME
my $editor = "gedit";
my $viewer = "evince";
my $maximize = "super-up";
if ($desktop eq "kde") {
$editor = "kwrite";
$viewer = "okular";
$maximize = "super-pgup";
}
# Open the text editor and print the file.
send_key "alt-f2";
wait_still_screen(stilltime=>5, similarity_level=>45);
type_safely "$editor /home/test/testfile.txt\n";
wait_still_screen(stilltime=>5, similarity_level=>44);
# Print the file using the Cups-PDF printer
send_key "ctrl-p";
wait_still_screen(stilltime=>5, similarity_level=>45);
if ($desktop eq 'gnome') {
assert_and_click "printing_select_pdfprinter";
}
else {
# It seems that on newly installed KDE systems with no
# printer, the Cups-PDF printer is already pre-selected.
# We only check that it is correct.
assert_screen "printing_pdfprinter_ready";
}
wait_still_screen(stilltime=>2, similarity_level=>45);
assert_and_click "printing_print";
# Exit the application
send_key "alt-f4";
# Wait out confirmation on GNOME
if (check_screen "printing_print_completed", 1) {
sleep 30;
}
# Open the pdf file and check the print
send_key "alt-f2";
wait_still_screen(stilltime=>5, similarity_level=>45);
type_safely "$viewer /home/test/Desktop/testfile.pdf\n";
wait_still_screen(stilltime=>5, similarity_level=>45);
# Resize the window, so that the size of the document fits the bigger space
# and gets more readable.
send_key $maximize;
wait_still_screen(stilltime=>2, similarity_level=>45);
# make sure we're at the start of the document
send_key "ctrl-home" if ($desktop eq "kde");
# Check the printed pdf.
assert_screen "printing_check_sentence";
}
sub test_flags {
return { fatal => 1 };
}
1;
# vim: set sw=4 et: