1
0
mirror of https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git synced 2025-08-08 09:55:44 +00:00
os-autoinst-distri-fedora/tests/applications/calculator/calculator.pm
Lukáš Růžička 694997be49 Quickfix Calculator
Some of the buttons disappeared from the basic view of the applications.
This, for the times being, removes the operations that used these
buttons, for the application test to pass again.
2025-07-17 13:32:31 +02:00

100 lines
2.6 KiB
Perl

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'
);
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 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_brackets");
assert_and_click("calc_button_two");
assert_and_click("calc_button_add");
assert_and_click("calc_button_three");
assert_and_click("calc_button_brackets");
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: