blob: 2f51361e364a3de0b0085936b70393469b632486 [file] [log] [blame]
// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "remoting/host/host_power_save_blocker.h"
#include <memory>
#include "base/message_loop/message_pump_type.h"
#include "base/test/task_environment.h"
#include "base/threading/thread.h"
#include "remoting/host/host_status_monitor.h"
#include "testing/gtest/include/gtest/gtest.h"
#if BUILDFLAG(IS_LINUX)
#include "components/dbus/thread_linux/dbus_thread_linux.h"
#endif // BUILDFLAG(IS_LINUX)
namespace remoting {
class HostPowerSaveBlockerTest : public testing::Test {
public:
HostPowerSaveBlockerTest();
protected:
bool is_activated() const;
void SetUp() override;
void TearDown() override;
base::test::TaskEnvironment task_environment_;
scoped_refptr<HostStatusMonitor> monitor_;
std::unique_ptr<HostPowerSaveBlocker> blocker_;
};
HostPowerSaveBlockerTest::HostPowerSaveBlockerTest()
: monitor_(new HostStatusMonitor()) {}
void HostPowerSaveBlockerTest::SetUp() {
blocker_ = std::make_unique<HostPowerSaveBlocker>(
monitor_, task_environment_.GetMainThreadTaskRunner());
}
void HostPowerSaveBlockerTest::TearDown() {
blocker_.reset();
task_environment_.RunUntilIdle();
#if BUILDFLAG(IS_LINUX)
dbus_thread_linux::ShutdownOnDBusThreadAndBlock();
#endif // BUILDFLAG(IS_LINUX)
}
bool HostPowerSaveBlockerTest::is_activated() const {
return !!blocker_->blocker_;
}
TEST_F(HostPowerSaveBlockerTest, Activated) {
blocker_->OnClientConnected("jid/jid1@jid2.org");
ASSERT_TRUE(is_activated());
blocker_->OnClientDisconnected("jid/jid3@jid4.org");
ASSERT_FALSE(is_activated());
}
} // namespace remoting