blob: 6b501861d9aa03a37e768663e728a1ac5cf271d1 [file] [log] [blame]
// 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 "remoting/host/host_power_save_blocker.h"
#include <memory>
#include "base/logging.h"
#include "base/message_loop/message_loop.h"
#include "base/threading/thread.h"
#include "remoting/host/host_status_monitor.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace remoting {
class HostPowerSaveBlockerTest : public testing::Test {
public:
HostPowerSaveBlockerTest();
protected:
bool is_activated() const;
void SetUp() override;
base::MessageLoopForUI ui_message_loop_;
base::Thread blocking_thread_;
scoped_refptr<HostStatusMonitor> monitor_;
std::unique_ptr<HostPowerSaveBlocker> blocker_;
};
HostPowerSaveBlockerTest::HostPowerSaveBlockerTest()
: blocking_thread_("block-thread"), monitor_(new HostStatusMonitor()) {}
void HostPowerSaveBlockerTest::SetUp() {
ASSERT_TRUE(blocking_thread_.StartWithOptions(
base::Thread::Options(base::MessageLoop::TYPE_IO, 0)) &&
blocking_thread_.WaitUntilThreadStarted());
blocker_.reset(new HostPowerSaveBlocker(monitor_,
ui_message_loop_.task_runner(),
blocking_thread_.task_runner()));
}
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