Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(51)

Unified Diff: ui/compositor/test/multi_layer_animator_test_controller.cc

Issue 1900283002: Added ui::test::MultiLayerAnimatorTestController and Delegate. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Updated gn build. Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698