Add desktop login test, revise and rename check_desktop
This adds a new test that implementsQA:Testcase_desktop_login on both GNOME and KDE. While working on this, we realized that the "desktop_clean" needles were really "app menu" needles, and for KDE, this was a duplication with the new "system menu" needles, because on KDE the app menu and the system menu are the same. So I (Adam) started to de-duplicate that, but also realized that "app menu button" is a much more accurate name for these needles, so I was renaming the old desktop_clean needles to app_menu_button. That led me to the realization that "check_desktop_clean" is itself a dumb name, because we don't (at least, any more, way back in the mists of time we may have done) do anything to check that the desktop is "clean" - we're really just asserting that we're at a desktop *at all*. While thinking *that* through, I *also* realized that the whole "open the overview and look for the app grid icon" workaround it did is no longer necessary, because GNOME doesn't use a translucent top bar any more. That went away in GNOME 3.32, which is in Fedora 30, our oldest supported release. So I threw that away, renamed the function "check_desktop", cleaned up all the needle naming and tagging, and also added an app menu needle for GNOME in Japanese because we were missing one (the Japanese tests have been using the "app grid icon" workaround the whole time).
@ -72,6 +72,10 @@ for environment in ("anaconda", "gnome"):
|
||||
for pkgset in ("kde", "workstation", "minimal"):
|
||||
testliterals.append(f"anaconda_{pkgset}_highlighted")
|
||||
testliterals.append(f"anaconda_{pkgset}_selected")
|
||||
# desktop_login stuff
|
||||
for user in ("jack", "jim"):
|
||||
testliterals.append(f"login_{user}")
|
||||
testliterals.append(f"user_confirm_{user}")
|
||||
# partitioning stuff, there's a bunch of this, all in anaconda.pm
|
||||
# multiple things use this
|
||||
for part in ("swap", "root"):
|
||||
|
82
lib/utils.pm
@ -7,7 +7,7 @@ use Exporter;
|
||||
|
||||
use lockapi;
|
||||
use testapi;
|
||||
our @EXPORT = qw/run_with_error_check type_safely type_very_safely desktop_vt boot_to_login_screen console_login console_switch_layout desktop_switch_layout console_loadkeys_us do_bootloader boot_decrypt check_release menu_launch_type repo_setup setup_workaround_repo cleanup_workaround_repo gnome_initial_setup anaconda_create_user check_desktop_clean download_modularity_tests quit_firefox advisory_get_installed_packages advisory_check_nonmatching_packages start_with_launcher quit_with_shortcut lo_dismiss_tip disable_firefox_studies select_rescue_mode copy_devcdrom_as_isofile bypass_1691487 get_release_number check_left_bar check_top_bar check_prerelease check_version spell_version_number _assert_and_click is_branched rec_log click_unwanted_notifications repos_mirrorlist register_application get_registered_applications/;
|
||||
our @EXPORT = qw/run_with_error_check type_safely type_very_safely desktop_vt boot_to_login_screen console_login console_switch_layout desktop_switch_layout console_loadkeys_us do_bootloader boot_decrypt check_release menu_launch_type repo_setup setup_workaround_repo cleanup_workaround_repo gnome_initial_setup anaconda_create_user check_desktop download_modularity_tests quit_firefox advisory_get_installed_packages advisory_check_nonmatching_packages start_with_launcher quit_with_shortcut lo_dismiss_tip disable_firefox_studies select_rescue_mode copy_devcdrom_as_isofile bypass_1691487 get_release_number check_left_bar check_top_bar check_prerelease check_version spell_version_number _assert_and_click is_branched rec_log click_unwanted_notifications repos_mirrorlist register_application get_registered_applications solidify_wallpaper_kde/;
|
||||
|
||||
# We introduce this global variable to hold the list of applications that have
|
||||
# registered during the apps_startstop_test when they have sucessfully run.
|
||||
@ -727,42 +727,18 @@ sub anaconda_create_user {
|
||||
}
|
||||
}
|
||||
|
||||
sub check_desktop_clean {
|
||||
# Check we're at a 'clean' desktop. This used to be a simple
|
||||
# needle check, but Rawhide's default desktop is now one which
|
||||
# changes over time, and the GNOME top bar is now translucent
|
||||
# by default; together these changes mean it's impossible to
|
||||
# make a reliable needle, so we need something more tricksy to
|
||||
# cover that case. 'tries' is the amount of check cycles to run
|
||||
# before giving up and failing; each cycle should take ~3 secs.
|
||||
my %args = (
|
||||
tries => 10,
|
||||
@_
|
||||
);
|
||||
foreach my $i (1..$args{tries}) {
|
||||
# we still *do* the needle check, for all cases it covers
|
||||
return if (check_screen "graphical_desktop_clean", 1);
|
||||
# now do the special GNOME case
|
||||
if (get_var("DESKTOP") eq "gnome") {
|
||||
send_key "super";
|
||||
if (check_screen "overview_app_grid", 2) {
|
||||
send_key "super";
|
||||
wait_still_screen 3;
|
||||
# go back to the desktop, if we're still at the app
|
||||
# grid (can be a bit fuzzy depending on response lag)
|
||||
while (check_screen "overview_app_grid", 1) {
|
||||
send_key "super";
|
||||
wait_still_screen 3;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
else {
|
||||
# to keep the timing equal
|
||||
sleep 2;
|
||||
}
|
||||
}
|
||||
die "Clean desktop not reached!";
|
||||
sub check_desktop {
|
||||
# Check we're at a desktop. We do this by looking for the "apps"
|
||||
# menu button ("Activities" button on GNOME, kicker button on
|
||||
# KDE). This is set up as a helper function because, for a while,
|
||||
# GNOME made the top bar translucent by default *and* we had an
|
||||
# animated background by default, which made doing this solely
|
||||
# with needle matches hard, so we had a workaround of trying to
|
||||
# open the overview with the super key and match on the app grid
|
||||
# icon. But GNOME has gone back to the top bar being a solid color
|
||||
# by default, so we don't have this problem any more and this is
|
||||
# back to just being a simple needle match.
|
||||
assert_screen "apps_menu_button", 30;
|
||||
}
|
||||
|
||||
sub download_modularity_tests {
|
||||
@ -1203,4 +1179,36 @@ sub register_application {
|
||||
print("APPLICATION REGISTERED: $application \n");
|
||||
}
|
||||
|
||||
# The KDE desktop tests are very difficult to maintain, because the transparency
|
||||
# of the menu requires a lot of different needles to cover the elements.
|
||||
# Therefore it is useful to change the background to a solid colour.
|
||||
# Since many needles have been already created with a black background
|
||||
# we will keep it that way. The following code has been taken from the
|
||||
# KDE startstop tests but it is good to have it here, because it will be
|
||||
# needed more often now, it seems.
|
||||
sub solidify_wallpaper_kde {
|
||||
# Run the Desktop settings
|
||||
hold_key 'alt';
|
||||
send_key 'd';
|
||||
send_key 's';
|
||||
release_key 'alt';
|
||||
# Select type of background
|
||||
assert_and_click "deskset_select_type";
|
||||
wait_still_screen 2;
|
||||
# Select plain color type
|
||||
assert_and_click "deskset_plain_color";
|
||||
wait_still_screen 2;
|
||||
# Open colors selection
|
||||
assert_and_click "deskset_select_color";
|
||||
wait_still_screen 2;
|
||||
# Select black
|
||||
assert_and_click "deskset_select_black";
|
||||
wait_still_screen 2;
|
||||
# Confirm
|
||||
assert_and_click "kde_ok";
|
||||
wait_still_screen 2;
|
||||
# Close the application
|
||||
assert_and_click "kde_ok";
|
||||
}
|
||||
|
||||
1;
|
||||
|
@ -20,6 +20,6 @@
|
||||
"DESKTOP-gnome",
|
||||
"ENV-DISTRI-fedora",
|
||||
"LANGUAGE-english",
|
||||
"graphical_desktop_clean"
|
||||
"apps_menu_button"
|
||||
]
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 605 KiB After Width: | Height: | Size: 605 KiB |
@ -13,6 +13,6 @@
|
||||
"DESKTOP-gnome",
|
||||
"ENV-DISTRI-fedora",
|
||||
"LANGUAGE-arabic",
|
||||
"graphical_desktop_clean"
|
||||
"apps_menu_button"
|
||||
]
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 723 KiB After Width: | Height: | Size: 723 KiB |
@ -18,7 +18,7 @@
|
||||
"tags": [
|
||||
"DESKTOP-gnome",
|
||||
"LANGUAGE-french",
|
||||
"graphical_desktop_clean"
|
||||
"apps_menu_button"
|
||||
],
|
||||
"properties": []
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 396 KiB After Width: | Height: | Size: 396 KiB |
@ -0,0 +1,16 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 15,
|
||||
"ypos": 8,
|
||||
"width": 99,
|
||||
"height": 16,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"LANGUAGE-japanese",
|
||||
"apps_menu_button"
|
||||
]
|
||||
}
|
BIN
needles/gnome/japanese/apps_menu_button_japanese-20200417.png
Normal file
After Width: | Height: | Size: 741 KiB |
15
needles/gnome/lock_button.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"lock_button"
|
||||
],
|
||||
"area": [
|
||||
{
|
||||
"xpos": 734,
|
||||
"ypos": 193,
|
||||
"width": 59,
|
||||
"height": 21,
|
||||
"type": "match"
|
||||
}
|
||||
]
|
||||
}
|
BIN
needles/gnome/lock_button.png
Normal file
After Width: | Height: | Size: 726 KiB |
15
needles/gnome/locked_screen_switch_user.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"locked_screen_switch_user"
|
||||
],
|
||||
"area": [
|
||||
{
|
||||
"xpos": 963,
|
||||
"ypos": 708,
|
||||
"width": 22,
|
||||
"height": 21,
|
||||
"type": "match"
|
||||
}
|
||||
]
|
||||
}
|
BIN
needles/gnome/locked_screen_switch_user.png
Normal file
After Width: | Height: | Size: 30 KiB |
15
needles/gnome/log_out_confirm.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"log_out_confirm"
|
||||
],
|
||||
"area": [
|
||||
{
|
||||
"xpos": 595,
|
||||
"ypos": 441,
|
||||
"width": 56,
|
||||
"height": 22,
|
||||
"type": "match"
|
||||
}
|
||||
]
|
||||
}
|
BIN
needles/gnome/log_out_confirm.png
Normal file
After Width: | Height: | Size: 406 KiB |
15
needles/gnome/log_out_entry.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"log_out_entry"
|
||||
],
|
||||
"area": [
|
||||
{
|
||||
"xpos": 758,
|
||||
"ypos": 258,
|
||||
"width": 55,
|
||||
"height": 20,
|
||||
"type": "match"
|
||||
}
|
||||
]
|
||||
}
|
BIN
needles/gnome/log_out_entry.png
Normal file
After Width: | Height: | Size: 710 KiB |
15
needles/gnome/login_jack.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"ypos": 356,
|
||||
"height": 28,
|
||||
"type": "match",
|
||||
"xpos": 415,
|
||||
"width": 40
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"login_jack"
|
||||
]
|
||||
}
|
BIN
needles/gnome/login_jack.png
Normal file
After Width: | Height: | Size: 17 KiB |
15
needles/gnome/login_jack_blue.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"width": 36,
|
||||
"xpos": 420,
|
||||
"type": "match",
|
||||
"height": 25,
|
||||
"ypos": 270
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"login_jack"
|
||||
]
|
||||
}
|
BIN
needles/gnome/login_jack_blue.png
Normal file
After Width: | Height: | Size: 17 KiB |
15
needles/gnome/login_jim.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"ypos": 447,
|
||||
"height": 23,
|
||||
"type": "match",
|
||||
"xpos": 415,
|
||||
"width": 36
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"login_jim"
|
||||
]
|
||||
}
|
BIN
needles/gnome/login_jim.png
Normal file
After Width: | Height: | Size: 17 KiB |
15
needles/gnome/login_wrong_password.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"login_wrong_password"
|
||||
],
|
||||
"area": [
|
||||
{
|
||||
"xpos": 381,
|
||||
"ypos": 487,
|
||||
"width": 264,
|
||||
"height": 22,
|
||||
"type": "match"
|
||||
}
|
||||
]
|
||||
}
|
BIN
needles/gnome/login_wrong_password.png
Normal file
After Width: | Height: | Size: 26 KiB |
15
needles/gnome/power_entry.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"power_entry"
|
||||
],
|
||||
"area": [
|
||||
{
|
||||
"xpos": 734,
|
||||
"ypos": 226,
|
||||
"width": 70,
|
||||
"height": 19,
|
||||
"type": "match"
|
||||
}
|
||||
]
|
||||
}
|
BIN
needles/gnome/power_entry.png
Normal file
After Width: | Height: | Size: 726 KiB |
15
needles/gnome/power_off_confirm.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"power_off_confirm"
|
||||
],
|
||||
"area": [
|
||||
{
|
||||
"xpos": 622,
|
||||
"ypos": 461,
|
||||
"width": 76,
|
||||
"height": 21,
|
||||
"type": "match"
|
||||
}
|
||||
]
|
||||
}
|
BIN
needles/gnome/power_off_confirm.png
Normal file
After Width: | Height: | Size: 58 KiB |
15
needles/gnome/power_off_entry.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"power_off_entry"
|
||||
],
|
||||
"area": [
|
||||
{
|
||||
"xpos": 753,
|
||||
"ypos": 227,
|
||||
"width": 93,
|
||||
"height": 19,
|
||||
"type": "match"
|
||||
}
|
||||
]
|
||||
}
|
BIN
needles/gnome/power_off_entry.png
Normal file
After Width: | Height: | Size: 32 KiB |
15
needles/gnome/restart_confirm.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"restart_confirm"
|
||||
],
|
||||
"area": [
|
||||
{
|
||||
"xpos": 486,
|
||||
"ypos": 461,
|
||||
"width": 55,
|
||||
"height": 20,
|
||||
"type": "match"
|
||||
}
|
||||
]
|
||||
}
|
BIN
needles/gnome/restart_confirm.png
Normal file
After Width: | Height: | Size: 58 KiB |
@ -20,6 +20,6 @@
|
||||
"DESKTOP-gnome",
|
||||
"ENV-DISTRI-fedora",
|
||||
"LANGUAGE-russian",
|
||||
"graphical_desktop_clean"
|
||||
"apps_menu_button"
|
||||
]
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 724 KiB After Width: | Height: | Size: 724 KiB |
15
needles/gnome/switch_user_entry.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"switch_user_entry"
|
||||
],
|
||||
"area": [
|
||||
{
|
||||
"xpos": 758,
|
||||
"ypos": 289,
|
||||
"width": 96,
|
||||
"height": 19,
|
||||
"type": "match"
|
||||
}
|
||||
]
|
||||
}
|
BIN
needles/gnome/switch_user_entry.png
Normal file
After Width: | Height: | Size: 710 KiB |
15
needles/gnome/system_menu_button.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"system_menu_button"
|
||||
],
|
||||
"area": [
|
||||
{
|
||||
"xpos": 969,
|
||||
"ypos": 2,
|
||||
"width": 45,
|
||||
"height": 25,
|
||||
"type": "match"
|
||||
}
|
||||
]
|
||||
}
|
BIN
needles/gnome/system_menu_button.png
Normal file
After Width: | Height: | Size: 756 KiB |
15
needles/gnome/system_menu_button_grey.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 969,
|
||||
"ypos": 2,
|
||||
"width": 45,
|
||||
"height": 25,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"system_menu_button"
|
||||
]
|
||||
}
|
BIN
needles/gnome/system_menu_button_grey.png
Normal file
After Width: | Height: | Size: 18 KiB |
15
needles/gnome/user_confirm_jack.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"height": 21,
|
||||
"type": "match",
|
||||
"width": 41,
|
||||
"xpos": 192,
|
||||
"ypos": 162
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"user_confirm_jack"
|
||||
]
|
||||
}
|
BIN
needles/gnome/user_confirm_jack.png
Normal file
After Width: | Height: | Size: 474 KiB |
15
needles/gnome/user_confirm_jim.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 194,
|
||||
"ypos": 165,
|
||||
"width": 31,
|
||||
"height": 15,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"user_confirm_jim"
|
||||
]
|
||||
}
|
BIN
needles/gnome/user_confirm_jim.png
Normal file
After Width: | Height: | Size: 467 KiB |
@ -1,15 +1,16 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 618,
|
||||
"ypos": 514,
|
||||
"width": 43,
|
||||
"height": 17,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"kde_ok"
|
||||
]
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 618,
|
||||
"ypos": 514,
|
||||
"width": 43,
|
||||
"height": 17,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"kde_ok",
|
||||
"add_button"
|
||||
]
|
||||
}
|
@ -1,7 +1,8 @@
|
||||
{
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"konsole_runs"
|
||||
"konsole_runs",
|
||||
"apps_run_terminal"
|
||||
],
|
||||
"area": [
|
||||
{
|
||||
|
@ -1,16 +0,0 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"ypos": 733,
|
||||
"type": "match",
|
||||
"width": 36,
|
||||
"height": 35,
|
||||
"xpos": 0
|
||||
}
|
||||
],
|
||||
"tags": [
|
||||
"DESKTOP-kde",
|
||||
"graphical_desktop_clean"
|
||||
],
|
||||
"properties": []
|
||||
}
|
16
needles/kde/leave_button.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"leave_button",
|
||||
"power_entry"
|
||||
],
|
||||
"area": [
|
||||
{
|
||||
"xpos": 412,
|
||||
"ypos": 655,
|
||||
"width": 32,
|
||||
"height": 32,
|
||||
"type": "match"
|
||||
}
|
||||
]
|
||||
}
|
BIN
needles/kde/leave_button.png
Normal file
After Width: | Height: | Size: 53 KiB |
15
needles/kde/lock_button_kde.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 73,
|
||||
"height": 17,
|
||||
"width": 43,
|
||||
"ypos": 242,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"lock_button"
|
||||
]
|
||||
}
|
BIN
needles/kde/lock_button_kde.png
Normal file
After Width: | Height: | Size: 33 KiB |
15
needles/kde/log_out_entry.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"type": "match",
|
||||
"xpos": 76,
|
||||
"height": 20,
|
||||
"width": 55,
|
||||
"ypos": 281
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"log_out_entry"
|
||||
]
|
||||
}
|
BIN
needles/kde/log_out_entry.png
Normal file
After Width: | Height: | Size: 42 KiB |
15
needles/kde/login_jack_kde.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"ypos": 390,
|
||||
"xpos": 202,
|
||||
"width": 109,
|
||||
"type": "match",
|
||||
"height": 19
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"login_jack"
|
||||
]
|
||||
}
|
BIN
needles/kde/login_jack_kde.png
Normal file
After Width: | Height: | Size: 34 KiB |
15
needles/kde/login_jim_kde.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"ypos": 389,
|
||||
"xpos": 601,
|
||||
"width": 77,
|
||||
"type": "match",
|
||||
"height": 22
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"login_jim"
|
||||
]
|
||||
}
|
BIN
needles/kde/login_jim_kde.png
Normal file
After Width: | Height: | Size: 33 KiB |
15
needles/kde/login_jim_kde_bigger-20200402.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"height": 17,
|
||||
"type": "match",
|
||||
"width": 76,
|
||||
"xpos": 472,
|
||||
"ypos": 393
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"login_jim"
|
||||
]
|
||||
}
|
BIN
needles/kde/login_jim_kde_bigger-20200402.png
Normal file
After Width: | Height: | Size: 148 KiB |
15
needles/kde/login_wrong_password_kde.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"login_wrong_password"
|
||||
],
|
||||
"area": [
|
||||
{
|
||||
"xpos": 464,
|
||||
"ypos": 416,
|
||||
"width": 98,
|
||||
"height": 20,
|
||||
"type": "match"
|
||||
}
|
||||
]
|
||||
}
|
BIN
needles/kde/login_wrong_password_kde.png
Normal file
After Width: | Height: | Size: 176 KiB |
16
needles/kde/logout_confirm_kde.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"log_out_confirm",
|
||||
"power_off_confirm"
|
||||
],
|
||||
"area": [
|
||||
{
|
||||
"xpos": 435,
|
||||
"ypos": 575,
|
||||
"width": 45,
|
||||
"height": 19,
|
||||
"type": "match"
|
||||
}
|
||||
]
|
||||
}
|
BIN
needles/kde/logout_confirm_kde.png
Normal file
After Width: | Height: | Size: 38 KiB |
17
needles/kde/menu_button-kde-larger-20180604.json
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"height": 24,
|
||||
"type": "match",
|
||||
"width": 25,
|
||||
"xpos": 5,
|
||||
"ypos": 738
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"DESKTOP-kde",
|
||||
"system_menu_button",
|
||||
"apps_menu_button"
|
||||
]
|
||||
}
|
Before Width: | Height: | Size: 748 KiB After Width: | Height: | Size: 748 KiB |
@ -13,6 +13,7 @@
|
||||
],
|
||||
"tags": [
|
||||
"DESKTOP-kde",
|
||||
"graphical_desktop_clean"
|
||||
"apps_menu_button",
|
||||
"system_menu_button"
|
||||
]
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 499 KiB After Width: | Height: | Size: 499 KiB |
15
needles/kde/power_off_entry_kde.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"power_off_entry"
|
||||
],
|
||||
"area": [
|
||||
{
|
||||
"xpos": 76,
|
||||
"ypos": 514,
|
||||
"width": 77,
|
||||
"height": 17,
|
||||
"type": "match"
|
||||
}
|
||||
]
|
||||
}
|
BIN
needles/kde/power_off_entry_kde.png
Normal file
After Width: | Height: | Size: 44 KiB |
15
needles/kde/reboot_entry_kde.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"height": 26,
|
||||
"type": "match",
|
||||
"width": 30,
|
||||
"xpos": 30,
|
||||
"ypos": 435
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"reboot_entry"
|
||||
]
|
||||
}
|
BIN
needles/kde/reboot_entry_kde.png
Normal file
After Width: | Height: | Size: 45 KiB |
15
needles/kde/reboot_icon.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"height": 38,
|
||||
"type": "match",
|
||||
"width": 39,
|
||||
"xpos": 449,
|
||||
"ypos": 610
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"reboot_icon"
|
||||
]
|
||||
}
|
BIN
needles/kde/reboot_icon.png
Normal file
After Width: | Height: | Size: 34 KiB |
15
needles/kde/switch_user_entry_kde.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"switch_user_entry"
|
||||
],
|
||||
"area": [
|
||||
{
|
||||
"xpos": 75,
|
||||
"ypos": 321,
|
||||
"width": 84,
|
||||
"height": 17,
|
||||
"type": "match"
|
||||
}
|
||||
]
|
||||
}
|
BIN
needles/kde/switch_user_entry_kde.png
Normal file
After Width: | Height: | Size: 55 KiB |
15
needles/kde/user_confirm_jack_kde.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"user_confirm_jack"
|
||||
],
|
||||
"area": [
|
||||
{
|
||||
"xpos": 93,
|
||||
"ypos": 137,
|
||||
"width": 40,
|
||||
"height": 21,
|
||||
"type": "match"
|
||||
}
|
||||
]
|
||||
}
|
BIN
needles/kde/user_confirm_jack_kde.png
Normal file
After Width: | Height: | Size: 54 KiB |
15
needles/kde/user_confirm_jim_kde.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"type": "match",
|
||||
"ypos": 135,
|
||||
"width": 35,
|
||||
"xpos": 91,
|
||||
"height": 21
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"user_confirm_jim"
|
||||
]
|
||||
}
|
BIN
needles/kde/user_confirm_jim_kde.png
Normal file
After Width: | Height: | Size: 34 KiB |
15
needles/kde/user_confirm_jim_term.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"width": 32,
|
||||
"ypos": 66,
|
||||
"xpos": 9,
|
||||
"type": "match",
|
||||
"height": 21
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"user_confirm_jim"
|
||||
]
|
||||
}
|
BIN
needles/kde/user_confirm_jim_term.png
Normal file
After Width: | Height: | Size: 36 KiB |
@ -609,6 +609,19 @@
|
||||
"START_AFTER_TEST": "install_default_upload"
|
||||
}
|
||||
},
|
||||
"desktop_login": {
|
||||
"profiles": {
|
||||
"fedora-KDE-live-iso-x86_64-*-64bit": 30,
|
||||
"fedora-Workstation-live-iso-x86_64-*-64bit": 30,
|
||||
"fedora-Workstation-live-iso-ppc64le-*-ppc64le": 30
|
||||
},
|
||||
"settings": {
|
||||
"BOOTFROM": "c",
|
||||
"HDD_1": "disk_%FLAVOR%_%MACHINE%.qcow2",
|
||||
"POSTINSTALL": "desktop_login",
|
||||
"START_AFTER_TEST": "install_default_upload"
|
||||
}
|
||||
},
|
||||
"desktop_browser": {
|
||||
"profiles": {
|
||||
"fedora-KDE-live-iso-x86_64-*-64bit": 22,
|
||||
|
@ -29,7 +29,7 @@ sub run {
|
||||
send_key "esc";
|
||||
send_key "esc";
|
||||
send_key "esc";
|
||||
check_desktop_clean;
|
||||
check_desktop;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -91,7 +91,7 @@ sub run {
|
||||
# Move the mouse somewhere it won't highlight the match areas
|
||||
mouse_set(300, 800);
|
||||
# KDE can take ages to start up
|
||||
check_desktop_clean(tries=>40);
|
||||
check_desktop(tries=>40);
|
||||
}
|
||||
|
||||
sub test_flags {
|
||||
|
@ -8,28 +8,7 @@ use utils;
|
||||
|
||||
sub run {
|
||||
my $self = shift;
|
||||
# Run the Desktop settings
|
||||
hold_key 'alt';
|
||||
send_key 'd';
|
||||
send_key 's';
|
||||
release_key 'alt';
|
||||
# Select type of background
|
||||
assert_and_click "deskset_select_type";
|
||||
wait_still_screen 2;
|
||||
# Select plain color type
|
||||
assert_and_click "deskset_plain_color";
|
||||
wait_still_screen 2;
|
||||
# Open colors selection
|
||||
assert_and_click "deskset_select_color";
|
||||
wait_still_screen 2;
|
||||
# Select black
|
||||
assert_and_click "deskset_select_black";
|
||||
wait_still_screen 2;
|
||||
# Confirm
|
||||
assert_and_click "kde_ok";
|
||||
wait_still_screen 2;
|
||||
# Close the application
|
||||
assert_and_click "kde_ok";
|
||||
solidify_wallpaper_kde;
|
||||
# get rid of unwanted notifications that interfere with tests
|
||||
click_unwanted_notifications;
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ use testapi;
|
||||
use utils;
|
||||
|
||||
sub run {
|
||||
check_desktop_clean;
|
||||
check_desktop;
|
||||
# If we want to check that there is a correct background used, as a part
|
||||
# of self identification test, we will do it here. For now we don't do
|
||||
# this for Rawhide as Rawhide doesn't have its own backgrounds and we
|
||||
|
@ -27,7 +27,7 @@ sub _open_new_tab {
|
||||
|
||||
sub run {
|
||||
my $self = shift;
|
||||
check_desktop_clean;
|
||||
check_desktop;
|
||||
send_key 'alt-f1';
|
||||
# wait out animations
|
||||
wait_still_screen(stilltime=>2, similarity_level=>45);
|
||||
|
335
tests/desktop_login.pm
Normal file
@ -0,0 +1,335 @@
|
||||
use base "installedtest";
|
||||
use strict;
|
||||
use testapi;
|
||||
use utils;
|
||||
|
||||
our $desktop = get_var("DESKTOP");
|
||||
our $syspwd = get_var("USER_PASSWORD") || "weakpassword";
|
||||
our $term = "gnome-terminal";
|
||||
if ($desktop eq "kde") {
|
||||
$term = "konsole";
|
||||
}
|
||||
|
||||
sub type_password {
|
||||
# Safe typing prolongs the operation terribly.
|
||||
# Let's just use type_string and wait afterwards.
|
||||
my $string = shift;
|
||||
type_string "$string\n";
|
||||
sleep 3;
|
||||
}
|
||||
|
||||
sub adduser {
|
||||
# Add user to the system.
|
||||
my %args = @_;
|
||||
$args{termstart} //= 1;
|
||||
$args{termstop} //= 1;
|
||||
my $name = $args{name};
|
||||
my $login = $args{login};
|
||||
my $password = $args{password};
|
||||
|
||||
if ($args{termstart}) {
|
||||
menu_launch_type $term;
|
||||
wait_still_screen 2;
|
||||
assert_screen "apps_run_terminal";
|
||||
type_very_safely "sudo -i\n";
|
||||
type_password $syspwd;
|
||||
}
|
||||
assert_script_run "useradd -c '$name' $login";
|
||||
if ($password ne "askuser") {
|
||||
# If we want to create a user with a defined password.
|
||||
type_very_safely "passwd $login\n";
|
||||
type_password $password;
|
||||
type_password $password;
|
||||
}
|
||||
else {
|
||||
# If we want to create a user without a password,
|
||||
# that forces GDM to create a password upon the
|
||||
# first login.
|
||||
assert_script_run "passwd -d $login";
|
||||
assert_script_run "chage --lastday 0 $login";
|
||||
}
|
||||
assert_script_run "grep $login /etc/passwd";
|
||||
# Disable Gnome initial setup on accounts when testing
|
||||
# inside Gnome.
|
||||
if ($desktop eq "gnome") {
|
||||
assert_script_run "mkdir /home/$login/.config";
|
||||
assert_script_run "echo 'yes' >> /home/$login/.config/gnome-initial-setup-done";
|
||||
}
|
||||
if ($args{termstop}) {
|
||||
type_very_safely "exit\n";
|
||||
send_key 'alt-f4';
|
||||
}
|
||||
}
|
||||
|
||||
sub lock_screen {
|
||||
# Click on buttons to lock the screen.
|
||||
#my $desktop = get_var("DESKTOP");
|
||||
assert_and_click "system_menu_button";
|
||||
if ($desktop eq "kde") {
|
||||
assert_and_click "leave_button";
|
||||
}
|
||||
assert_and_click "lock_button";
|
||||
wait_still_screen 10;
|
||||
}
|
||||
|
||||
sub login_user {
|
||||
# Do steps to unlock a previously locked screen. We use it to handle
|
||||
# logins as well, because it is practically the same.
|
||||
my %args = @_;
|
||||
$args{checklogin} //= 1;
|
||||
$args{method} //= "";
|
||||
my $user = $args{user};
|
||||
my $password = $args{password};
|
||||
my $method = $args{method};
|
||||
if (!check_screen "login_$user") {
|
||||
# Sometimes, especially in SDDM, we do not get the user list
|
||||
# but rather a "screensaver" screen for the DM. If this is the
|
||||
# case, hit Enter to bring back the user list.
|
||||
send_key "ret";
|
||||
wait_still_screen 5;
|
||||
}
|
||||
if ($method ne "unlock") {
|
||||
# When we do not just want to unlock the screen, we need to select a user.
|