| Index: ui/compositor/test/multi_layer_animator_test_controller.cc
|
| diff --git a/ui/compositor/test/multi_layer_animator_test_controller.cc b/ui/compositor/test/multi_layer_animator_test_controller.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a7a666998aa4bb74868578a4e0c6684421f3e745
|
| --- /dev/null
|
| +++ b/ui/compositor/test/multi_layer_animator_test_controller.cc
|
| @@ -0,0 +1,66 @@
|
| +// 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 "ui/compositor/test/multi_layer_animator_test_controller.h"
|
| +
|
| +#include "base/time/time.h"
|
| +#include "ui/compositor/layer.h"
|
| +#include "ui/compositor/layer_animator.h"
|
| +#include "ui/compositor/test/layer_animator_test_controller.h"
|
| +#include "ui/compositor/test/multi_layer_animator_test_controller_delegate.h"
|
| +
|
| +namespace ui {
|
| +namespace test {
|
| +
|
| +MultiLayerAnimatorTestController::MultiLayerAnimatorTestController(
|
| + MultiLayerAnimatorTestControllerDelegate* delegate)
|
| + : delegate_(delegate) {}
|
| +
|
| +MultiLayerAnimatorTestController::~MultiLayerAnimatorTestController() {}
|
| +
|
| +void MultiLayerAnimatorTestController::SetDisableAnimationTimers(
|
| + bool disable_timers) {
|
| + for (LayerAnimator* animator : GetLayerAnimators())
|
| + animator->set_disable_timer_for_test(disable_timers);
|
| +}
|
| +
|
| +bool MultiLayerAnimatorTestController::HasActiveAnimations() const {
|
| + for (LayerAnimator* animator : GetLayerAnimators()) {
|
| + if (animator->is_animating())
|
| + return true;
|
| + }
|
| + return false;
|
| +}
|
| +
|
| +void MultiLayerAnimatorTestController::CompleteAnimations() {
|
| + while (HasActiveAnimations()) {
|
| + // StepAnimations() will only progress the current running animations. Thus
|
| + // each queued animation will require at least one 'Step' call and we cannot
|
| + // just use a large duration here.
|
| + StepAnimations(base::TimeDelta::FromMilliseconds(20));
|
| + }
|
| +}
|
| +
|
| +std::vector<LayerAnimator*>
|
| +MultiLayerAnimatorTestController::GetLayerAnimators() {
|
| + return static_cast<const MultiLayerAnimatorTestController*>(this)
|
| + ->GetLayerAnimators();
|
| +}
|
| +
|
| +std::vector<LayerAnimator*>
|
| +MultiLayerAnimatorTestController::GetLayerAnimators() const {
|
| + return delegate_->GetLayerAnimators();
|
| +}
|
| +
|
| +void MultiLayerAnimatorTestController::StepAnimations(
|
| + const base::TimeDelta& duration) {
|
| + for (ui::LayerAnimator* animator : GetLayerAnimators()) {
|
| + LayerAnimatorTestController controller(animator);
|
| + controller.StartThreadedAnimationsIfNeeded();
|
| + controller.Step(duration);
|
| + }
|
| +}
|
| +
|
| +} // namespace test
|
| +} // namespace ui
|
|
|