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

Unified Diff: ui/compositor/layer_animation_element_unittest.cc

Issue 11896017: Thread ui opacity animations (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fix ash_unittests Created 7 years, 10 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
« no previous file with comments | « ui/compositor/layer_animation_element.cc ('k') | ui/compositor/layer_animation_sequence.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/compositor/layer_animation_element_unittest.cc
diff --git a/ui/compositor/layer_animation_element_unittest.cc b/ui/compositor/layer_animation_element_unittest.cc
index 5912023739a61de922c7fb819bcd73d90bb98e1a..9964436929d7c6d4c1870807fbb0e1864961f621 100644
--- a/ui/compositor/layer_animation_element_unittest.cc
+++ b/ui/compositor/layer_animation_element_unittest.cc
@@ -34,14 +34,20 @@ TEST(LayerAnimationElementTest, TransformElement) {
for (int i = 0; i < 2; ++i) {
start_time += delta;
- element->set_start_time(start_time);
+ element->set_requested_start_time(start_time);
delegate.SetTransformFromAnimation(start_transform);
+ element->Start(&delegate, 1);
element->Progress(start_time, &delegate);
CheckApproximatelyEqual(start_transform,
delegate.GetTransformForAnimation());
element->Progress(start_time + delta/2, &delegate);
CheckApproximatelyEqual(middle_transform,
delegate.GetTransformForAnimation());
+
+ base::TimeDelta element_duration;
+ EXPECT_TRUE(element->IsFinished(start_time + delta, &element_duration));
+ EXPECT_EQ(delta, element_duration);
+
element->Progress(start_time + delta, &delegate);
CheckApproximatelyEqual(target_transform,
delegate.GetTransformForAnimation());
@@ -50,10 +56,6 @@ TEST(LayerAnimationElementTest, TransformElement) {
LayerAnimationElement::TargetValue target_value(&delegate);
element->GetTargetValue(&target_value);
CheckApproximatelyEqual(target_transform, target_value.transform);
-
- base::TimeDelta element_duration;
- EXPECT_TRUE(element->IsFinished(start_time + delta, &element_duration));
- EXPECT_EQ(delta, element_duration);
}
// Check that the bounds element progresses the delegate as expected and
@@ -72,12 +74,18 @@ TEST(LayerAnimationElementTest, BoundsElement) {
for (int i = 0; i < 2; ++i) {
start_time += delta;
- element->set_start_time(start_time);
+ element->set_requested_start_time(start_time);
delegate.SetBoundsFromAnimation(start);
+ element->Start(&delegate, 1);
element->Progress(start_time, &delegate);
CheckApproximatelyEqual(start, delegate.GetBoundsForAnimation());
element->Progress(start_time + delta/2, &delegate);
CheckApproximatelyEqual(middle, delegate.GetBoundsForAnimation());
+
+ base::TimeDelta element_duration;
+ EXPECT_TRUE(element->IsFinished(start_time + delta, &element_duration));
+ EXPECT_EQ(delta, element_duration);
+
element->Progress(start_time + delta, &delegate);
CheckApproximatelyEqual(target, delegate.GetBoundsForAnimation());
}
@@ -85,10 +93,6 @@ TEST(LayerAnimationElementTest, BoundsElement) {
LayerAnimationElement::TargetValue target_value(&delegate);
element->GetTargetValue(&target_value);
CheckApproximatelyEqual(target, target_value.bounds);
-
- base::TimeDelta element_duration;
- EXPECT_TRUE(element->IsFinished(start_time + delta, &element_duration));
- EXPECT_EQ(delta, element_duration);
}
// Check that the opacity element progresses the delegate as expected and
@@ -99,29 +103,38 @@ TEST(LayerAnimationElementTest, OpacityElement) {
float middle = 0.5;
float target = 1.0;
base::TimeTicks start_time;
+ base::TimeTicks effective_start_time;
base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
scoped_ptr<LayerAnimationElement> element(
LayerAnimationElement::CreateOpacityElement(target, delta));
for (int i = 0; i < 2; ++i) {
- start_time += delta;
- element->set_start_time(start_time);
+ start_time = effective_start_time + delta;
+ element->set_requested_start_time(start_time);
delegate.SetOpacityFromAnimation(start);
+ element->Start(&delegate, 1);
element->Progress(start_time, &delegate);
- EXPECT_FLOAT_EQ(start, delegate.GetOpacityForAnimation());
- element->Progress(start_time + delta/2, &delegate);
- EXPECT_FLOAT_EQ(middle, delegate.GetOpacityForAnimation());
- element->Progress(start_time + delta, &delegate);
+ EXPECT_FLOAT_EQ(start, element->last_progressed_fraction());
+ effective_start_time = start_time + delta;
+ element->set_effective_start_time(effective_start_time);
+ element->Progress(effective_start_time, &delegate);
+ EXPECT_FLOAT_EQ(start, element->last_progressed_fraction());
+ element->Progress(effective_start_time + delta/2, &delegate);
+ EXPECT_FLOAT_EQ(middle, element->last_progressed_fraction());
+
+ base::TimeDelta element_duration;
+ EXPECT_TRUE(element->IsFinished(effective_start_time + delta,
+ &element_duration));
+ EXPECT_EQ(2 * delta, element_duration);
+
+ element->Progress(effective_start_time + delta, &delegate);
+ EXPECT_FLOAT_EQ(target, element->last_progressed_fraction());
EXPECT_FLOAT_EQ(target, delegate.GetOpacityForAnimation());
}
LayerAnimationElement::TargetValue target_value(&delegate);
element->GetTargetValue(&target_value);
EXPECT_FLOAT_EQ(target, target_value.opacity);
-
- base::TimeDelta element_duration;
- EXPECT_TRUE(element->IsFinished(start_time + delta, &element_duration));
- EXPECT_EQ(delta, element_duration);
}
// Check that the visibility element progresses the delegate as expected and
@@ -137,12 +150,18 @@ TEST(LayerAnimationElementTest, VisibilityElement) {
for (int i = 0; i < 2; ++i) {
start_time += delta;
- element->set_start_time(start_time);
+ element->set_requested_start_time(start_time);
delegate.SetVisibilityFromAnimation(start);
+ element->Start(&delegate, 1);
element->Progress(start_time, &delegate);
EXPECT_TRUE(delegate.GetVisibilityForAnimation());
element->Progress(start_time + delta/2, &delegate);
EXPECT_TRUE(delegate.GetVisibilityForAnimation());
+
+ base::TimeDelta element_duration;
+ EXPECT_TRUE(element->IsFinished(start_time + delta, &element_duration));
+ EXPECT_EQ(delta, element_duration);
+
element->Progress(start_time + delta, &delegate);
EXPECT_FALSE(delegate.GetVisibilityForAnimation());
}
@@ -150,10 +169,6 @@ TEST(LayerAnimationElementTest, VisibilityElement) {
LayerAnimationElement::TargetValue target_value(&delegate);
element->GetTargetValue(&target_value);
EXPECT_FALSE(target_value.visibility);
-
- base::TimeDelta element_duration;
- EXPECT_TRUE(element->IsFinished(start_time + delta, &element_duration));
- EXPECT_EQ(delta, element_duration);
}
// Check that the Brightness element progresses the delegate as expected and
@@ -170,12 +185,18 @@ TEST(LayerAnimationElementTest, BrightnessElement) {
for (int i = 0; i < 2; ++i) {
start_time += delta;
- element->set_start_time(start_time);
+ element->set_requested_start_time(start_time);
delegate.SetBrightnessFromAnimation(start);
+ element->Start(&delegate, 1);
element->Progress(start_time, &delegate);
EXPECT_FLOAT_EQ(start, delegate.GetBrightnessForAnimation());
element->Progress(start_time + delta/2, &delegate);
EXPECT_FLOAT_EQ(middle, delegate.GetBrightnessForAnimation());
+
+ base::TimeDelta element_duration;
+ EXPECT_TRUE(element->IsFinished(start_time + delta, &element_duration));
+ EXPECT_EQ(delta, element_duration);
+
element->Progress(start_time + delta, &delegate);
EXPECT_FLOAT_EQ(target, delegate.GetBrightnessForAnimation());
}
@@ -183,10 +204,6 @@ TEST(LayerAnimationElementTest, BrightnessElement) {
LayerAnimationElement::TargetValue target_value(&delegate);
element->GetTargetValue(&target_value);
EXPECT_FLOAT_EQ(target, target_value.brightness);
-
- base::TimeDelta element_duration;
- EXPECT_TRUE(element->IsFinished(start_time + delta, &element_duration));
- EXPECT_EQ(delta, element_duration);
}
// Check that the Grayscale element progresses the delegate as expected and
@@ -203,12 +220,18 @@ TEST(LayerAnimationElementTest, GrayscaleElement) {
for (int i = 0; i < 2; ++i) {
start_time += delta;
- element->set_start_time(start_time);
+ element->set_requested_start_time(start_time);
delegate.SetGrayscaleFromAnimation(start);
+ element->Start(&delegate, 1);
element->Progress(start_time, &delegate);
EXPECT_FLOAT_EQ(start, delegate.GetGrayscaleForAnimation());
element->Progress(start_time + delta/2, &delegate);
EXPECT_FLOAT_EQ(middle, delegate.GetGrayscaleForAnimation());
+
+ base::TimeDelta element_duration;
+ EXPECT_TRUE(element->IsFinished(start_time + delta, &element_duration));
+ EXPECT_EQ(delta, element_duration);
+
element->Progress(start_time + delta, &delegate);
EXPECT_FLOAT_EQ(target, delegate.GetGrayscaleForAnimation());
}
@@ -216,10 +239,6 @@ TEST(LayerAnimationElementTest, GrayscaleElement) {
LayerAnimationElement::TargetValue target_value(&delegate);
element->GetTargetValue(&target_value);
EXPECT_FLOAT_EQ(target, target_value.grayscale);
-
- base::TimeDelta element_duration;
- EXPECT_TRUE(element->IsFinished(start_time + delta, &element_duration));
- EXPECT_EQ(delta, element_duration);
}
// Check that the pause element progresses the delegate as expected and
@@ -241,7 +260,14 @@ TEST(LayerAnimationElementTest, PauseElement) {
TestLayerAnimationDelegate copy = delegate;
start_time += delta;
- element->set_start_time(start_time);
+ element->set_requested_start_time(start_time);
+ element->Start(&delegate, 1);
+
+ // Pause should last for |delta|.
+ base::TimeDelta element_duration;
+ EXPECT_TRUE(element->IsFinished(start_time + delta, &element_duration));
+ EXPECT_EQ(delta, element_duration);
+
element->Progress(start_time + delta, &delegate);
// Nothing should have changed.
@@ -255,11 +281,6 @@ TEST(LayerAnimationElementTest, PauseElement) {
copy.GetBrightnessForAnimation());
EXPECT_FLOAT_EQ(delegate.GetGrayscaleForAnimation(),
copy.GetGrayscaleForAnimation());
-
- // Pause should last for |delta|.
- base::TimeDelta element_duration;
- EXPECT_TRUE(element->IsFinished(start_time + delta, &element_duration));
- EXPECT_EQ(delta, element_duration);
}
} // namespace
« no previous file with comments | « ui/compositor/layer_animation_element.cc ('k') | ui/compositor/layer_animation_sequence.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698