blob: b46f829b6be57953f7eff1ef14b72ca3fda14134 [file] [log] [blame]
// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "src/sys/activity/activity_state_machine.h"
#include <fuchsia/ui/activity/cpp/fidl.h>
#include <gtest/gtest.h>
namespace activity {
TEST(ActivityStateMachine, BaseStateIdle) {
ActivityStateMachine state_machine;
EXPECT_EQ(state_machine.state(), fuchsia::ui::activity::State::IDLE);
}
TEST(ActivityStateMachine, ActiveToInactive) {
ActivityStateMachine state_machine;
state_machine.ReceiveEvent(Event::USER_INPUT);
EXPECT_EQ(state_machine.state(), fuchsia::ui::activity::State::ACTIVE);
// Subsequent events remain ACTIVE
state_machine.ReceiveEvent(Event::USER_INPUT);
EXPECT_EQ(state_machine.state(), fuchsia::ui::activity::State::ACTIVE);
state_machine.ReceiveEvent(Event::TIMEOUT);
EXPECT_EQ(state_machine.state(), fuchsia::ui::activity::State::IDLE);
// Timeouts are ignored while IDLE
state_machine.ReceiveEvent(Event::TIMEOUT);
EXPECT_EQ(state_machine.state(), fuchsia::ui::activity::State::IDLE);
}
} // namespace activity