mirror of
				https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git
				synced 2025-11-04 00:55:59 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			98 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
use base "installedtest";
 | 
						|
use strict;
 | 
						|
use testapi;
 | 
						|
use utils;
 | 
						|
 | 
						|
# This script checks that KCalc 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 KCalc.
 | 
						|
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("kcalc_button_$word");
 | 
						|
    }
 | 
						|
    # Click the operation button.
 | 
						|
    assert_and_click("kcalc_button_$operation");
 | 
						|
    # For each digit of the second number, click on
 | 
						|
    # the corresponding button.
 | 
						|
    foreach (@second) {
 | 
						|
        my $word = rewrite($_);
 | 
						|
        assert_and_click("kcalc_button_$word");
 | 
						|
    }
 | 
						|
    # Click on the Equals button
 | 
						|
    assert_and_click("kcalc_button_equals");
 | 
						|
    # Assert the result has appeared on the screen.
 | 
						|
    my $identifier = hashed_string("$a-$operation-$b");
 | 
						|
    assert_screen("kcalc_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 you can use percents
 | 
						|
    calculate("33%", "90", "multi");
 | 
						|
 | 
						|
    # Check that you can use brackets
 | 
						|
    assert_and_click("kcalc_button_three");
 | 
						|
    assert_and_click("kcalc_button_multi");
 | 
						|
    assert_and_click("kcalc_button_bopen");
 | 
						|
    assert_and_click("kcalc_button_two");
 | 
						|
    assert_and_click("kcalc_button_add");
 | 
						|
    assert_and_click("kcalc_button_three");
 | 
						|
    assert_and_click("kcalc_button_bclose");
 | 
						|
    assert_and_click("kcalc_button_equals");
 | 
						|
    my $identifier = hashed_string("3*(3+2)");
 | 
						|
    assert_screen("kcalc_result_$identifier");
 | 
						|
    send_key("esc");
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
sub test_flags {
 | 
						|
    return {fatal => 1};
 | 
						|
}
 | 
						|
 | 
						|
1;
 | 
						|
 | 
						|
# vim: set sw=4 et:
 | 
						|
 |