1
0
mirror of https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git synced 2024-12-22 18:33:07 +00:00
os-autoinst-distri-fedora/tests/applications/clocks/alarm.pm
Adam Williamson cc832a4ad8 Fix new logic in Clocks test
Whoops, we can't just use a straight match_has_tag there as we
did another assert in the middle...

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-03-25 08:22:53 -07:00

66 lines
2.1 KiB
Perl

use base "installedtest";
use strict;
use testapi;
use utils;
# I as a user want to be able to add, edit and remove alarms.
sub run {
my $self = shift;
# Click on the Alarm button.
assert_and_click("clocks_button_alarm");
# Add a new alarm using the Add Alarm button
assert_and_click("clocks_button_add_alarm");
wait_still_screen(2);
type_very_safely("09");
send_key("tab");
type_very_safely("04");
assert_and_click("clocks_set_snooze");
assert_and_click("clocks_set_snooze_time");
assert_and_click("gnome_add_button");
assert_screen("clocks_alarm_active");
# Wait until the alarm goes on, two buttons will be shown. This should not take
# more than three minutes.
# A snooze button should become visible, click it.
assert_and_click("clocks_button_alarm_snooze", timeout => 240);
assert_screen("clocks_alarm_snooze_confirmed");
# After another minute or so, the alarm should ring again.
# This time we will use the stop button to stop it.
assert_and_click("clocks_button_alarm_stop", timeout => 120);
# Up to 46.0, the alarm would stay active after being stopped; from
# 46.0 onwards it goes inactive. FIXME this can be simplified to
# assume it starts at 'inactive' once we are no longer testing
# < 46.0 anywhere
assert_screen(["clocks_alarm_active", "clocks_alarm_inactive"]);
my $wasactive = match_has_tag("clocks_alarm_active");
# Now toggle the switch to change its state
assert_and_click("gnome_button_toggle");
# whichever state it was in, check it's now in the other
if ($wasactive) {
assert_screen("clocks_alarm_inactive");
}
else {
assert_screen("clocks_alarm_active");
}
# Delete alarm using the delete button.
assert_and_click("gnome_button_cross_remove");
sleep 2;
if (check_screen(["clocks_alarm_active", "clocks_alarm_inactive"])) {
die("The alarm should have been deleted but it is still visible in the GUI");
}
}
sub test_flags {
# Rollback after test is over.
return {always_rollback => 1};
}
1;
# vim: set sw=4 et: