1
0
mirror of https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git synced 2024-10-05 11:17:23 +00:00
os-autoinst-distri-fedora/tests/applications/clocks/alarm.pm
Adam Williamson 8ebf3bdddb Tweak Clocks alarm test for change in upstream code
Upstream now sets an alarm with no explicit recurrence inactive
after it is stopped (previously it assumed recurrence every day).
We need the test to handle both behaviours for a while (until
we are no longer testing < 46.0 anywhere).

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-03-24 09:47:21 -07:00

65 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"]);
# 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 (match_has_tag("clocks_alarm_active")) {
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: