mirror of
https://github.com/rocky-linux/os-autoinst-distri-rocky.git
synced 2024-11-23 13:41:26 +00:00
Calculator tests added
This commit is contained in:
parent
4cc86d7c38
commit
2bd20eed7c
26
tests/applications/calculator/aaa_setup.pm
Normal file
26
tests/applications/calculator/aaa_setup.pm
Normal file
@ -0,0 +1,26 @@
|
||||
use base "installedtest";
|
||||
use strict;
|
||||
use testapi;
|
||||
use utils;
|
||||
|
||||
# This script starts the Calculator and stores an image.
|
||||
|
||||
sub run {
|
||||
my $self = shift;
|
||||
# Set update notification timestamp
|
||||
set_update_notification_timestamp();
|
||||
# Run the application
|
||||
menu_launch_type("Calculator");
|
||||
assert_screen("apps_run_calculator");
|
||||
# wait for system to settle before snapshotting
|
||||
sleep 10;
|
||||
}
|
||||
|
||||
sub test_flags {
|
||||
return {fatal => 1, milestone => 1};
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
# vim: set sw=4 et:
|
||||
|
36
tests/applications/calculator/about.pm
Normal file
36
tests/applications/calculator/about.pm
Normal file
@ -0,0 +1,36 @@
|
||||
use base "installedtest";
|
||||
use strict;
|
||||
use testapi;
|
||||
use utils;
|
||||
|
||||
# This script checks that Gnome Calculator shows About.
|
||||
|
||||
sub run {
|
||||
my $self = shift;
|
||||
# Let's wait until everything settles down properly
|
||||
# before we start testing.
|
||||
sleep 5;
|
||||
# Open the menu and click on the About item.
|
||||
assert_and_click("gnome_burger_menu");
|
||||
wait_still_screen(2);
|
||||
assert_and_click("calc_menu_about");
|
||||
# Check that it is shown.
|
||||
assert_screen("calc_about_shown");
|
||||
# Click on the Credits button and check that it shows.
|
||||
unless (check_screen("gnome_button_credits", 30)) {
|
||||
send_key("pgdn");
|
||||
assert_screen("gnome_button_credits", 15);
|
||||
record_soft_failure("https://gitlab.gnome.org/GNOME/gnome-calculator/-/issues/419");
|
||||
}
|
||||
click_lastmatch;
|
||||
assert_screen("calc_credits_shown");
|
||||
}
|
||||
|
||||
sub test_flags {
|
||||
return {always_rollback => 1};
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
# vim: set sw=4 et:
|
||||
|
108
tests/applications/calculator/calculator.pm
Normal file
108
tests/applications/calculator/calculator.pm
Normal file
@ -0,0 +1,108 @@
|
||||
use base "installedtest";
|
||||
use strict;
|
||||
use testapi;
|
||||
use utils;
|
||||
|
||||
# This script checks that Gnome Calculator works in Basic mode.
|
||||
|
||||
# This subroutine rewrites the number into a word.
|
||||
sub rewrite {
|
||||
my $number = shift;
|
||||
my %numbers = (
|
||||
0 => 'zero',
|
||||
1 => 'one',
|
||||
2 => 'two',
|
||||
3 => 'three',
|
||||
4 => 'four',
|
||||
5 => 'five',
|
||||
6 => 'six',
|
||||
7 => 'seven',
|
||||
8 => 'eight',
|
||||
9 => 'nine',
|
||||
"." => 'divider',
|
||||
"%" => 'percent',
|
||||
"p" => 'pi',
|
||||
"r" => 'root',
|
||||
"s" => 'square'
|
||||
);
|
||||
my $rewritten = $numbers{$number};
|
||||
return $rewritten;
|
||||
}
|
||||
|
||||
# This subroutine performs the clicking of simple operations
|
||||
# in the Calculator.
|
||||
sub calculate {
|
||||
my ($a, $b, $operation) = @_;
|
||||
# Create lists of the numbers.
|
||||
my @first = split('', $a);
|
||||
my @second = split('', $b);
|
||||
|
||||
# For each digit of the first number, click on
|
||||
# the corresponding button.
|
||||
foreach (@first) {
|
||||
my $word = rewrite($_);
|
||||
assert_and_click("calc_button_$word");
|
||||
}
|
||||
# Click the operation button.
|
||||
assert_and_click("calc_button_$operation");
|
||||
# For each digit of the second number, click on
|
||||
# the corresponding button.
|
||||
foreach (@second) {
|
||||
my $word = rewrite($_);
|
||||
assert_and_click("calc_button_$word");
|
||||
}
|
||||
# Click on the Equals button
|
||||
assert_and_click("calc_button_equals");
|
||||
# Assert the result has appeared on the screen.
|
||||
my $identifier = hashed_string("$a-$operation-$b");
|
||||
assert_screen("calc_result_$identifier");
|
||||
# Clear the display.
|
||||
send_key("esc");
|
||||
}
|
||||
|
||||
sub run {
|
||||
my $self = shift;
|
||||
# Wait until everything settles.
|
||||
sleep 5;
|
||||
# Check that two numbers can be added.
|
||||
calculate("10", "23", "add");
|
||||
# Check that two numbers can be subtracted.
|
||||
calculate("67", "45", "sub");
|
||||
# Check that two numbers can be multiplied.
|
||||
calculate("9", "0.8", "multi");
|
||||
# Check that two numbers can be divided.
|
||||
calculate("77", "7", "div");
|
||||
# Check that two numbers can be divided using modulo.
|
||||
calculate("28", "5", "mod");
|
||||
# Check that you can count with Pi
|
||||
calculate("p", "10", "multi");
|
||||
# Check that you can use a root
|
||||
calculate("r144", "10", "add");
|
||||
# Check that you can use square
|
||||
calculate("12s", "44", "sub");
|
||||
# Check that you can use percents
|
||||
calculate("33%", "90", "multi");
|
||||
|
||||
# Check that you can use brackets
|
||||
assert_and_click("calc_button_three");
|
||||
assert_and_click("calc_button_multi");
|
||||
assert_and_click("calc_button_bopen");
|
||||
assert_and_click("calc_button_two");
|
||||
assert_and_click("calc_button_add");
|
||||
assert_and_click("calc_button_three");
|
||||
assert_and_click("calc_button_bclose");
|
||||
assert_and_click("calc_button_equals");
|
||||
my $identifier = hashed_string("3*(3+2)");
|
||||
assert_screen("calc_result_$identifier");
|
||||
send_key("esc");
|
||||
|
||||
}
|
||||
|
||||
sub test_flags {
|
||||
return {fatal => 1};
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
# vim: set sw=4 et:
|
||||
|
33
tests/applications/calculator/help.pm
Normal file
33
tests/applications/calculator/help.pm
Normal file
@ -0,0 +1,33 @@
|
||||
use base "installedtest";
|
||||
use strict;
|
||||
use testapi;
|
||||
use utils;
|
||||
|
||||
# This script checks that Gnome Calculator shows help.
|
||||
|
||||
sub run {
|
||||
my $self = shift;
|
||||
# Wait until everything settles.
|
||||
sleep 5;
|
||||
# Open Help
|
||||
send_key("f1");
|
||||
wait_still_screen(2);
|
||||
|
||||
# Browse through a couple of links and
|
||||
# check they are not empty.
|
||||
assert_and_click("calc_help_using_keyboard");
|
||||
assert_screen("calc_help_keyboard");
|
||||
assert_and_click("calc_help_main_view");
|
||||
assert_and_click("calc_help_using_factorial");
|
||||
assert_screen("calc_help_factorial");
|
||||
assert_and_click("calc_help_main_view");
|
||||
}
|
||||
|
||||
sub test_flags {
|
||||
return {always_rollback => 1};
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
# vim: set sw=4 et:
|
||||
|
Loading…
Reference in New Issue
Block a user