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

Side by Side Diff: ui/compositor/layer_animation_element_unittest.cc

Issue 11316315: Remove ui::LayerAnimationSequence::duration and ui::LayerAnimationElement::duration. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Make unit tests use IsFinished() instead of duration() Created 8 years 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 unified diff | 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 »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/compositor/layer_animation_element.h" 5 #include "ui/compositor/layer_animation_element.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/time.h" 10 #include "base/time.h"
(...skipping 15 matching lines...) Expand all
26 gfx::Transform start_transform, target_transform, middle_transform; 26 gfx::Transform start_transform, target_transform, middle_transform;
27 start_transform.Rotate(-30.0); 27 start_transform.Rotate(-30.0);
28 target_transform.Rotate(30.0); 28 target_transform.Rotate(30.0);
29 base::TimeDelta delta = base::TimeDelta::FromSeconds(1); 29 base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
30 30
31 scoped_ptr<LayerAnimationElement> element( 31 scoped_ptr<LayerAnimationElement> element(
32 LayerAnimationElement::CreateTransformElement(target_transform, delta)); 32 LayerAnimationElement::CreateTransformElement(target_transform, delta));
33 33
34 for (int i = 0; i < 2; ++i) { 34 for (int i = 0; i < 2; ++i) {
35 delegate.SetTransformFromAnimation(start_transform); 35 delegate.SetTransformFromAnimation(start_transform);
36 element->Progress(0.0, &delegate); 36 element->Progress(base::TimeDelta(), &delegate);
37 CheckApproximatelyEqual(start_transform, 37 CheckApproximatelyEqual(start_transform,
38 delegate.GetTransformForAnimation()); 38 delegate.GetTransformForAnimation());
39 element->Progress(0.5, &delegate); 39 element->Progress(delta/2, &delegate);
40 CheckApproximatelyEqual(middle_transform, 40 CheckApproximatelyEqual(middle_transform,
41 delegate.GetTransformForAnimation()); 41 delegate.GetTransformForAnimation());
42 element->Progress(1.0, &delegate); 42 element->Progress(delta, &delegate);
43 CheckApproximatelyEqual(target_transform, 43 CheckApproximatelyEqual(target_transform,
44 delegate.GetTransformForAnimation()); 44 delegate.GetTransformForAnimation());
45 } 45 }
46 46
47 LayerAnimationElement::TargetValue target_value(&delegate); 47 LayerAnimationElement::TargetValue target_value(&delegate);
48 element->GetTargetValue(&target_value); 48 element->GetTargetValue(&target_value);
49 CheckApproximatelyEqual(target_transform, target_value.transform); 49 CheckApproximatelyEqual(target_transform, target_value.transform);
50 50
51 EXPECT_EQ(delta, element->duration()); 51 base::TimeDelta element_duration;
52 EXPECT_TRUE(element->IsFinished(delta, &element_duration));
53 EXPECT_EQ(delta, element_duration);
52 } 54 }
53 55
54 // Check that the bounds element progresses the delegate as expected and 56 // Check that the bounds element progresses the delegate as expected and
55 // that the element can be reused after it completes. 57 // that the element can be reused after it completes.
56 TEST(LayerAnimationElementTest, BoundsElement) { 58 TEST(LayerAnimationElementTest, BoundsElement) {
57 TestLayerAnimationDelegate delegate; 59 TestLayerAnimationDelegate delegate;
58 gfx::Rect start, target, middle; 60 gfx::Rect start, target, middle;
59 start = target = middle = gfx::Rect(0, 0, 50, 50); 61 start = target = middle = gfx::Rect(0, 0, 50, 50);
60 start.set_x(-90); 62 start.set_x(-90);
61 target.set_x(90); 63 target.set_x(90);
62 base::TimeDelta delta = base::TimeDelta::FromSeconds(1); 64 base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
63 65
64 scoped_ptr<LayerAnimationElement> element( 66 scoped_ptr<LayerAnimationElement> element(
65 LayerAnimationElement::CreateBoundsElement(target, delta)); 67 LayerAnimationElement::CreateBoundsElement(target, delta));
66 68
67 for (int i = 0; i < 2; ++i) { 69 for (int i = 0; i < 2; ++i) {
68 delegate.SetBoundsFromAnimation(start); 70 delegate.SetBoundsFromAnimation(start);
69 element->Progress(0.0, &delegate); 71 element->Progress(base::TimeDelta(), &delegate);
70 CheckApproximatelyEqual(start, delegate.GetBoundsForAnimation()); 72 CheckApproximatelyEqual(start, delegate.GetBoundsForAnimation());
71 element->Progress(0.5, &delegate); 73 element->Progress(delta/2, &delegate);
72 CheckApproximatelyEqual(middle, delegate.GetBoundsForAnimation()); 74 CheckApproximatelyEqual(middle, delegate.GetBoundsForAnimation());
73 element->Progress(1.0, &delegate); 75 element->Progress(delta, &delegate);
74 CheckApproximatelyEqual(target, delegate.GetBoundsForAnimation()); 76 CheckApproximatelyEqual(target, delegate.GetBoundsForAnimation());
75 } 77 }
76 78
77 LayerAnimationElement::TargetValue target_value(&delegate); 79 LayerAnimationElement::TargetValue target_value(&delegate);
78 element->GetTargetValue(&target_value); 80 element->GetTargetValue(&target_value);
79 CheckApproximatelyEqual(target, target_value.bounds); 81 CheckApproximatelyEqual(target, target_value.bounds);
80 82
81 EXPECT_EQ(delta, element->duration()); 83 base::TimeDelta element_duration;
84 EXPECT_TRUE(element->IsFinished(delta, &element_duration));
85 EXPECT_EQ(delta, element_duration);
82 } 86 }
83 87
84 // Check that the opacity element progresses the delegate as expected and 88 // Check that the opacity element progresses the delegate as expected and
85 // that the element can be reused after it completes. 89 // that the element can be reused after it completes.
86 TEST(LayerAnimationElementTest, OpacityElement) { 90 TEST(LayerAnimationElementTest, OpacityElement) {
87 TestLayerAnimationDelegate delegate; 91 TestLayerAnimationDelegate delegate;
88 float start = 0.0; 92 float start = 0.0;
89 float middle = 0.5; 93 float middle = 0.5;
90 float target = 1.0; 94 float target = 1.0;
91 base::TimeDelta delta = base::TimeDelta::FromSeconds(1); 95 base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
92 scoped_ptr<LayerAnimationElement> element( 96 scoped_ptr<LayerAnimationElement> element(
93 LayerAnimationElement::CreateOpacityElement(target, delta)); 97 LayerAnimationElement::CreateOpacityElement(target, delta));
94 98
95 for (int i = 0; i < 2; ++i) { 99 for (int i = 0; i < 2; ++i) {
96 delegate.SetOpacityFromAnimation(start); 100 delegate.SetOpacityFromAnimation(start);
97 element->Progress(0.0, &delegate); 101 element->Progress(base::TimeDelta(), &delegate);
98 EXPECT_FLOAT_EQ(start, delegate.GetOpacityForAnimation()); 102 EXPECT_FLOAT_EQ(start, delegate.GetOpacityForAnimation());
99 element->Progress(0.5, &delegate); 103 element->Progress(delta/2, &delegate);
100 EXPECT_FLOAT_EQ(middle, delegate.GetOpacityForAnimation()); 104 EXPECT_FLOAT_EQ(middle, delegate.GetOpacityForAnimation());
101 element->Progress(1.0, &delegate); 105 element->Progress(delta, &delegate);
102 EXPECT_FLOAT_EQ(target, delegate.GetOpacityForAnimation()); 106 EXPECT_FLOAT_EQ(target, delegate.GetOpacityForAnimation());
103 } 107 }
104 108
105 LayerAnimationElement::TargetValue target_value(&delegate); 109 LayerAnimationElement::TargetValue target_value(&delegate);
106 element->GetTargetValue(&target_value); 110 element->GetTargetValue(&target_value);
107 EXPECT_FLOAT_EQ(target, target_value.opacity); 111 EXPECT_FLOAT_EQ(target, target_value.opacity);
108 112
109 EXPECT_EQ(delta, element->duration()); 113 base::TimeDelta element_duration;
114 EXPECT_TRUE(element->IsFinished(delta, &element_duration));
115 EXPECT_EQ(delta, element_duration);
110 } 116 }
111 117
112 // Check that the visibility element progresses the delegate as expected and 118 // Check that the visibility element progresses the delegate as expected and
113 // that the element can be reused after it completes. 119 // that the element can be reused after it completes.
114 TEST(LayerAnimationElementTest, VisibilityElement) { 120 TEST(LayerAnimationElementTest, VisibilityElement) {
115 TestLayerAnimationDelegate delegate; 121 TestLayerAnimationDelegate delegate;
116 bool start = true; 122 bool start = true;
117 bool target = false; 123 bool target = false;
118 base::TimeDelta delta = base::TimeDelta::FromSeconds(1); 124 base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
119 scoped_ptr<LayerAnimationElement> element( 125 scoped_ptr<LayerAnimationElement> element(
120 LayerAnimationElement::CreateVisibilityElement(target, delta)); 126 LayerAnimationElement::CreateVisibilityElement(target, delta));
121 127
122 for (int i = 0; i < 2; ++i) { 128 for (int i = 0; i < 2; ++i) {
123 delegate.SetVisibilityFromAnimation(start); 129 delegate.SetVisibilityFromAnimation(start);
124 element->Progress(0.0, &delegate); 130 element->Progress(base::TimeDelta(), &delegate);
125 EXPECT_TRUE(delegate.GetVisibilityForAnimation()); 131 EXPECT_TRUE(delegate.GetVisibilityForAnimation());
126 element->Progress(0.5, &delegate); 132 element->Progress(delta/2, &delegate);
127 EXPECT_TRUE(delegate.GetVisibilityForAnimation()); 133 EXPECT_TRUE(delegate.GetVisibilityForAnimation());
128 element->Progress(1.0, &delegate); 134 element->Progress(delta, &delegate);
129 EXPECT_FALSE(delegate.GetVisibilityForAnimation()); 135 EXPECT_FALSE(delegate.GetVisibilityForAnimation());
130 } 136 }
131 137
132 LayerAnimationElement::TargetValue target_value(&delegate); 138 LayerAnimationElement::TargetValue target_value(&delegate);
133 element->GetTargetValue(&target_value); 139 element->GetTargetValue(&target_value);
134 EXPECT_FALSE(target_value.visibility); 140 EXPECT_FALSE(target_value.visibility);
135 141
136 EXPECT_EQ(delta, element->duration()); 142 base::TimeDelta element_duration;
143 EXPECT_TRUE(element->IsFinished(delta, &element_duration));
144 EXPECT_EQ(delta, element_duration);
137 } 145 }
138 146
139 // Check that the Brightness element progresses the delegate as expected and 147 // Check that the Brightness element progresses the delegate as expected and
140 // that the element can be reused after it completes. 148 // that the element can be reused after it completes.
141 TEST(LayerAnimationElementTest, BrightnessElement) { 149 TEST(LayerAnimationElementTest, BrightnessElement) {
142 TestLayerAnimationDelegate delegate; 150 TestLayerAnimationDelegate delegate;
143 float start = 0.0; 151 float start = 0.0;
144 float middle = 0.5; 152 float middle = 0.5;
145 float target = 1.0; 153 float target = 1.0;
146 base::TimeDelta delta = base::TimeDelta::FromSeconds(1); 154 base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
147 scoped_ptr<LayerAnimationElement> element( 155 scoped_ptr<LayerAnimationElement> element(
148 LayerAnimationElement::CreateBrightnessElement(target, delta)); 156 LayerAnimationElement::CreateBrightnessElement(target, delta));
149 157
150 for (int i = 0; i < 2; ++i) { 158 for (int i = 0; i < 2; ++i) {
151 delegate.SetBrightnessFromAnimation(start); 159 delegate.SetBrightnessFromAnimation(start);
152 element->Progress(0.0, &delegate); 160 element->Progress(base::TimeDelta(), &delegate);
153 EXPECT_FLOAT_EQ(start, delegate.GetBrightnessForAnimation()); 161 EXPECT_FLOAT_EQ(start, delegate.GetBrightnessForAnimation());
154 element->Progress(0.5, &delegate); 162 element->Progress(delta/2, &delegate);
155 EXPECT_FLOAT_EQ(middle, delegate.GetBrightnessForAnimation()); 163 EXPECT_FLOAT_EQ(middle, delegate.GetBrightnessForAnimation());
156 element->Progress(1.0, &delegate); 164 element->Progress(delta, &delegate);
157 EXPECT_FLOAT_EQ(target, delegate.GetBrightnessForAnimation()); 165 EXPECT_FLOAT_EQ(target, delegate.GetBrightnessForAnimation());
158 } 166 }
159 167
160 LayerAnimationElement::TargetValue target_value(&delegate); 168 LayerAnimationElement::TargetValue target_value(&delegate);
161 element->GetTargetValue(&target_value); 169 element->GetTargetValue(&target_value);
162 EXPECT_FLOAT_EQ(target, target_value.brightness); 170 EXPECT_FLOAT_EQ(target, target_value.brightness);
163 171
164 EXPECT_EQ(delta, element->duration()); 172 base::TimeDelta element_duration;
173 EXPECT_TRUE(element->IsFinished(delta, &element_duration));
174 EXPECT_EQ(delta, element_duration);
165 } 175 }
166 176
167 // Check that the Grayscale element progresses the delegate as expected and 177 // Check that the Grayscale element progresses the delegate as expected and
168 // that the element can be reused after it completes. 178 // that the element can be reused after it completes.
169 TEST(LayerAnimationElementTest, GrayscaleElement) { 179 TEST(LayerAnimationElementTest, GrayscaleElement) {
170 TestLayerAnimationDelegate delegate; 180 TestLayerAnimationDelegate delegate;
171 float start = 0.0; 181 float start = 0.0;
172 float middle = 0.5; 182 float middle = 0.5;
173 float target = 1.0; 183 float target = 1.0;
174 base::TimeDelta delta = base::TimeDelta::FromSeconds(1); 184 base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
175 scoped_ptr<LayerAnimationElement> element( 185 scoped_ptr<LayerAnimationElement> element(
176 LayerAnimationElement::CreateGrayscaleElement(target, delta)); 186 LayerAnimationElement::CreateGrayscaleElement(target, delta));
177 187
178 for (int i = 0; i < 2; ++i) { 188 for (int i = 0; i < 2; ++i) {
179 delegate.SetGrayscaleFromAnimation(start); 189 delegate.SetGrayscaleFromAnimation(start);
180 element->Progress(0.0, &delegate); 190 element->Progress(base::TimeDelta(), &delegate);
181 EXPECT_FLOAT_EQ(start, delegate.GetGrayscaleForAnimation()); 191 EXPECT_FLOAT_EQ(start, delegate.GetGrayscaleForAnimation());
182 element->Progress(0.5, &delegate); 192 element->Progress(delta/2, &delegate);
183 EXPECT_FLOAT_EQ(middle, delegate.GetGrayscaleForAnimation()); 193 EXPECT_FLOAT_EQ(middle, delegate.GetGrayscaleForAnimation());
184 element->Progress(1.0, &delegate); 194 element->Progress(delta, &delegate);
185 EXPECT_FLOAT_EQ(target, delegate.GetGrayscaleForAnimation()); 195 EXPECT_FLOAT_EQ(target, delegate.GetGrayscaleForAnimation());
186 } 196 }
187 197
188 LayerAnimationElement::TargetValue target_value(&delegate); 198 LayerAnimationElement::TargetValue target_value(&delegate);
189 element->GetTargetValue(&target_value); 199 element->GetTargetValue(&target_value);
190 EXPECT_FLOAT_EQ(target, target_value.grayscale); 200 EXPECT_FLOAT_EQ(target, target_value.grayscale);
191 201
192 EXPECT_EQ(delta, element->duration()); 202 base::TimeDelta element_duration;
203 EXPECT_TRUE(element->IsFinished(delta, &element_duration));
204 EXPECT_EQ(delta, element_duration);
193 } 205 }
194 206
195 // Check that the pause element progresses the delegate as expected and 207 // Check that the pause element progresses the delegate as expected and
196 // that the element can be reused after it completes. 208 // that the element can be reused after it completes.
197 TEST(LayerAnimationElementTest, PauseElement) { 209 TEST(LayerAnimationElementTest, PauseElement) {
198 LayerAnimationElement::AnimatableProperties properties; 210 LayerAnimationElement::AnimatableProperties properties;
199 properties.insert(LayerAnimationElement::TRANSFORM); 211 properties.insert(LayerAnimationElement::TRANSFORM);
200 properties.insert(LayerAnimationElement::BOUNDS); 212 properties.insert(LayerAnimationElement::BOUNDS);
201 properties.insert(LayerAnimationElement::OPACITY); 213 properties.insert(LayerAnimationElement::OPACITY);
202 properties.insert(LayerAnimationElement::BRIGHTNESS); 214 properties.insert(LayerAnimationElement::BRIGHTNESS);
203 properties.insert(LayerAnimationElement::GRAYSCALE); 215 properties.insert(LayerAnimationElement::GRAYSCALE);
204 base::TimeDelta delta = base::TimeDelta::FromSeconds(1); 216 base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
205 217
206 scoped_ptr<LayerAnimationElement> element( 218 scoped_ptr<LayerAnimationElement> element(
207 LayerAnimationElement::CreatePauseElement(properties, delta)); 219 LayerAnimationElement::CreatePauseElement(properties, delta));
208 220
209 TestLayerAnimationDelegate delegate; 221 TestLayerAnimationDelegate delegate;
210 TestLayerAnimationDelegate copy = delegate; 222 TestLayerAnimationDelegate copy = delegate;
211 223
212 element->Progress(1.0, &delegate); 224 element->Progress(delta, &delegate);
213 225
214 // Nothing should have changed. 226 // Nothing should have changed.
215 CheckApproximatelyEqual(delegate.GetBoundsForAnimation(), 227 CheckApproximatelyEqual(delegate.GetBoundsForAnimation(),
216 copy.GetBoundsForAnimation()); 228 copy.GetBoundsForAnimation());
217 CheckApproximatelyEqual(delegate.GetTransformForAnimation(), 229 CheckApproximatelyEqual(delegate.GetTransformForAnimation(),
218 copy.GetTransformForAnimation()); 230 copy.GetTransformForAnimation());
219 EXPECT_FLOAT_EQ(delegate.GetOpacityForAnimation(), 231 EXPECT_FLOAT_EQ(delegate.GetOpacityForAnimation(),
220 copy.GetOpacityForAnimation()); 232 copy.GetOpacityForAnimation());
221 EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), 233 EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(),
222 copy.GetBrightnessForAnimation()); 234 copy.GetBrightnessForAnimation());
223 EXPECT_FLOAT_EQ(delegate.GetGrayscaleForAnimation(), 235 EXPECT_FLOAT_EQ(delegate.GetGrayscaleForAnimation(),
224 copy.GetGrayscaleForAnimation()); 236 copy.GetGrayscaleForAnimation());
225 237
226 // Pause should last for |delta|. 238 // Pause should last for |delta|.
227 EXPECT_EQ(delta, element->duration()); 239 base::TimeDelta element_duration;
240 EXPECT_TRUE(element->IsFinished(delta, &element_duration));
241 EXPECT_EQ(delta, element_duration);
228 } 242 }
229 243
230 } // namespace 244 } // namespace
231 245
232 } // namespace ui 246 } // namespace ui
OLDNEW
« 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