Chromium Code Reviews| Index: ui/compositor/test/test_layer_animation_observer.cc |
| diff --git a/ui/compositor/test/test_layer_animation_observer.cc b/ui/compositor/test/test_layer_animation_observer.cc |
| index abc74ae9d3a3b1ad936891b90568d8dfde5248a7..838b7f23a10d2fd28eae0fd5e4c29dc9dc5f1f8e 100644 |
| --- a/ui/compositor/test/test_layer_animation_observer.cc |
| +++ b/ui/compositor/test/test_layer_animation_observer.cc |
| @@ -9,28 +9,74 @@ |
| namespace ui { |
| TestLayerAnimationObserver::TestLayerAnimationObserver() |
| - : last_ended_sequence_(NULL), |
| - last_scheduled_sequence_(NULL), |
| - last_aborted_sequence_(NULL), |
| - requires_notification_when_animator_destroyed_(false) { |
| -} |
| + : next_epoch_(0), |
| + last_attached_sequence_(nullptr), |
| + last_attached_sequence_epoch_(-1), |
| + last_scheduled_sequence_(nullptr), |
| + last_scheduled_sequence_epoch_(-1), |
| + last_started_sequence_(nullptr), |
| + last_started_sequence_epoch_(-1), |
| + last_aborted_sequence_(nullptr), |
| + last_aborted_sequence_epoch_(-1), |
| + last_ended_sequence_(nullptr), |
| + last_ended_sequence_epoch_(-1), |
| + last_detached_sequence_(nullptr), |
| + last_detached_sequence_epoch_(-1), |
| + requires_notification_when_animator_destroyed_(false) {} |
| TestLayerAnimationObserver::~TestLayerAnimationObserver() { |
| } |
| -void TestLayerAnimationObserver::OnLayerAnimationEnded( |
| +void TestLayerAnimationObserver::ResetLayerAnimationObserverations() { |
| + next_epoch_ = 0; |
| + last_attached_sequence_ = nullptr; |
| + last_attached_sequence_epoch_ = -1; |
| + last_scheduled_sequence_ = nullptr; |
| + last_scheduled_sequence_epoch_ = -1; |
| + last_started_sequence_ = nullptr; |
| + last_started_sequence_epoch_ = -1; |
| + last_aborted_sequence_ = nullptr; |
| + last_aborted_sequence_epoch_ = -1; |
| + last_ended_sequence_ = nullptr; |
| + last_ended_sequence_epoch_ = -1; |
| + last_detached_sequence_ = nullptr; |
| + last_detached_sequence_epoch_ = -1; |
| +} |
| + |
| +void TestLayerAnimationObserver::OnAttachedToSequence( |
| LayerAnimationSequence* sequence) { |
| - last_ended_sequence_ = sequence; |
| + last_attached_sequence_ = sequence; |
| + last_attached_sequence_epoch_ = next_epoch_++; |
| +} |
| + |
| +void TestLayerAnimationObserver::OnLayerAnimationScheduled( |
| + LayerAnimationSequence* sequence) { |
| + last_scheduled_sequence_ = sequence; |
| + last_scheduled_sequence_epoch_ = next_epoch_++; |
| +} |
| + |
| +void TestLayerAnimationObserver::OnLayerAnimationStarted( |
| + LayerAnimationSequence* sequence) { |
| + last_started_sequence_ = sequence; |
| + last_started_sequence_epoch_ = next_epoch_++; |
| } |
| void TestLayerAnimationObserver::OnLayerAnimationAborted( |
| LayerAnimationSequence* sequence) { |
| last_aborted_sequence_ = sequence; |
| + last_aborted_sequence_epoch_ = next_epoch_++; |
| } |
| -void TestLayerAnimationObserver::OnLayerAnimationScheduled( |
| +void TestLayerAnimationObserver::OnLayerAnimationEnded( |
| LayerAnimationSequence* sequence) { |
| - last_scheduled_sequence_ = sequence; |
| + last_ended_sequence_ = sequence; |
| + last_ended_sequence_epoch_ = next_epoch_++; |
| +} |
| + |
| +void TestLayerAnimationObserver::OnDetachedFromSequence( |
| + LayerAnimationSequence* sequence) { |
| + last_detached_sequence_ = sequence; |
| + last_detached_sequence_epoch_ = next_epoch_++; |
| } |
| bool |
| @@ -38,4 +84,134 @@ TestLayerAnimationObserver::RequiresNotificationWhenAnimatorDestroyed() const { |
| return requires_notification_when_animator_destroyed_; |
| } |
| +testing::AssertionResult TestLayerAnimationObserver::NoEventsObserved() { |
| + if (!last_attached_sequence_ && !last_scheduled_sequence_ && |
| + !last_started_sequence_ && !last_aborted_sequence_ && |
| + !last_ended_sequence_ && !last_detached_sequence_) { |
| + return testing::AssertionSuccess(); |
| + } else { |
| + testing::AssertionResult assertion_failure = testing::AssertionFailure(); |
| + assertion_failure << "The following events have been observed:"; |
| + if (last_attached_sequence_) { |
| + assertion_failure << "\n\tlast_attached_sequence_=" |
| + << last_attached_sequence_; |
|
Ian Vollick
2015/10/07 17:52:13
This is so cool.
|
| + } |
| + if (last_scheduled_sequence_) { |
| + assertion_failure << "\n\tlast_scheduled_sequence_=" |
| + << last_scheduled_sequence_; |
| + } |
| + if (last_started_sequence_) { |
| + assertion_failure << "\n\tlast_started_sequence_=" |
| + << last_started_sequence_; |
| + } |
| + if (last_aborted_sequence_) { |
| + assertion_failure << "\n\tlast_aborted_sequence_=" |
| + << last_aborted_sequence_; |
| + } |
| + if (last_ended_sequence_) { |
| + assertion_failure << "\n\tlast_ended_sequence_" << last_ended_sequence_; |
| + } |
| + if (last_detached_sequence_) { |
| + assertion_failure << "\n\tlast_detached_sequence_=" |
| + << last_detached_sequence_; |
| + } |
| + return assertion_failure; |
| + } |
| +} |
| + |
| +testing::AssertionResult |
| +TestLayerAnimationObserver::AttachedEpochIsBeforeScheduledEpoch() { |
| + if (last_attached_sequence_epoch_ < last_scheduled_sequence_epoch_) { |
| + return testing::AssertionSuccess(); |
| + } else { |
| + return testing::AssertionFailure() |
| + << "The attached epoch=" << last_attached_sequence_epoch_ |
| + << " is NOT before the scheduled epoch=" |
| + << last_scheduled_sequence_epoch_; |
| + } |
| +} |
| + |
| +testing::AssertionResult |
| +TestLayerAnimationObserver::ScheduledEpochIsBeforeStartedEpoch() { |
| + if (last_scheduled_sequence_epoch_ < last_started_sequence_epoch_) { |
| + return testing::AssertionSuccess(); |
| + } else { |
| + return testing::AssertionFailure() |
| + << "The scheduled epoch=" << last_scheduled_sequence_epoch_ |
| + << " is NOT before the started epoch=" |
| + << last_started_sequence_epoch_; |
| + } |
| +} |
| + |
| +testing::AssertionResult |
| +TestLayerAnimationObserver::StartedEpochIsBeforeEndedEpoch() { |
| + if (last_started_sequence_epoch_ < last_ended_sequence_epoch_) { |
| + return testing::AssertionSuccess(); |
| + } else { |
| + return testing::AssertionFailure() |
| + << "The started epoch=" << last_started_sequence_epoch_ |
| + << " is NOT before the ended epoch=" << last_ended_sequence_epoch_; |
| + } |
| +} |
| + |
| +testing::AssertionResult |
| +TestLayerAnimationObserver::StartedEpochIsBeforeAbortedEpoch() { |
| + if (last_started_sequence_epoch_ < last_aborted_sequence_epoch_) { |
| + return testing::AssertionSuccess(); |
| + } else { |
| + return testing::AssertionFailure() |
| + << "The started epoch=" << last_started_sequence_epoch_ |
| + << " is NOT before the aborted epoch=" |
| + << last_aborted_sequence_epoch_; |
| + } |
| +} |
| + |
| +testing::AssertionResult |
| +TestLayerAnimationObserver::AbortedEpochIsBeforeStartedEpoch() { |
| + if (last_aborted_sequence_epoch_ < last_started_sequence_epoch_) { |
| + return testing::AssertionSuccess(); |
| + } else { |
| + return testing::AssertionFailure() |
| + << "The aborted epoch=" << last_aborted_sequence_epoch_ |
| + << " is NOT before the started epoch=" |
| + << last_started_sequence_epoch_; |
| + } |
| +} |
| + |
| +testing::AssertionResult |
| +TestLayerAnimationObserver::AbortedEpochIsBeforeDetachedEpoch() { |
| + if (last_aborted_sequence_epoch_ < last_detached_sequence_epoch_) { |
| + return testing::AssertionSuccess(); |
| + } else { |
| + return testing::AssertionFailure() |
| + << "The aborted epoch=" << last_aborted_sequence_epoch_ |
| + << " is NOT before the detached epoch=" |
| + << last_detached_sequence_epoch_; |
| + } |
| +} |
| + |
| +testing::AssertionResult |
| +TestLayerAnimationObserver::EndedEpochIsBeforeStartedEpoch() { |
| + if (last_ended_sequence_epoch_ < last_started_sequence_epoch_) { |
| + return testing::AssertionSuccess(); |
| + } else { |
| + return testing::AssertionFailure() |
| + << "The ended epoch=" << last_ended_sequence_epoch_ |
| + << " is NOT before the started epoch=" |
| + << last_started_sequence_epoch_; |
| + } |
| +} |
| + |
| +testing::AssertionResult |
| +TestLayerAnimationObserver::EndedEpochIsBeforeDetachedEpoch() { |
| + if (last_ended_sequence_epoch_ < last_detached_sequence_epoch_) { |
| + return testing::AssertionSuccess(); |
| + } else { |
| + return testing::AssertionFailure() |
| + << "The ended epoch=" << last_ended_sequence_epoch_ |
| + << " is NOT before the detached epoch=" |
| + << last_detached_sequence_epoch_; |
| + } |
| +} |
| + |
| } // namespace ui |