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);
    # The alarm should switch off but should stay listed active.
    assert_screen("clocks_alarm_active");
    # Now toggle the switch to inactivate it.
    assert_and_click("gnome_button_toggle");
    assert_screen("clocks_alarm_inactive");
    # Delete alarm using the delete button.
    assert_and_click("gnome_button_cross_remove");
    if (check_screen("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: