| Index: components/mus/ws/user_activity_monitor_unittest.cc
|
| diff --git a/components/mus/ws/user_activity_monitor_unittest.cc b/components/mus/ws/user_activity_monitor_unittest.cc
|
| deleted file mode 100644
|
| index 6c26ead8608fc2625ebaab4c240662479986b0b9..0000000000000000000000000000000000000000
|
| --- a/components/mus/ws/user_activity_monitor_unittest.cc
|
| +++ /dev/null
|
| @@ -1,218 +0,0 @@
|
| -// Copyright 2016 The Chromium 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 "components/mus/ws/user_activity_monitor.h"
|
| -
|
| -#include "base/message_loop/message_loop.h"
|
| -#include "base/run_loop.h"
|
| -#include "base/test/simple_test_tick_clock.h"
|
| -#include "base/test/test_mock_time_task_runner.h"
|
| -#include "components/mus/ws/test_utils.h"
|
| -#include "mojo/public/cpp/bindings/interface_request.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -using mus::mojom::UserIdleObserver;
|
| -
|
| -namespace mus {
|
| -namespace ws {
|
| -namespace test {
|
| -
|
| -class TestUserActivityObserver : public mojom::UserActivityObserver {
|
| - public:
|
| - TestUserActivityObserver() : binding_(this) {}
|
| - ~TestUserActivityObserver() override {}
|
| -
|
| - mojom::UserActivityObserverPtr GetPtr() {
|
| - return binding_.CreateInterfacePtrAndBind();
|
| - }
|
| -
|
| - bool GetAndResetReceivedUserActivity() {
|
| - bool val = received_user_activity_;
|
| - received_user_activity_ = false;
|
| - return val;
|
| - }
|
| -
|
| - private:
|
| - // mojom::UserActivityObserver:
|
| - void OnUserActivity() override { received_user_activity_ = true; }
|
| -
|
| - mojo::Binding<mojom::UserActivityObserver> binding_;
|
| - bool received_user_activity_ = false;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(TestUserActivityObserver);
|
| -};
|
| -
|
| -class TestUserIdleObserver : public mojom::UserIdleObserver {
|
| - public:
|
| - TestUserIdleObserver() : binding_(this) {}
|
| - ~TestUserIdleObserver() override {}
|
| -
|
| - mojom::UserIdleObserverPtr GetPtr() {
|
| - return binding_.CreateInterfacePtrAndBind();
|
| - }
|
| -
|
| - bool GetAndResetIdleState(UserIdleObserver::IdleState* state) {
|
| - if (!received_idle_state_)
|
| - return false;
|
| - received_idle_state_ = false;
|
| - *state = idle_state_;
|
| - return true;
|
| - }
|
| -
|
| - private:
|
| - // mojom::UserIdleObserver:
|
| - void OnUserIdleStateChanged(UserIdleObserver::IdleState new_state) override {
|
| - received_idle_state_ = true;
|
| - idle_state_ = new_state;
|
| - }
|
| -
|
| - mojo::Binding<mojom::UserIdleObserver> binding_;
|
| - bool received_idle_state_ = false;
|
| - UserIdleObserver::IdleState idle_state_ = UserIdleObserver::IdleState::ACTIVE;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(TestUserIdleObserver);
|
| -};
|
| -
|
| -class UserActivityMonitorTest : public testing::Test {
|
| - public:
|
| - UserActivityMonitorTest() {}
|
| - ~UserActivityMonitorTest() override {}
|
| -
|
| - UserActivityMonitor* monitor() { return monitor_.get(); }
|
| -
|
| - void FastForwardBy(base::TimeDelta delta) {
|
| - task_runner_->FastForwardBy(delta);
|
| - }
|
| - void RunUntilIdle() { task_runner_->RunUntilIdle(); }
|
| -
|
| - private:
|
| - // testing::Test:
|
| - void SetUp() override {
|
| - task_runner_ = make_scoped_refptr(new base::TestMockTimeTaskRunner(
|
| - base::Time::Now(), base::TimeTicks::Now()));
|
| - message_loop_.SetTaskRunner(task_runner_);
|
| - monitor_.reset(new UserActivityMonitor(task_runner_->GetMockTickClock()));
|
| - }
|
| -
|
| - base::MessageLoop message_loop_;
|
| - scoped_refptr<base::TestMockTimeTaskRunner> task_runner_;
|
| - std::unique_ptr<UserActivityMonitor> monitor_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(UserActivityMonitorTest);
|
| -};
|
| -
|
| -TEST_F(UserActivityMonitorTest, UserActivityObserver) {
|
| - TestUserActivityObserver first_observer, second_observer;
|
| - monitor()->AddUserActivityObserver(3, first_observer.GetPtr());
|
| - monitor()->AddUserActivityObserver(4, second_observer.GetPtr());
|
| -
|
| - // The first activity should notify both observers.
|
| - monitor()->OnUserActivity();
|
| - RunUntilIdle();
|
| - EXPECT_TRUE(first_observer.GetAndResetReceivedUserActivity());
|
| - EXPECT_TRUE(second_observer.GetAndResetReceivedUserActivity());
|
| -
|
| - // The next activity after just one second should not notify either observer.
|
| - FastForwardBy(base::TimeDelta::FromSeconds(1));
|
| - monitor()->OnUserActivity();
|
| - RunUntilIdle();
|
| - EXPECT_FALSE(first_observer.GetAndResetReceivedUserActivity());
|
| - EXPECT_FALSE(second_observer.GetAndResetReceivedUserActivity());
|
| -
|
| - FastForwardBy(base::TimeDelta::FromMilliseconds(2001));
|
| - monitor()->OnUserActivity();
|
| - RunUntilIdle();
|
| - EXPECT_TRUE(first_observer.GetAndResetReceivedUserActivity());
|
| - EXPECT_FALSE(second_observer.GetAndResetReceivedUserActivity());
|
| -
|
| - FastForwardBy(base::TimeDelta::FromSeconds(1));
|
| - monitor()->OnUserActivity();
|
| - RunUntilIdle();
|
| - EXPECT_FALSE(first_observer.GetAndResetReceivedUserActivity());
|
| - EXPECT_TRUE(second_observer.GetAndResetReceivedUserActivity());
|
| -}
|
| -
|
| -// Tests that idleness observers receive the correct notification upon
|
| -// connection.
|
| -TEST_F(UserActivityMonitorTest, UserIdleObserverConnectNotification) {
|
| - UserIdleObserver::IdleState idle_state;
|
| -
|
| - // If an observer is added without any user activity, then it still receives
|
| - // an ACTIVE notification immediately.
|
| - TestUserIdleObserver first_observer;
|
| - monitor()->AddUserIdleObserver(1, first_observer.GetPtr());
|
| - RunUntilIdle();
|
| - EXPECT_TRUE(first_observer.GetAndResetIdleState(&idle_state));
|
| - EXPECT_EQ(UserIdleObserver::IdleState::ACTIVE, idle_state);
|
| -
|
| - // If an observer is added without any user activity and the system has been
|
| - // idle, then the observer receives an IDLE notification immediately.
|
| - FastForwardBy(base::TimeDelta::FromMinutes(5));
|
| - TestUserIdleObserver second_observer;
|
| - monitor()->AddUserIdleObserver(4, second_observer.GetPtr());
|
| - RunUntilIdle();
|
| - EXPECT_TRUE(second_observer.GetAndResetIdleState(&idle_state));
|
| - EXPECT_EQ(UserIdleObserver::IdleState::IDLE, idle_state);
|
| - EXPECT_TRUE(first_observer.GetAndResetIdleState(&idle_state));
|
| - EXPECT_EQ(UserIdleObserver::IdleState::IDLE, idle_state);
|
| -
|
| - // If an observer is added after some user activity, then it receives an
|
| - // immediate ACTIVE notification.
|
| - monitor()->OnUserActivity();
|
| - TestUserIdleObserver third_observer;
|
| - monitor()->AddUserIdleObserver(1, third_observer.GetPtr());
|
| - RunUntilIdle();
|
| - EXPECT_TRUE(third_observer.GetAndResetIdleState(&idle_state));
|
| - EXPECT_EQ(UserIdleObserver::IdleState::ACTIVE, idle_state);
|
| - EXPECT_TRUE(second_observer.GetAndResetIdleState(&idle_state));
|
| - EXPECT_EQ(UserIdleObserver::IdleState::ACTIVE, idle_state);
|
| - EXPECT_TRUE(first_observer.GetAndResetIdleState(&idle_state));
|
| - EXPECT_EQ(UserIdleObserver::IdleState::ACTIVE, idle_state);
|
| -
|
| - FastForwardBy(base::TimeDelta::FromMinutes(10));
|
| - TestUserIdleObserver fourth_observer;
|
| - monitor()->AddUserIdleObserver(1, fourth_observer.GetPtr());
|
| - RunUntilIdle();
|
| - EXPECT_TRUE(fourth_observer.GetAndResetIdleState(&idle_state));
|
| - EXPECT_EQ(UserIdleObserver::IdleState::IDLE, idle_state);
|
| - EXPECT_TRUE(third_observer.GetAndResetIdleState(&idle_state));
|
| - EXPECT_EQ(UserIdleObserver::IdleState::IDLE, idle_state);
|
| - EXPECT_TRUE(second_observer.GetAndResetIdleState(&idle_state));
|
| - EXPECT_EQ(UserIdleObserver::IdleState::IDLE, idle_state);
|
| - EXPECT_TRUE(first_observer.GetAndResetIdleState(&idle_state));
|
| - EXPECT_EQ(UserIdleObserver::IdleState::IDLE, idle_state);
|
| -
|
| - // All observers are idle. These should not receive any IDLE notifications as
|
| - // more time passes by.
|
| - FastForwardBy(base::TimeDelta::FromMinutes(100));
|
| - RunUntilIdle();
|
| - EXPECT_FALSE(first_observer.GetAndResetIdleState(&idle_state));
|
| - EXPECT_FALSE(second_observer.GetAndResetIdleState(&idle_state));
|
| - EXPECT_FALSE(third_observer.GetAndResetIdleState(&idle_state));
|
| - EXPECT_FALSE(fourth_observer.GetAndResetIdleState(&idle_state));
|
| -
|
| - // Some activity would notify ACTIVE to all observers.
|
| - monitor()->OnUserActivity();
|
| - RunUntilIdle();
|
| - EXPECT_TRUE(fourth_observer.GetAndResetIdleState(&idle_state));
|
| - EXPECT_EQ(UserIdleObserver::IdleState::ACTIVE, idle_state);
|
| - EXPECT_TRUE(third_observer.GetAndResetIdleState(&idle_state));
|
| - EXPECT_EQ(UserIdleObserver::IdleState::ACTIVE, idle_state);
|
| - EXPECT_TRUE(second_observer.GetAndResetIdleState(&idle_state));
|
| - EXPECT_EQ(UserIdleObserver::IdleState::ACTIVE, idle_state);
|
| - EXPECT_TRUE(first_observer.GetAndResetIdleState(&idle_state));
|
| - EXPECT_EQ(UserIdleObserver::IdleState::ACTIVE, idle_state);
|
| -
|
| - // Yet more activity should not send any notifications.
|
| - monitor()->OnUserActivity();
|
| - RunUntilIdle();
|
| - EXPECT_FALSE(first_observer.GetAndResetIdleState(&idle_state));
|
| - EXPECT_FALSE(second_observer.GetAndResetIdleState(&idle_state));
|
| - EXPECT_FALSE(third_observer.GetAndResetIdleState(&idle_state));
|
| - EXPECT_FALSE(fourth_observer.GetAndResetIdleState(&idle_state));
|
| -}
|
| -
|
| -} // namespace test
|
| -} // namespace ws
|
| -} // namespace mus
|
|
|