diff --git a/VARIABLES.md b/VARIABLES.md index a9e6f061..69eb6704 100644 --- a/VARIABLES.md +++ b/VARIABLES.md @@ -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 | `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 | +| `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 | | `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) | diff --git a/check-needles.py b/check-needles.py index 01cfd848..c108c8cf 100755 --- a/check-needles.py +++ b/check-needles.py @@ -102,6 +102,14 @@ for fsys in ("ext3", "xfs", "ext4"): testliterals.append(f"anaconda_part_fs_{fsys}_selected") # variable-y in custom_change_device but we only have one value 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 ret = 0 diff --git a/lib/anaconda.pm b/lib/anaconda.pm index 07a165f8..1f400a82 100644 --- a/lib/anaconda.pm +++ b/lib/anaconda.pm @@ -8,7 +8,7 @@ use Exporter; use testapi; 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 { # Handles disk selection. Has one optional argument - number of @@ -307,3 +307,50 @@ sub get_full_repo { sub get_mirrorlist_url { 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"; + } +} + diff --git a/needles/anaconda/help/help_button.json b/needles/anaconda/help/help_button.json new file mode 100644 index 00000000..80e82cc3 --- /dev/null +++ b/needles/anaconda/help/help_button.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 955, + "ypos": 52, + "width": 39, + "height": 17, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_help_button" + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_button.png b/needles/anaconda/help/help_button.png new file mode 100644 index 00000000..302cdda5 Binary files /dev/null and b/needles/anaconda/help/help_button.png differ diff --git a/needles/anaconda/help/help_create_user.json b/needles/anaconda/help/help_create_user.json new file mode 100644 index 00000000..755d0b16 --- /dev/null +++ b/needles/anaconda/help/help_create_user.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 44, + "ypos": 174, + "width": 184, + "height": 26, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_help_create_user" + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_create_user.png b/needles/anaconda/help/help_create_user.png new file mode 100644 index 00000000..f8a8c76d Binary files /dev/null and b/needles/anaconda/help/help_create_user.png differ diff --git a/needles/anaconda/help/help_installation_destination-20210518.json b/needles/anaconda/help/help_installation_destination-20210518.json new file mode 100644 index 00000000..8d3f912a --- /dev/null +++ b/needles/anaconda/help/help_installation_destination-20210518.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 10, + "ypos": 95, + "width": 374, + "height": 39, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_help_install_destination" + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_installation_destination-20210518.png b/needles/anaconda/help/help_installation_destination-20210518.png new file mode 100644 index 00000000..a0298f31 Binary files /dev/null and b/needles/anaconda/help/help_installation_destination-20210518.png differ diff --git a/needles/anaconda/help/help_installation_destination.json b/needles/anaconda/help/help_installation_destination.json new file mode 100644 index 00000000..a8cf5574 --- /dev/null +++ b/needles/anaconda/help/help_installation_destination.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 42, + "ypos": 173, + "width": 364, + "height": 25, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_help_install_destination" + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_installation_destination.png b/needles/anaconda/help/help_installation_destination.png new file mode 100644 index 00000000..aa4ad883 Binary files /dev/null and b/needles/anaconda/help/help_installation_destination.png differ diff --git a/needles/anaconda/help/help_installation_progress-20210518.json b/needles/anaconda/help/help_installation_progress-20210518.json new file mode 100644 index 00000000..91b80c58 --- /dev/null +++ b/needles/anaconda/help/help_installation_progress-20210518.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "type": "match", + "ypos": 95, + "xpos": 303, + "width": 337, + "height": 40 + } + ], + "properties": [], + "tags": [ + "anaconda_help_installation_progress" + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_installation_progress-20210518.png b/needles/anaconda/help/help_installation_progress-20210518.png new file mode 100644 index 00000000..b097aea6 Binary files /dev/null and b/needles/anaconda/help/help_installation_progress-20210518.png differ diff --git a/needles/anaconda/help/help_installation_progress.json b/needles/anaconda/help/help_installation_progress.json new file mode 100644 index 00000000..15197cc6 --- /dev/null +++ b/needles/anaconda/help/help_installation_progress.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 336, + "ypos": 171, + "width": 319, + "height": 33, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_help_installation_progress" + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_installation_progress.png b/needles/anaconda/help/help_installation_progress.png new file mode 100644 index 00000000..7d852b95 Binary files /dev/null and b/needles/anaconda/help/help_installation_progress.png differ diff --git a/needles/anaconda/help/help_installation_source.json b/needles/anaconda/help/help_installation_source.json new file mode 100644 index 00000000..083bd794 --- /dev/null +++ b/needles/anaconda/help/help_installation_source.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 41, + "ypos": 172, + "width": 293, + "height": 28, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_help_installation_source" + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_installation_source.png b/needles/anaconda/help/help_installation_source.png new file mode 100644 index 00000000..41fc812e Binary files /dev/null and b/needles/anaconda/help/help_installation_source.png differ diff --git a/needles/anaconda/help/help_keyboard_layout-20210518.json b/needles/anaconda/help/help_keyboard_layout-20210518.json new file mode 100644 index 00000000..2cac26f1 --- /dev/null +++ b/needles/anaconda/help/help_keyboard_layout-20210518.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "height": 41, + "width": 272, + "xpos": 11, + "type": "match", + "ypos": 93 + } + ], + "properties": [], + "tags": [ + "anaconda_help_keyboard_layout" + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_keyboard_layout-20210518.png b/needles/anaconda/help/help_keyboard_layout-20210518.png new file mode 100644 index 00000000..ed08f25b Binary files /dev/null and b/needles/anaconda/help/help_keyboard_layout-20210518.png differ diff --git a/needles/anaconda/help/help_keyboard_layout.json b/needles/anaconda/help/help_keyboard_layout.json new file mode 100644 index 00000000..2c83e2d3 --- /dev/null +++ b/needles/anaconda/help/help_keyboard_layout.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 40, + "ypos": 172, + "width": 267, + "height": 31, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_help_keyboard_layout" + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_keyboard_layout.png b/needles/anaconda/help/help_keyboard_layout.png new file mode 100644 index 00000000..d14e20ae Binary files /dev/null and b/needles/anaconda/help/help_keyboard_layout.png differ diff --git a/needles/anaconda/help/help_language.json b/needles/anaconda/help/help_language.json new file mode 100644 index 00000000..98650861 --- /dev/null +++ b/needles/anaconda/help/help_language.json @@ -0,0 +1,15 @@ +{ + "properties": [], + "tags": [ + "anaconda_help_language" + ], + "area": [ + { + "xpos": 380, + "ypos": 170, + "width": 312, + "height": 32, + "type": "match" + } + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_language.png b/needles/anaconda/help/help_language.png new file mode 100644 index 00000000..4a1ac2b5 Binary files /dev/null and b/needles/anaconda/help/help_language.png differ diff --git a/needles/anaconda/help/help_language_selection-20210518.json b/needles/anaconda/help/help_language_selection-20210518.json new file mode 100644 index 00000000..87892bee --- /dev/null +++ b/needles/anaconda/help/help_language_selection-20210518.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "height": 38, + "width": 313, + "xpos": 353, + "ypos": 97, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_help_language_selection" + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_language_selection-20210518.png b/needles/anaconda/help/help_language_selection-20210518.png new file mode 100644 index 00000000..38731a96 Binary files /dev/null and b/needles/anaconda/help/help_language_selection-20210518.png differ diff --git a/needles/anaconda/help/help_language_selection.json b/needles/anaconda/help/help_language_selection.json new file mode 100644 index 00000000..7a11d8d5 --- /dev/null +++ b/needles/anaconda/help/help_language_selection.json @@ -0,0 +1,15 @@ +{ + "properties": [], + "tags": [ + "anaconda_help_language_selection" + ], + "area": [ + { + "xpos": 379, + "ypos": 168, + "width": 313, + "height": 38, + "type": "match" + } + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_language_selection.png b/needles/anaconda/help/help_language_selection.png new file mode 100644 index 00000000..847c43dc Binary files /dev/null and b/needles/anaconda/help/help_language_selection.png differ diff --git a/needles/anaconda/help/help_language_support.json b/needles/anaconda/help/help_language_support.json new file mode 100644 index 00000000..c6b88bc5 --- /dev/null +++ b/needles/anaconda/help/help_language_support.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 43, + "ypos": 173, + "width": 291, + "height": 30, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_help_language_support" + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_language_support.png b/needles/anaconda/help/help_language_support.png new file mode 100644 index 00000000..57d07b29 Binary files /dev/null and b/needles/anaconda/help/help_language_support.png differ diff --git a/needles/anaconda/help/help_network_hostname.json b/needles/anaconda/help/help_network_hostname.json new file mode 100644 index 00000000..2ec0bf7c --- /dev/null +++ b/needles/anaconda/help/help_network_hostname.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 40, + "ypos": 170, + "width": 334, + "height": 30, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_help_network_host_name" + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_network_hostname.png b/needles/anaconda/help/help_network_hostname.png new file mode 100644 index 00000000..49c96662 Binary files /dev/null and b/needles/anaconda/help/help_network_hostname.png differ diff --git a/needles/anaconda/help/help_progress-20210518.json b/needles/anaconda/help/help_progress-20210518.json new file mode 100644 index 00000000..ebe7973c --- /dev/null +++ b/needles/anaconda/help/help_progress-20210518.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "type": "match", + "ypos": 96, + "xpos": 301, + "width": 335, + "height": 40 + } + ], + "properties": [], + "tags": [ + "anaconda_help_progress" + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_progress-20210518.png b/needles/anaconda/help/help_progress-20210518.png new file mode 100644 index 00000000..1b398d53 Binary files /dev/null and b/needles/anaconda/help/help_progress-20210518.png differ diff --git a/needles/anaconda/help/help_progress.json b/needles/anaconda/help/help_progress.json new file mode 100644 index 00000000..ecbb22c7 --- /dev/null +++ b/needles/anaconda/help/help_progress.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 333, + "ypos": 172, + "width": 319, + "height": 31, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_help_progress" + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_progress.png b/needles/anaconda/help/help_progress.png new file mode 100644 index 00000000..4afac366 Binary files /dev/null and b/needles/anaconda/help/help_progress.png differ diff --git a/needles/anaconda/help/help_progress_link-20210518.json b/needles/anaconda/help/help_progress_link-20210518.json new file mode 100644 index 00000000..ac8e64cb --- /dev/null +++ b/needles/anaconda/help/help_progress_link-20210518.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "height": 17, + "width": 143, + "xpos": 137, + "ypos": 727, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_help_progress_link" + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_progress_link-20210518.png b/needles/anaconda/help/help_progress_link-20210518.png new file mode 100644 index 00000000..9bc7c362 Binary files /dev/null and b/needles/anaconda/help/help_progress_link-20210518.png differ diff --git a/needles/anaconda/help/help_progress_link.json b/needles/anaconda/help/help_progress_link.json new file mode 100644 index 00000000..2818f196 --- /dev/null +++ b/needles/anaconda/help/help_progress_link.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 205, + "ypos": 718, + "width": 129, + "height": 11, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_help_progress_link" + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_progress_link.png b/needles/anaconda/help/help_progress_link.png new file mode 100644 index 00000000..1457686e Binary files /dev/null and b/needles/anaconda/help/help_progress_link.png differ diff --git a/needles/anaconda/help/help_quit.json b/needles/anaconda/help/help_quit.json new file mode 100644 index 00000000..8dd7aaad --- /dev/null +++ b/needles/anaconda/help/help_quit.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 966, + "ypos": 81, + "width": 16, + "height": 13, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_help_quit" + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_quit.png b/needles/anaconda/help/help_quit.png new file mode 100644 index 00000000..4afac366 Binary files /dev/null and b/needles/anaconda/help/help_quit.png differ diff --git a/needles/anaconda/help/help_quit_kde.json b/needles/anaconda/help/help_quit_kde.json new file mode 100644 index 00000000..1d5ac110 --- /dev/null +++ b/needles/anaconda/help/help_quit_kde.json @@ -0,0 +1,15 @@ +{ + "properties": [], + "tags": [ + "anaconda_help_quit" + ], + "area": [ + { + "xpos": 968, + "ypos": 52, + "width": 21, + "height": 20, + "type": "match" + } + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_quit_kde.png b/needles/anaconda/help/help_quit_kde.png new file mode 100644 index 00000000..e5f74979 Binary files /dev/null and b/needles/anaconda/help/help_quit_kde.png differ diff --git a/needles/anaconda/help/help_root_password.json b/needles/anaconda/help/help_root_password.json new file mode 100644 index 00000000..65776674 --- /dev/null +++ b/needles/anaconda/help/help_root_password.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 40, + "ypos": 170, + "width": 232, + "height": 31, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_help_root_password" + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_root_password.png b/needles/anaconda/help/help_root_password.png new file mode 100644 index 00000000..c06c5e4a Binary files /dev/null and b/needles/anaconda/help/help_root_password.png differ diff --git a/needles/anaconda/help/help_software_selection.json b/needles/anaconda/help/help_software_selection.json new file mode 100644 index 00000000..549b70dd --- /dev/null +++ b/needles/anaconda/help/help_software_selection.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 41, + "ypos": 172, + "width": 294, + "height": 26, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_help_select_packages" + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_software_selection.png b/needles/anaconda/help/help_software_selection.png new file mode 100644 index 00000000..85d4bb3c Binary files /dev/null and b/needles/anaconda/help/help_software_selection.png differ diff --git a/needles/anaconda/help/help_summary-20210518.json b/needles/anaconda/help/help_summary-20210518.json new file mode 100644 index 00000000..edc48df0 --- /dev/null +++ b/needles/anaconda/help/help_summary-20210518.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "ypos": 99, + "type": "match", + "xpos": 12, + "width": 342, + "height": 35 + } + ], + "properties": [], + "tags": [ + "anaconda_help_summary" + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_summary-20210518.png b/needles/anaconda/help/help_summary-20210518.png new file mode 100644 index 00000000..31d57b16 Binary files /dev/null and b/needles/anaconda/help/help_summary-20210518.png differ diff --git a/needles/anaconda/help/help_summary.json b/needles/anaconda/help/help_summary.json new file mode 100644 index 00000000..76bd78d3 --- /dev/null +++ b/needles/anaconda/help/help_summary.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 40, + "ypos": 170, + "width": 342, + "height": 35, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_help_summary" + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_summary.png b/needles/anaconda/help/help_summary.png new file mode 100644 index 00000000..1457686e Binary files /dev/null and b/needles/anaconda/help/help_summary.png differ diff --git a/needles/anaconda/help/help_summary_link.json b/needles/anaconda/help/help_summary_link.json new file mode 100644 index 00000000..cd915260 --- /dev/null +++ b/needles/anaconda/help/help_summary_link.json @@ -0,0 +1,15 @@ +{ + "properties": [], + "tags": [ + "anaconda_help_summary_link" + ], + "area": [ + { + "xpos": 683, + "ypos": 446, + "width": 142, + "height": 14, + "type": "match" + } + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_summary_link.png b/needles/anaconda/help/help_summary_link.png new file mode 100644 index 00000000..4a1ac2b5 Binary files /dev/null and b/needles/anaconda/help/help_summary_link.png differ diff --git a/needles/anaconda/help/help_time_date-20210518.json b/needles/anaconda/help/help_time_date-20210518.json new file mode 100644 index 00000000..37620be1 --- /dev/null +++ b/needles/anaconda/help/help_time_date-20210518.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 12, + "ypos": 99, + "type": "match", + "height": 30, + "width": 196 + } + ], + "properties": [], + "tags": [ + "anaconda_help_time_date" + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_time_date-20210518.png b/needles/anaconda/help/help_time_date-20210518.png new file mode 100644 index 00000000..0b6d4427 Binary files /dev/null and b/needles/anaconda/help/help_time_date-20210518.png differ diff --git a/needles/anaconda/help/help_time_date.json b/needles/anaconda/help/help_time_date.json new file mode 100644 index 00000000..29ee1264 --- /dev/null +++ b/needles/anaconda/help/help_time_date.json @@ -0,0 +1,15 @@ +{ + "properties": [], + "tags": [ + "anaconda_help_time_date" + ], + "area": [ + { + "xpos": 43, + "ypos": 171, + "width": 196, + "height": 30, + "type": "match" + } + ] +} \ No newline at end of file diff --git a/needles/anaconda/help/help_time_date.png b/needles/anaconda/help/help_time_date.png new file mode 100644 index 00000000..a2fdfa2f Binary files /dev/null and b/needles/anaconda/help/help_time_date.png differ diff --git a/needles/anaconda/main_hub/create_user.json b/needles/anaconda/main_hub/create_user.json new file mode 100644 index 00000000..9f951d99 --- /dev/null +++ b/needles/anaconda/main_hub/create_user.json @@ -0,0 +1,15 @@ +{ + "properties": [], + "tags": [ + "anaconda_main_hub_create_user" + ], + "area": [ + { + "xpos": 248, + "ypos": 556, + "width": 32, + "height": 33, + "type": "match" + } + ] +} \ No newline at end of file diff --git a/needles/anaconda/main_hub/create_user.png b/needles/anaconda/main_hub/create_user.png new file mode 100644 index 00000000..1bc27633 Binary files /dev/null and b/needles/anaconda/main_hub/create_user.png differ diff --git a/needles/anaconda/main_hub/keyboard_layout.json b/needles/anaconda/main_hub/keyboard_layout.json new file mode 100644 index 00000000..04edd9c3 --- /dev/null +++ b/needles/anaconda/main_hub/keyboard_layout.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 248, + "ypos": 207, + "width": 29, + "height": 28, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_main_hub_keyboard_layout" + ] +} \ No newline at end of file diff --git a/needles/anaconda/main_hub/keyboard_layout.png b/needles/anaconda/main_hub/keyboard_layout.png new file mode 100644 index 00000000..1478f290 Binary files /dev/null and b/needles/anaconda/main_hub/keyboard_layout.png differ diff --git a/needles/anaconda/main_hub/language_support.json b/needles/anaconda/main_hub/language_support.json new file mode 100644 index 00000000..2d77820d --- /dev/null +++ b/needles/anaconda/main_hub/language_support.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 249, + "ypos": 276, + "width": 31, + "height": 28, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_main_hub_language_support" + ] +} \ No newline at end of file diff --git a/needles/anaconda/main_hub/language_support.png b/needles/anaconda/main_hub/language_support.png new file mode 100644 index 00000000..278f83ae Binary files /dev/null and b/needles/anaconda/main_hub/language_support.png differ diff --git a/needles/anaconda/main_hub/live_clicked_key.json b/needles/anaconda/main_hub/live_clicked_key.json new file mode 100644 index 00000000..0ac25172 --- /dev/null +++ b/needles/anaconda/main_hub/live_clicked_key.json @@ -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" + ] +} \ No newline at end of file diff --git a/needles/anaconda/main_hub/live_clicked_key.png b/needles/anaconda/main_hub/live_clicked_key.png new file mode 100644 index 00000000..90641901 Binary files /dev/null and b/needles/anaconda/main_hub/live_clicked_key.png differ diff --git a/needles/anaconda/main_hub/live_clicked_time.json b/needles/anaconda/main_hub/live_clicked_time.json new file mode 100644 index 00000000..8be6204f --- /dev/null +++ b/needles/anaconda/main_hub/live_clicked_time.json @@ -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" + ] +} \ No newline at end of file diff --git a/needles/anaconda/main_hub/live_clicked_time.png b/needles/anaconda/main_hub/live_clicked_time.png new file mode 100644 index 00000000..60cd94a6 Binary files /dev/null and b/needles/anaconda/main_hub/live_clicked_time.png differ diff --git a/needles/anaconda/main_hub/nonlive-firstcol.json b/needles/anaconda/main_hub/nonlive-firstcol.json new file mode 100644 index 00000000..19cdba53 --- /dev/null +++ b/needles/anaconda/main_hub/nonlive-firstcol.json @@ -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" + ] +} \ No newline at end of file diff --git a/needles/anaconda/main_hub/nonlive-firstcol.png b/needles/anaconda/main_hub/nonlive-firstcol.png new file mode 100644 index 00000000..cdc88efe Binary files /dev/null and b/needles/anaconda/main_hub/nonlive-firstcol.png differ diff --git a/needles/anaconda/main_hub/nonlive-othercols.json b/needles/anaconda/main_hub/nonlive-othercols.json new file mode 100644 index 00000000..a4d08fdc --- /dev/null +++ b/needles/anaconda/main_hub/nonlive-othercols.json @@ -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" + ] +} \ No newline at end of file diff --git a/needles/anaconda/main_hub/nonlive-othercols.png b/needles/anaconda/main_hub/nonlive-othercols.png new file mode 100644 index 00000000..39205b46 Binary files /dev/null and b/needles/anaconda/main_hub/nonlive-othercols.png differ diff --git a/needles/anaconda/main_hub/root_password.json b/needles/anaconda/main_hub/root_password.json new file mode 100644 index 00000000..f59fca13 --- /dev/null +++ b/needles/anaconda/main_hub/root_password.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 247, + "ypos": 488, + "width": 35, + "height": 29, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_main_hub_root_password" + ] +} \ No newline at end of file diff --git a/needles/anaconda/main_hub/root_password.png b/needles/anaconda/main_hub/root_password.png new file mode 100644 index 00000000..10b80a7b Binary files /dev/null and b/needles/anaconda/main_hub/root_password.png differ diff --git a/needles/anaconda/main_hub/time_date.json b/needles/anaconda/main_hub/time_date.json new file mode 100644 index 00000000..a32120d1 --- /dev/null +++ b/needles/anaconda/main_hub/time_date.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 247, + "ypos": 345, + "width": 34, + "height": 33, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_main_hub_time_date" + ] +} \ No newline at end of file diff --git a/needles/anaconda/main_hub/time_date.png b/needles/anaconda/main_hub/time_date.png new file mode 100644 index 00000000..1fdc5407 Binary files /dev/null and b/needles/anaconda/main_hub/time_date.png differ diff --git a/templates.fif.json b/templates.fif.json index 10e69ebd..5774d7c4 100644 --- a/templates.fif.json +++ b/templates.fif.json @@ -523,6 +523,22 @@ "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": { "profiles": { "fedora-Cloud_Base-qcow2-qcow2-aarch64-*-aarch64": 20, diff --git a/tests/_boot_to_anaconda.pm b/tests/_boot_to_anaconda.pm index 806bd64e..4c42c4c1 100644 --- a/tests/_boot_to_anaconda.pm +++ b/tests/_boot_to_anaconda.pm @@ -126,6 +126,7 @@ sub run { # wait for anaconda to appear; we click to work around # RHBZ #1566066 if it happens assert_and_click("anaconda_select_install_lang", timeout=>300); + # Select install language wait_screen_change { assert_and_click "anaconda_select_install_lang_input"; }; type_safely $language; @@ -133,6 +134,12 @@ sub run { # appropriate language, here assert_and_click "anaconda_select_install_lang_filtered"; 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"; # wait 180 secs for hub or Rawhide warning dialog to appear diff --git a/tests/anaconda_help.pm b/tests/anaconda_help.pm new file mode 100644 index 00000000..202a72b0 --- /dev/null +++ b/tests/anaconda_help.pm @@ -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;