Automate the QA:Testcase_Anaconda_help.
This PR automates the mentioned testcase to test that Help can be displayed in Anaconda during the installation. It navigates through the available Help screens and if it can see it, it finishes. This test runs after `install_default_upload` to override the installation defaults defined for all primary tests. Delete a duplicated needle. Reformat list extensions to make it nicer. Get rid of wrong export and an empty line. Delete empty line. Use _boot_to_anaconda for booting and move subroutine accordingly. Add variable to templates.fif.json Delete trailing whitespace. Fix calling the pretest. Move help checking to another place.
@ -77,6 +77,7 @@ it also means that `B` conflicts `A` even if not shown in the table).
|
|||||||
| `POSTINSTALL` | string | not set | nothing | If set, `tests/(value)_postinstall.pm` will be loaded after install, boot, login, and other postinstall tests
|
| `POSTINSTALL` | string | not set | nothing | If set, `tests/(value)_postinstall.pm` will be loaded after install, boot, login, and other postinstall tests
|
||||||
| `UEFI` | boolean | `false`/not set | nothing | whether to use UEFI, this variable isn't usually set in test suites but in machine definition |
|
| `UEFI` | boolean | `false`/not set | nothing | whether to use UEFI, this variable isn't usually set in test suites but in machine definition |
|
||||||
| `ANACONDA_TEXT` | boolean | `false`/not set | all | when specified, anaconda will run in text mode |
|
| `ANACONDA_TEXT` | boolean | `false`/not set | all | when specified, anaconda will run in text mode |
|
||||||
|
| `HELPCHECK` | boolean | `false`/not set | all | when specified, Anaconda Help will be called on each available pane. |
|
||||||
| `ANACONDA_STATIC` | string (IPv4 address) | not set | `ANACONDA_TEXT` | If set, will set up static networking using the chosen IP address during install |
|
| `ANACONDA_STATIC` | string (IPv4 address) | not set | `ANACONDA_TEXT` | If set, will set up static networking using the chosen IP address during install |
|
||||||
| `POST_STATIC` | string (space-separated IPv4 address and hostname) | not set | nothing | If set, will set up static networking using the chosen IP address and hostname during early post-install |
|
| `POST_STATIC` | string (space-separated IPv4 address and hostname) | not set | nothing | If set, will set up static networking using the chosen IP address and hostname during early post-install |
|
||||||
| `NO_UEFI_POST` | boolean | `false`/not set | nothing | If set, `uefi_postinstall` test will not be loaded even if `UEFI` is set (can be useful for non-English tests to avoid `uefi_postinstall` running loadkeys) |
|
| `NO_UEFI_POST` | boolean | `false`/not set | nothing | If set, `uefi_postinstall` test will not be loaded even if `UEFI` is set (can be useful for non-English tests to avoid `uefi_postinstall` running loadkeys) |
|
||||||
|
@ -102,6 +102,14 @@ for fsys in ("ext3", "xfs", "ext4"):
|
|||||||
testliterals.append(f"anaconda_part_fs_{fsys}_selected")
|
testliterals.append(f"anaconda_part_fs_{fsys}_selected")
|
||||||
# variable-y in custom_change_device but we only have one value
|
# variable-y in custom_change_device but we only have one value
|
||||||
testliterals.append("anaconda_part_device_sda")
|
testliterals.append("anaconda_part_device_sda")
|
||||||
|
# for Anaconda help related needles.
|
||||||
|
testliterals.extend(f"anaconda_help_{fsys}" for fsys in ('install_destination',
|
||||||
|
'installation_progress', 'keyboard_layout', 'language_support', 'network_host_name',
|
||||||
|
'root_password', 'select_packages', 'installation_source', 'time_date', 'create_user',
|
||||||
|
'language_selection', 'language', 'summary_link'))
|
||||||
|
|
||||||
|
testliterals.extend(f"anaconda_main_hub_{fsys}" for fsys in ('language_support', 'selec_packages',
|
||||||
|
'time_date', 'create_user','keyboard_layout'))
|
||||||
|
|
||||||
# retcode tracker
|
# retcode tracker
|
||||||
ret = 0
|
ret = 0
|
||||||
|
@ -8,7 +8,7 @@ use Exporter;
|
|||||||
use testapi;
|
use testapi;
|
||||||
use utils;
|
use utils;
|
||||||
|
|
||||||
our @EXPORT = qw/select_disks custom_scheme_select custom_blivet_add_partition custom_blivet_format_partition custom_blivet_resize_partition custom_change_type custom_change_fs custom_change_device custom_delete_part get_full_repo get_mirrorlist_url/;
|
our @EXPORT = qw/select_disks custom_scheme_select custom_blivet_add_partition custom_blivet_format_partition custom_blivet_resize_partition custom_change_type custom_change_fs custom_change_device custom_delete_part get_full_repo get_mirrorlist_url check_help_on_pane/;
|
||||||
|
|
||||||
sub select_disks {
|
sub select_disks {
|
||||||
# Handles disk selection. Has one optional argument - number of
|
# Handles disk selection. Has one optional argument - number of
|
||||||
@ -307,3 +307,50 @@ sub get_full_repo {
|
|||||||
sub get_mirrorlist_url {
|
sub get_mirrorlist_url {
|
||||||
return "mirrors.fedoraproject.org/mirrorlist?repo=fedora-" . lc(get_var("VERSION")) . "&arch=" . get_var('ARCH');
|
return "mirrors.fedoraproject.org/mirrorlist?repo=fedora-" . lc(get_var("VERSION")) . "&arch=" . get_var('ARCH');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub check_help_on_pane {
|
||||||
|
# This subroutine opens the selected Anaconda pane and checks
|
||||||
|
# if the Help button can be clicked to obtain relevant help.
|
||||||
|
#
|
||||||
|
# Pass an argument to select particular pane to check.
|
||||||
|
my $screen = shift;
|
||||||
|
|
||||||
|
# Some Help buttons need to be accessed directly according
|
||||||
|
# to various installation steps (and not from the main hub),
|
||||||
|
# namely the Main hub Help button, Language selection Help button
|
||||||
|
# and Installation progress Help button. For the aforementioned
|
||||||
|
# step, we are skipping selecting the panes.
|
||||||
|
if ($screen ne "main" && $screen ne "language_selection" && $screen ne "installation_progress") {
|
||||||
|
assert_and_click "anaconda_main_hub_$screen";
|
||||||
|
}
|
||||||
|
# For Help, click on the the Help button.
|
||||||
|
assert_and_click "anaconda_help_button";
|
||||||
|
|
||||||
|
# On the main hub, the Help summary is shown, from where a link
|
||||||
|
# takes us to Installation progress. This is a specific situation,
|
||||||
|
# so let's handle this differently.
|
||||||
|
if ($screen eq "main") {
|
||||||
|
# Check the Installation Summary screen.
|
||||||
|
assert_screen "anaconda_help_summary";
|
||||||
|
# Click on Installation Progress link
|
||||||
|
assert_and_click "anaconda_help_progress_link";
|
||||||
|
# Check the Installation Progress screen
|
||||||
|
assert_screen "anaconda_help_progress";
|
||||||
|
}
|
||||||
|
# Otherwise, only check the relevant screen.
|
||||||
|
else {
|
||||||
|
assert_screen "anaconda_help_$screen";
|
||||||
|
}
|
||||||
|
# Close Help window
|
||||||
|
assert_and_click "anaconda_help_quit";
|
||||||
|
# Where panes were not opened, we will not close them.
|
||||||
|
if ($screen ne "main" && $screen ne "language_selection" && $screen ne "installation_progress") {
|
||||||
|
assert_and_click "anaconda_spoke_done";
|
||||||
|
}
|
||||||
|
# In the situation, when we do not arrive at main hub, we will skip
|
||||||
|
# testing that main hub is shown.
|
||||||
|
if ($screen ne "language_selection" && $screen ne "installation_progress") {
|
||||||
|
assert_screen "anaconda_main_hub";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
15
needles/anaconda/help/help_button.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 955,
|
||||||
|
"ypos": 52,
|
||||||
|
"width": 39,
|
||||||
|
"height": 17,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_button"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_button.png
Normal file
After Width: | Height: | Size: 93 KiB |
15
needles/anaconda/help/help_create_user.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 44,
|
||||||
|
"ypos": 174,
|
||||||
|
"width": 184,
|
||||||
|
"height": 26,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_create_user"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_create_user.png
Normal file
After Width: | Height: | Size: 145 KiB |
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 10,
|
||||||
|
"ypos": 95,
|
||||||
|
"width": 374,
|
||||||
|
"height": 39,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_install_destination"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_installation_destination-20210518.png
Normal file
After Width: | Height: | Size: 109 KiB |
15
needles/anaconda/help/help_installation_destination.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 42,
|
||||||
|
"ypos": 173,
|
||||||
|
"width": 364,
|
||||||
|
"height": 25,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_install_destination"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_installation_destination.png
Normal file
After Width: | Height: | Size: 165 KiB |
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"type": "match",
|
||||||
|
"ypos": 95,
|
||||||
|
"xpos": 303,
|
||||||
|
"width": 337,
|
||||||
|
"height": 40
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_installation_progress"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_installation_progress-20210518.png
Normal file
After Width: | Height: | Size: 63 KiB |
15
needles/anaconda/help/help_installation_progress.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 336,
|
||||||
|
"ypos": 171,
|
||||||
|
"width": 319,
|
||||||
|
"height": 33,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_installation_progress"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_installation_progress.png
Normal file
After Width: | Height: | Size: 111 KiB |
15
needles/anaconda/help/help_installation_source.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 41,
|
||||||
|
"ypos": 172,
|
||||||
|
"width": 293,
|
||||||
|
"height": 28,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_installation_source"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_installation_source.png
Normal file
After Width: | Height: | Size: 145 KiB |
15
needles/anaconda/help/help_keyboard_layout-20210518.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"height": 41,
|
||||||
|
"width": 272,
|
||||||
|
"xpos": 11,
|
||||||
|
"type": "match",
|
||||||
|
"ypos": 93
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_keyboard_layout"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_keyboard_layout-20210518.png
Normal file
After Width: | Height: | Size: 81 KiB |
15
needles/anaconda/help/help_keyboard_layout.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 40,
|
||||||
|
"ypos": 172,
|
||||||
|
"width": 267,
|
||||||
|
"height": 31,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_keyboard_layout"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_keyboard_layout.png
Normal file
After Width: | Height: | Size: 137 KiB |
15
needles/anaconda/help/help_language.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_language"
|
||||||
|
],
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 380,
|
||||||
|
"ypos": 170,
|
||||||
|
"width": 312,
|
||||||
|
"height": 32,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_language.png
Normal file
After Width: | Height: | Size: 118 KiB |
15
needles/anaconda/help/help_language_selection-20210518.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"height": 38,
|
||||||
|
"width": 313,
|
||||||
|
"xpos": 353,
|
||||||
|
"ypos": 97,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_language_selection"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_language_selection-20210518.png
Normal file
After Width: | Height: | Size: 66 KiB |
15
needles/anaconda/help/help_language_selection.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_language_selection"
|
||||||
|
],
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 379,
|
||||||
|
"ypos": 168,
|
||||||
|
"width": 313,
|
||||||
|
"height": 38,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_language_selection.png
Normal file
After Width: | Height: | Size: 133 KiB |
15
needles/anaconda/help/help_language_support.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 43,
|
||||||
|
"ypos": 173,
|
||||||
|
"width": 291,
|
||||||
|
"height": 30,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_language_support"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_language_support.png
Normal file
After Width: | Height: | Size: 122 KiB |
15
needles/anaconda/help/help_network_hostname.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 40,
|
||||||
|
"ypos": 170,
|
||||||
|
"width": 334,
|
||||||
|
"height": 30,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_network_host_name"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_network_hostname.png
Normal file
After Width: | Height: | Size: 143 KiB |
15
needles/anaconda/help/help_progress-20210518.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"type": "match",
|
||||||
|
"ypos": 96,
|
||||||
|
"xpos": 301,
|
||||||
|
"width": 335,
|
||||||
|
"height": 40
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_progress"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_progress-20210518.png
Normal file
After Width: | Height: | Size: 63 KiB |
15
needles/anaconda/help/help_progress.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 333,
|
||||||
|
"ypos": 172,
|
||||||
|
"width": 319,
|
||||||
|
"height": 31,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_progress"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_progress.png
Normal file
After Width: | Height: | Size: 113 KiB |
15
needles/anaconda/help/help_progress_link-20210518.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"height": 17,
|
||||||
|
"width": 143,
|
||||||
|
"xpos": 137,
|
||||||
|
"ypos": 727,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_progress_link"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_progress_link-20210518.png
Normal file
After Width: | Height: | Size: 98 KiB |
15
needles/anaconda/help/help_progress_link.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 205,
|
||||||
|
"ypos": 718,
|
||||||
|
"width": 129,
|
||||||
|
"height": 11,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_progress_link"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_progress_link.png
Normal file
After Width: | Height: | Size: 146 KiB |
15
needles/anaconda/help/help_quit.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 966,
|
||||||
|
"ypos": 81,
|
||||||
|
"width": 16,
|
||||||
|
"height": 13,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_quit"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_quit.png
Normal file
After Width: | Height: | Size: 113 KiB |
15
needles/anaconda/help/help_quit_kde.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_quit"
|
||||||
|
],
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 968,
|
||||||
|
"ypos": 52,
|
||||||
|
"width": 21,
|
||||||
|
"height": 20,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_quit_kde.png
Normal file
After Width: | Height: | Size: 178 KiB |
15
needles/anaconda/help/help_root_password.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 40,
|
||||||
|
"ypos": 170,
|
||||||
|
"width": 232,
|
||||||
|
"height": 31,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_root_password"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_root_password.png
Normal file
After Width: | Height: | Size: 134 KiB |
15
needles/anaconda/help/help_software_selection.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 41,
|
||||||
|
"ypos": 172,
|
||||||
|
"width": 294,
|
||||||
|
"height": 26,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_select_packages"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_software_selection.png
Normal file
After Width: | Height: | Size: 145 KiB |
15
needles/anaconda/help/help_summary-20210518.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"ypos": 99,
|
||||||
|
"type": "match",
|
||||||
|
"xpos": 12,
|
||||||
|
"width": 342,
|
||||||
|
"height": 35
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_summary"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_summary-20210518.png
Normal file
After Width: | Height: | Size: 98 KiB |
15
needles/anaconda/help/help_summary.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 40,
|
||||||
|
"ypos": 170,
|
||||||
|
"width": 342,
|
||||||
|
"height": 35,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_summary"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_summary.png
Normal file
After Width: | Height: | Size: 146 KiB |
15
needles/anaconda/help/help_summary_link.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_summary_link"
|
||||||
|
],
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 683,
|
||||||
|
"ypos": 446,
|
||||||
|
"width": 142,
|
||||||
|
"height": 14,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_summary_link.png
Normal file
After Width: | Height: | Size: 118 KiB |
15
needles/anaconda/help/help_time_date-20210518.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 12,
|
||||||
|
"ypos": 99,
|
||||||
|
"type": "match",
|
||||||
|
"height": 30,
|
||||||
|
"width": 196
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_time_date"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_time_date-20210518.png
Normal file
After Width: | Height: | Size: 72 KiB |
15
needles/anaconda/help/help_time_date.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_help_time_date"
|
||||||
|
],
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 43,
|
||||||
|
"ypos": 171,
|
||||||
|
"width": 196,
|
||||||
|
"height": 30,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/help/help_time_date.png
Normal file
After Width: | Height: | Size: 170 KiB |
15
needles/anaconda/main_hub/create_user.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_main_hub_create_user"
|
||||||
|
],
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 248,
|
||||||
|
"ypos": 556,
|
||||||
|
"width": 32,
|
||||||
|
"height": 33,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/main_hub/create_user.png
Normal file
After Width: | Height: | Size: 110 KiB |
15
needles/anaconda/main_hub/keyboard_layout.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 248,
|
||||||
|
"ypos": 207,
|
||||||
|
"width": 29,
|
||||||
|
"height": 28,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_main_hub_keyboard_layout"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/main_hub/keyboard_layout.png
Normal file
After Width: | Height: | Size: 94 KiB |
15
needles/anaconda/main_hub/language_support.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 249,
|
||||||
|
"ypos": 276,
|
||||||
|
"width": 31,
|
||||||
|
"height": 28,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_main_hub_language_support"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/main_hub/language_support.png
Normal file
After Width: | Height: | Size: 95 KiB |
24
needles/anaconda/main_hub/live_clicked_key.json
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"width": 37,
|
||||||
|
"height": 33,
|
||||||
|
"ypos": 356,
|
||||||
|
"type": "match",
|
||||||
|
"xpos": 363
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ypos": 423,
|
||||||
|
"type": "match",
|
||||||
|
"xpos": 364,
|
||||||
|
"width": 34,
|
||||||
|
"height": 37
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_main_hub",
|
||||||
|
"ENV-DISTRI-fedora",
|
||||||
|
"INSTALLER-smallhub"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/main_hub/live_clicked_key.png
Normal file
After Width: | Height: | Size: 88 KiB |
24
needles/anaconda/main_hub/live_clicked_time.json
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"type": "match",
|
||||||
|
"xpos": 365,
|
||||||
|
"ypos": 369,
|
||||||
|
"width": 34,
|
||||||
|
"height": 37
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"xpos": 366,
|
||||||
|
"ypos": 444,
|
||||||
|
"width": 33,
|
||||||
|
"height": 30,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_main_hub",
|
||||||
|
"ENV-DISTRI-fedora",
|
||||||
|
"INSTALLER-smallhub"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/main_hub/live_clicked_time.png
Normal file
After Width: | Height: | Size: 85 KiB |
30
needles/anaconda/main_hub/nonlive-firstcol.json
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"ypos": 199,
|
||||||
|
"xpos": 485,
|
||||||
|
"type": "match",
|
||||||
|
"height": 33,
|
||||||
|
"width": 33
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"width": 28,
|
||||||
|
"height": 34,
|
||||||
|
"ypos": 272,
|
||||||
|
"type": "match",
|
||||||
|
"xpos": 488
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ypos": 267,
|
||||||
|
"type": "match",
|
||||||
|
"xpos": 722,
|
||||||
|
"width": 34,
|
||||||
|
"height": 37
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_main_hub",
|
||||||
|
"ENV-DISTRI-fedora"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/main_hub/nonlive-firstcol.png
Normal file
After Width: | Height: | Size: 93 KiB |
30
needles/anaconda/main_hub/nonlive-othercols.json
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"ypos": 268,
|
||||||
|
"xpos": 248,
|
||||||
|
"type": "match",
|
||||||
|
"height": 33,
|
||||||
|
"width": 33
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "match",
|
||||||
|
"xpos": 244,
|
||||||
|
"ypos": 199,
|
||||||
|
"width": 41,
|
||||||
|
"height": 34
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ypos": 336,
|
||||||
|
"xpos": 246,
|
||||||
|
"type": "match",
|
||||||
|
"width": 34,
|
||||||
|
"height": 37
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_main_hub",
|
||||||
|
"ENV-DISTRI-fedora"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/main_hub/nonlive-othercols.png
Normal file
After Width: | Height: | Size: 94 KiB |
15
needles/anaconda/main_hub/root_password.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 247,
|
||||||
|
"ypos": 488,
|
||||||
|
"width": 35,
|
||||||
|
"height": 29,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_main_hub_root_password"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/main_hub/root_password.png
Normal file
After Width: | Height: | Size: 94 KiB |
15
needles/anaconda/main_hub/time_date.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 247,
|
||||||
|
"ypos": 345,
|
||||||
|
"width": 34,
|
||||||
|
"height": 33,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_main_hub_time_date"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/main_hub/time_date.png
Normal file
After Width: | Height: | Size: 96 KiB |
@ -523,6 +523,22 @@
|
|||||||
"START_AFTER_TEST": "%DEPLOY_UPLOAD_TEST%"
|
"START_AFTER_TEST": "%DEPLOY_UPLOAD_TEST%"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"anaconda_help": {
|
||||||
|
"profiles": {
|
||||||
|
"fedora-KDE-live-iso-x86_64-*-64bit": 40,
|
||||||
|
"fedora-Workstation-live-iso-x86_64-*-64bit": 40,
|
||||||
|
"fedora-Workstation-live-iso-ppc64le-*-ppc64le": 20,
|
||||||
|
"fedora-Silverblue-dvd_ostree-iso-ppc64le-*-ppc64le": 50,
|
||||||
|
"fedora-Silverblue-dvd_ostree-iso-x86_64-*-64bit": 50,
|
||||||
|
"fedora-Server-dvd-iso-aarch64-*-aarch64": 20,
|
||||||
|
"fedora-Server-dvd-iso-ppc64le-*-ppc64le": 20,
|
||||||
|
"fedora-Server-dvd-iso-x86_64-*-64bit": 20
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"ENTRYPOINT": "_boot_to_anaconda anaconda_help",
|
||||||
|
"HELPCHECK": "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"base_reboot_unmount": {
|
"base_reboot_unmount": {
|
||||||
"profiles": {
|
"profiles": {
|
||||||
"fedora-Cloud_Base-qcow2-qcow2-aarch64-*-aarch64": 20,
|
"fedora-Cloud_Base-qcow2-qcow2-aarch64-*-aarch64": 20,
|
||||||
|
@ -126,6 +126,7 @@ sub run {
|
|||||||
# wait for anaconda to appear; we click to work around
|
# wait for anaconda to appear; we click to work around
|
||||||
# RHBZ #1566066 if it happens
|
# RHBZ #1566066 if it happens
|
||||||
assert_and_click("anaconda_select_install_lang", timeout=>300);
|
assert_and_click("anaconda_select_install_lang", timeout=>300);
|
||||||
|
|
||||||
# Select install language
|
# Select install language
|
||||||
wait_screen_change { assert_and_click "anaconda_select_install_lang_input"; };
|
wait_screen_change { assert_and_click "anaconda_select_install_lang_input"; };
|
||||||
type_safely $language;
|
type_safely $language;
|
||||||
@ -133,6 +134,12 @@ sub run {
|
|||||||
# appropriate language, here
|
# appropriate language, here
|
||||||
assert_and_click "anaconda_select_install_lang_filtered";
|
assert_and_click "anaconda_select_install_lang_filtered";
|
||||||
assert_screen "anaconda_select_install_lang_selected", 10;
|
assert_screen "anaconda_select_install_lang_selected", 10;
|
||||||
|
# Check for Help on the Language selection pane, if HELPCHECK is
|
||||||
|
# required
|
||||||
|
if (get_var('HELPCHECK')) {
|
||||||
|
check_help_on_pane("language_selection");
|
||||||
|
}
|
||||||
|
|
||||||
assert_and_click "anaconda_select_install_lang_continue";
|
assert_and_click "anaconda_select_install_lang_continue";
|
||||||
|
|
||||||
# wait 180 secs for hub or Rawhide warning dialog to appear
|
# wait 180 secs for hub or Rawhide warning dialog to appear
|
||||||
|
72
tests/anaconda_help.pm
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
use base "anacondatest";
|
||||||
|
use strict;
|
||||||
|
use lockapi;
|
||||||
|
use testapi;
|
||||||
|
use utils;
|
||||||
|
use anaconda;
|
||||||
|
|
||||||
|
sub run {
|
||||||
|
# This test tests that Anaconda is able to show help for particular Anaconda screens.
|
||||||
|
# It opens various Anaconda panes, clicks on Help button, and checks that correct
|
||||||
|
# Help content is shown for that pane.
|
||||||
|
#
|
||||||
|
# Although this test performs Anaconda routines and it only partly performs the installation,
|
||||||
|
# therefore it is NOT to be considered an *installation test*.
|
||||||
|
#
|
||||||
|
# This tests should run after the _boot_to_anaconda test. Which should take us to Anaconda
|
||||||
|
# main hub.
|
||||||
|
# Now, we should be on Anaconda Main hub, but the hub differs for various
|
||||||
|
# installation media. For each such media (ServerDVD, WS Live, KDE Live),
|
||||||
|
# we create a tailored test plan.
|
||||||
|
#
|
||||||
|
# At first, we check for the main hub help.
|
||||||
|
check_help_on_pane("main");
|
||||||
|
|
||||||
|
# Create test plans
|
||||||
|
my @testplan;
|
||||||
|
# For LIVE KDE:
|
||||||
|
if ((get_var('LIVE')) && (get_var('DESKTOP') eq "kde")) {
|
||||||
|
@testplan = qw/keyboard_layout time_date install_destination network_host_name root_password create_user/;
|
||||||
|
}
|
||||||
|
# For LIVE Workstation
|
||||||
|
elsif ((get_var('LIVE')) && (get_var('DESKTOP') eq "gnome")) {
|
||||||
|
@testplan = qw/keyboard_layout install_destination time_date/;
|
||||||
|
}
|
||||||
|
# For Silverblue
|
||||||
|
elsif (get_var('DESKTOP') eq "gnome") {
|
||||||
|
@testplan = qw/keyboard_layout language_support install_destination time_date/;
|
||||||
|
}
|
||||||
|
# For ServerDVD
|
||||||
|
else {
|
||||||
|
@testplan = qw/keyboard_layout language_support time_date installation_source select_packages install_destination network_host_name root_password create_user/;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Iterate over test plan and do the tests.
|
||||||
|
foreach (@testplan) {
|
||||||
|
check_help_on_pane($_);
|
||||||
|
}
|
||||||
|
|
||||||
|
# Now, we will start the installation.
|
||||||
|
# As we have not created any root password, or any user, on non-live systems
|
||||||
|
# the Begin Installation button may be greyed out. If this is the situation,
|
||||||
|
# we will create the root password to override this.
|
||||||
|
unless (check_screen "anaconda_main_hub_begin_installation", 120) {
|
||||||
|
assert_and_click "anaconda_main_hub_root_password";
|
||||||
|
type_safely "weakrootpassword";
|
||||||
|
send_key "tab";
|
||||||
|
type_safely "weakrootpassword";
|
||||||
|
assert_and_click "anaconda_spoke_done";
|
||||||
|
}
|
||||||
|
# Begin installation
|
||||||
|
assert_and_click "anaconda_main_hub_begin_installation";
|
||||||
|
|
||||||
|
# Check the last Help screen. As
|
||||||
|
check_help_on_pane("installation_progress");
|
||||||
|
|
||||||
|
# As there is no need to proceed with the installation,
|
||||||
|
# the test ends here and the VM will be destroyed
|
||||||
|
# after some short time.
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
1;
|