chromium/ash/system/power/power_event_observer_test_api.cc

// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "ash/system/power/power_event_observer_test_api.h"

#include "ash/system/power/power_event_observer.h"
#include "base/time/time.h"
#include "ui/compositor/compositor_observer.h"

namespace ash {

PowerEventObserverTestApi::PowerEventObserverTestApi(
    PowerEventObserver* power_event_observer)
    : power_event_observer_(power_event_observer) {}

PowerEventObserverTestApi::~PowerEventObserverTestApi() = default;

void PowerEventObserverTestApi::SendLidEvent(
    chromeos::PowerManagerClient::LidState state) {
  power_event_observer_->LidEventReceived(state, base::TimeTicks::Now());
}

void PowerEventObserverTestApi::CompositingDidCommit(
    ui::Compositor* compositor) {
  if (!power_event_observer_->compositor_watcher_.get())
    return;
  power_event_observer_->compositor_watcher_->OnCompositingDidCommit(
      compositor);
}

void PowerEventObserverTestApi::CompositingStarted(ui::Compositor* compositor) {
  if (!power_event_observer_->compositor_watcher_.get())
    return;
  power_event_observer_->compositor_watcher_->OnCompositingStarted(
      compositor, base::TimeTicks());
}

void PowerEventObserverTestApi::CompositingAckDeprecated(
    ui::Compositor* compositor) {
  if (!power_event_observer_->compositor_watcher_.get())
    return;
  power_event_observer_->compositor_watcher_->OnCompositingAckDeprecated(
      compositor);
}

void PowerEventObserverTestApi::CompositeFrame(ui::Compositor* compositor) {
  if (!power_event_observer_->compositor_watcher_.get())
    return;
  power_event_observer_->compositor_watcher_->OnCompositingDidCommit(
      compositor);
  power_event_observer_->compositor_watcher_->OnCompositingStarted(
      compositor, base::TimeTicks());
  power_event_observer_->compositor_watcher_->OnCompositingAckDeprecated(
      compositor);
}

bool PowerEventObserverTestApi::SimulateCompositorsReadyForSuspend() {
  if (!power_event_observer_->compositor_watcher_.get())
    return false;
  power_event_observer_->OnCompositorsReadyForSuspend();
  return true;
}

bool PowerEventObserverTestApi::TrackingLockOnSuspendUsage() const {
  return power_event_observer_->lock_on_suspend_usage_.get();
}

}  // namespace ash