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

Side by Side Diff: cc/animation/animation_unittest.cc

Issue 231133002: CC::Animations should use TimeTicks & TimeDelta to represent time (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adding Animation related changes and unittests Created 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 "cc/animation/animation.h" 5 #include "cc/animation/animation.h"
6 6
7 #include "cc/test/animation_test_common.h" 7 #include "cc/test/animation_test_common.h"
8 #include "testing/gmock/include/gmock/gmock.h" 8 #include "testing/gmock/include/gmock/gmock.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 10
11 namespace cc { 11 namespace cc {
12 namespace { 12 namespace {
13 13
14 base::TimeTicks GetTimeTicks(double time) {
15 return base::TimeTicks::FromInternalValue(time *
16 base::Time::kMicrosecondsPerSecond);
17 }
18
19 base::TimeDelta GetTimeDelta(double offset) {
20 return GetTimeTicks(offset) - base::TimeTicks();
21 }
22
14 scoped_ptr<Animation> CreateAnimation(int iterations, double duration) { 23 scoped_ptr<Animation> CreateAnimation(int iterations, double duration) {
15 scoped_ptr<Animation> to_return(Animation::Create( 24 scoped_ptr<Animation> to_return(Animation::Create(
16 make_scoped_ptr( 25 make_scoped_ptr(
17 new FakeFloatAnimationCurve(duration)).PassAs<AnimationCurve>(), 26 new FakeFloatAnimationCurve(duration)).PassAs<AnimationCurve>(),
18 0, 27 0,
19 1, 28 1,
20 Animation::Opacity)); 29 Animation::Opacity));
21 to_return->set_iterations(iterations); 30 to_return->set_iterations(iterations);
22 return to_return.Pass(); 31 return to_return.Pass();
23 } 32 }
24 33
25 scoped_ptr<Animation> CreateAnimation(int iterations) { 34 scoped_ptr<Animation> CreateAnimation(int iterations) {
26 return CreateAnimation(iterations, 1); 35 return CreateAnimation(iterations, 1);
27 } 36 }
28 37
29 TEST(AnimationTest, TrimTimeZeroIterations) { 38 TEST(AnimationTest, TrimTimeZeroIterations) {
30 scoped_ptr<Animation> anim(CreateAnimation(0)); 39 scoped_ptr<Animation> anim(CreateAnimation(0));
31 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(-1.0)); 40 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(GetTimeTicks(-1.0)));
32 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(0.0)); 41 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(GetTimeTicks(0.0)));
33 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(1.0)); 42 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(GetTimeTicks(1.0)));
34 } 43 }
35 44
36 TEST(AnimationTest, TrimTimeOneIteration) { 45 TEST(AnimationTest, TrimTimeOneIteration) {
37 scoped_ptr<Animation> anim(CreateAnimation(1)); 46 scoped_ptr<Animation> anim(CreateAnimation(1));
38 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(-1.0)); 47 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(GetTimeTicks(-1.0)));
39 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(0.0)); 48 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(GetTimeTicks(0.0)));
40 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(1.0)); 49 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(GetTimeTicks(1.0)));
41 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(2.0)); 50 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(GetTimeTicks(2.0)));
42 } 51 }
43 52
44 TEST(AnimationTest, TrimTimeInfiniteIterations) { 53 TEST(AnimationTest, TrimTimeInfiniteIterations) {
45 scoped_ptr<Animation> anim(CreateAnimation(-1)); 54 scoped_ptr<Animation> anim(CreateAnimation(-1));
46 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(0.0)); 55 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(GetTimeTicks(0.0)));
47 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(0.5)); 56 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(GetTimeTicks(0.5)));
48 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(1.0)); 57 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(GetTimeTicks(1.0)));
49 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(1.5)); 58 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(GetTimeTicks(1.5)));
50 } 59 }
51 60
52 TEST(AnimationTest, TrimTimeAlternating) { 61 TEST(AnimationTest, TrimTimeAlternating) {
53 scoped_ptr<Animation> anim(CreateAnimation(-1)); 62 scoped_ptr<Animation> anim(CreateAnimation(-1));
54 anim->set_alternates_direction(true); 63 anim->set_alternates_direction(true);
55 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(0.0)); 64 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(GetTimeTicks(0.0)));
56 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(0.5)); 65 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(GetTimeTicks(0.5)));
57 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(1.0)); 66 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(GetTimeTicks(1.0)));
58 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(1.25)); 67 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(GetTimeTicks(1.25)));
59 } 68 }
60 69
61 TEST(AnimationTest, TrimTimeStartTime) { 70 TEST(AnimationTest, TrimTimeStartTime) {
62 scoped_ptr<Animation> anim(CreateAnimation(1)); 71 scoped_ptr<Animation> anim(CreateAnimation(1));
63 anim->set_start_time(4); 72 anim->set_start_time(GetTimeTicks(4));
64 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(0.0)); 73 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(GetTimeTicks(0.0)));
65 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(4.0)); 74 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(GetTimeTicks(4.0)));
66 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(4.5)); 75 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(GetTimeTicks(4.5)));
67 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(5.0)); 76 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(GetTimeTicks(5.0)));
68 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(6.0)); 77 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(GetTimeTicks(6.0)));
69 } 78 }
70 79
71 TEST(AnimationTest, TrimTimeTimeOffset) { 80 TEST(AnimationTest, TrimTimeTimeOffset) {
72 scoped_ptr<Animation> anim(CreateAnimation(1)); 81 scoped_ptr<Animation> anim(CreateAnimation(1));
73 anim->set_time_offset(4); 82 anim->set_time_offset(GetTimeDelta(4));
74 anim->set_start_time(4); 83 anim->set_start_time(GetTimeTicks(4));
75 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(0.0)); 84 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(GetTimeTicks(0.0)));
76 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(0.5)); 85 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(GetTimeTicks(0.5)));
77 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(1.0)); 86 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(GetTimeTicks(1.0)));
78 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(1.0)); 87 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(GetTimeTicks(1.0)));
79 } 88 }
80 89
81 TEST(AnimationTest, TrimTimeNegativeTimeOffset) { 90 TEST(AnimationTest, TrimTimeNegativeTimeOffset) {
82 scoped_ptr<Animation> anim(CreateAnimation(1)); 91 scoped_ptr<Animation> anim(CreateAnimation(1));
83 anim->set_time_offset(-4); 92 anim->set_time_offset(GetTimeDelta(-4));
84 93
85 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(0.0)); 94 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(GetTimeTicks(0.0)));
86 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(4.0)); 95 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(GetTimeTicks(4.0)));
87 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(4.5)); 96 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(GetTimeTicks(4.5)));
88 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(5.0)); 97 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(GetTimeTicks(5.0)));
89 } 98 }
90 99
91 TEST(AnimationTest, TrimTimePauseResume) { 100 TEST(AnimationTest, TrimTimePauseResume) {
92 scoped_ptr<Animation> anim(CreateAnimation(1)); 101 scoped_ptr<Animation> anim(CreateAnimation(1));
93 anim->SetRunState(Animation::Running, 0.0); 102 anim->SetRunState(Animation::Running, GetTimeTicks(0.0));
94 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(0.0)); 103 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(GetTimeTicks(0.0)));
95 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(0.5)); 104 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(GetTimeTicks(0.5)));
96 anim->SetRunState(Animation::Paused, 0.5); 105 anim->SetRunState(Animation::Paused, GetTimeTicks(0.5));
97 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(1024.0)); 106 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(GetTimeTicks(1024.0)));
98 anim->SetRunState(Animation::Running, 1024.0); 107 anim->SetRunState(Animation::Running, GetTimeTicks(1024.0));
99 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(1024.0)); 108 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(GetTimeTicks(1024.0)));
100 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(1024.5)); 109 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(GetTimeTicks(1024.5)));
101 } 110 }
102 111
103 TEST(AnimationTest, TrimTimeSuspendResume) { 112 TEST(AnimationTest, TrimTimeSuspendResume) {
104 scoped_ptr<Animation> anim(CreateAnimation(1)); 113 scoped_ptr<Animation> anim(CreateAnimation(1));
105 anim->SetRunState(Animation::Running, 0.0); 114 anim->SetRunState(Animation::Running, GetTimeTicks(0.0));
106 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(0.0)); 115 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(GetTimeTicks(0.0)));
107 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(0.5)); 116 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(GetTimeTicks(0.5)));
108 anim->Suspend(0.5); 117 anim->Suspend(GetTimeTicks(0.5));
109 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(1024.0)); 118 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(GetTimeTicks(1024.0)));
110 anim->Resume(1024); 119 anim->Resume(GetTimeTicks(1024));
111 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(1024.0)); 120 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(GetTimeTicks(1024.0)));
112 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(1024.5)); 121 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(GetTimeTicks(1024.5)));
113 } 122 }
114 123
115 TEST(AnimationTest, TrimTimeZeroDuration) { 124 TEST(AnimationTest, TrimTimeZeroDuration) {
116 scoped_ptr<Animation> anim(CreateAnimation(0, 0)); 125 scoped_ptr<Animation> anim(CreateAnimation(0, 0));
117 anim->SetRunState(Animation::Running, 0.0); 126 anim->SetRunState(Animation::Running, GetTimeTicks(0.0));
118 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(-1.0)); 127 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(GetTimeTicks(-1.0)));
119 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(0.0)); 128 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(GetTimeTicks(0.0)));
120 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(1.0)); 129 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(GetTimeTicks(1.0)));
121 } 130 }
122 131
123 TEST(AnimationTest, TrimTimeStarting) { 132 TEST(AnimationTest, TrimTimeStarting) {
124 scoped_ptr<Animation> anim(CreateAnimation(1, 5.0)); 133 scoped_ptr<Animation> anim(CreateAnimation(1, 5.0));
125 anim->SetRunState(Animation::Starting, 0.0); 134 anim->SetRunState(Animation::Starting, GetTimeTicks(0.0));
126 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(-1.0)); 135 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(GetTimeTicks(-1.0)));
127 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(0.0)); 136 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(GetTimeTicks(0.0)));
128 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(1.0)); 137 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(GetTimeTicks(1.0)));
129 anim->set_time_offset(2.0); 138 anim->set_time_offset(GetTimeDelta(2.0));
130 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(-1.0)); 139 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(GetTimeTicks(-1.0)));
131 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(0.0)); 140 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(GetTimeTicks(0.0)));
132 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(1.0)); 141 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(GetTimeTicks(1.0)));
133 anim->set_start_time(1.0); 142 anim->set_start_time(GetTimeTicks(1.0));
134 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(-1.0)); 143 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(GetTimeTicks(-1.0)));
135 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(0.0)); 144 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(GetTimeTicks(0.0)));
136 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(1.0)); 145 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(GetTimeTicks(1.0)));
137 EXPECT_EQ(3.0, anim->TrimTimeToCurrentIteration(2.0)); 146 EXPECT_EQ(3.0, anim->TrimTimeToCurrentIteration(GetTimeTicks(2.0)));
138 } 147 }
139 148
140 TEST(AnimationTest, TrimTimeNeedsSynchronizedStartTime) { 149 TEST(AnimationTest, TrimTimeNeedsSynchronizedStartTime) {
141 scoped_ptr<Animation> anim(CreateAnimation(1, 5.0)); 150 scoped_ptr<Animation> anim(CreateAnimation(1, 5.0));
142 anim->SetRunState(Animation::Running, 0.0); 151 anim->SetRunState(Animation::Running, GetTimeTicks(0.0));
143 anim->set_needs_synchronized_start_time(true); 152 anim->set_needs_synchronized_start_time(true);
144 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(-1.0)); 153 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(GetTimeTicks(-1.0)));
145 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(0.0)); 154 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(GetTimeTicks(0.0)));
146 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(1.0)); 155 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(GetTimeTicks(1.0)));
147 anim->set_time_offset(2.0); 156 anim->set_time_offset(GetTimeDelta(2.0));
148 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(-1.0)); 157 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(GetTimeTicks(-1.0)));
149 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(0.0)); 158 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(GetTimeTicks(0.0)));
150 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(1.0)); 159 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(GetTimeTicks(1.0)));
151 anim->set_start_time(1.0); 160 anim->set_start_time(GetTimeTicks(1.0));
152 anim->set_needs_synchronized_start_time(false); 161 anim->set_needs_synchronized_start_time(false);
153 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(0.0)); 162 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(GetTimeTicks(0.0)));
154 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(1.0)); 163 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(GetTimeTicks(1.0)));
155 EXPECT_EQ(3.0, anim->TrimTimeToCurrentIteration(2.0)); 164 EXPECT_EQ(3.0, anim->TrimTimeToCurrentIteration(GetTimeTicks(2.0)));
156 } 165 }
157 166
158 TEST(AnimationTest, IsFinishedAtZeroIterations) { 167 TEST(AnimationTest, IsFinishedAtZeroIterations) {
159 scoped_ptr<Animation> anim(CreateAnimation(0)); 168 scoped_ptr<Animation> anim(CreateAnimation(0));
160 anim->SetRunState(Animation::Running, 0.0); 169 anim->SetRunState(Animation::Running, GetTimeTicks(0.0));
161 EXPECT_FALSE(anim->IsFinishedAt(-1.0)); 170 EXPECT_FALSE(anim->IsFinishedAt(GetTimeTicks(-1.0)));
162 EXPECT_TRUE(anim->IsFinishedAt(0.0)); 171 EXPECT_TRUE(anim->IsFinishedAt(GetTimeTicks(0.0)));
163 EXPECT_TRUE(anim->IsFinishedAt(1.0)); 172 EXPECT_TRUE(anim->IsFinishedAt(GetTimeTicks(1.0)));
164 } 173 }
165 174
166 TEST(AnimationTest, IsFinishedAtOneIteration) { 175 TEST(AnimationTest, IsFinishedAtOneIteration) {
167 scoped_ptr<Animation> anim(CreateAnimation(1)); 176 scoped_ptr<Animation> anim(CreateAnimation(1));
168 anim->SetRunState(Animation::Running, 0.0); 177 anim->SetRunState(Animation::Running, GetTimeTicks(0.0));
169 EXPECT_FALSE(anim->IsFinishedAt(-1.0)); 178 EXPECT_FALSE(anim->IsFinishedAt(GetTimeTicks(-1.0)));
170 EXPECT_FALSE(anim->IsFinishedAt(0.0)); 179 EXPECT_FALSE(anim->IsFinishedAt(GetTimeTicks(0.0)));
171 EXPECT_TRUE(anim->IsFinishedAt(1.0)); 180 EXPECT_TRUE(anim->IsFinishedAt(GetTimeTicks(1.0)));
172 EXPECT_TRUE(anim->IsFinishedAt(2.0)); 181 EXPECT_TRUE(anim->IsFinishedAt(GetTimeTicks(2.0)));
173 } 182 }
174 183
175 TEST(AnimationTest, IsFinishedAtInfiniteIterations) { 184 TEST(AnimationTest, IsFinishedAtInfiniteIterations) {
176 scoped_ptr<Animation> anim(CreateAnimation(-1)); 185 scoped_ptr<Animation> anim(CreateAnimation(-1));
177 anim->SetRunState(Animation::Running, 0.0); 186 anim->SetRunState(Animation::Running, GetTimeTicks(0.0));
178 EXPECT_FALSE(anim->IsFinishedAt(0.0)); 187 EXPECT_FALSE(anim->IsFinishedAt(GetTimeTicks(0.0)));
179 EXPECT_FALSE(anim->IsFinishedAt(0.5)); 188 EXPECT_FALSE(anim->IsFinishedAt(GetTimeTicks(0.5)));
180 EXPECT_FALSE(anim->IsFinishedAt(1.0)); 189 EXPECT_FALSE(anim->IsFinishedAt(GetTimeTicks(1.0)));
181 EXPECT_FALSE(anim->IsFinishedAt(1.5)); 190 EXPECT_FALSE(anim->IsFinishedAt(GetTimeTicks(1.5)));
182 } 191 }
183 192
184 TEST(AnimationTest, IsFinishedNegativeTimeOffset) { 193 TEST(AnimationTest, IsFinishedNegativeTimeOffset) {
185 scoped_ptr<Animation> anim(CreateAnimation(1)); 194 scoped_ptr<Animation> anim(CreateAnimation(1));
186 anim->set_time_offset(-0.5); 195 anim->set_time_offset(GetTimeDelta(-0.5));
187 anim->SetRunState(Animation::Running, 0.0); 196 anim->SetRunState(Animation::Running, GetTimeTicks(0.0));
188 197
189 EXPECT_FALSE(anim->IsFinishedAt(-1.0)); 198 EXPECT_FALSE(anim->IsFinishedAt(GetTimeTicks(-1.0)));
190 EXPECT_FALSE(anim->IsFinishedAt(0.0)); 199 EXPECT_FALSE(anim->IsFinishedAt(GetTimeTicks(0.0)));
191 EXPECT_FALSE(anim->IsFinishedAt(0.5)); 200 EXPECT_FALSE(anim->IsFinishedAt(GetTimeTicks(0.5)));
192 EXPECT_FALSE(anim->IsFinishedAt(1.0)); 201 EXPECT_FALSE(anim->IsFinishedAt(GetTimeTicks(1.0)));
193 EXPECT_TRUE(anim->IsFinishedAt(1.5)); 202 EXPECT_TRUE(anim->IsFinishedAt(GetTimeTicks(1.5)));
194 EXPECT_TRUE(anim->IsFinishedAt(2.0)); 203 EXPECT_TRUE(anim->IsFinishedAt(GetTimeTicks(2.0)));
195 EXPECT_TRUE(anim->IsFinishedAt(2.5)); 204 EXPECT_TRUE(anim->IsFinishedAt(GetTimeTicks(2.5)));
196 } 205 }
197 206
198 TEST(AnimationTest, IsFinishedPositiveTimeOffset) { 207 TEST(AnimationTest, IsFinishedPositiveTimeOffset) {
199 scoped_ptr<Animation> anim(CreateAnimation(1)); 208 scoped_ptr<Animation> anim(CreateAnimation(1));
200 anim->set_time_offset(0.5); 209 anim->set_time_offset(GetTimeDelta(0.5));
201 anim->SetRunState(Animation::Running, 0.0); 210 anim->SetRunState(Animation::Running, GetTimeTicks(0.0));
202 211
203 EXPECT_FALSE(anim->IsFinishedAt(-1.0)); 212 EXPECT_FALSE(anim->IsFinishedAt(GetTimeTicks(-1.0)));
204 EXPECT_FALSE(anim->IsFinishedAt(0.0)); 213 EXPECT_FALSE(anim->IsFinishedAt(GetTimeTicks(0.0)));
205 EXPECT_TRUE(anim->IsFinishedAt(0.5)); 214 EXPECT_TRUE(anim->IsFinishedAt(GetTimeTicks(0.5)));
206 EXPECT_TRUE(anim->IsFinishedAt(1.0)); 215 EXPECT_TRUE(anim->IsFinishedAt(GetTimeTicks(1.0)));
207 } 216 }
208 217
209 TEST(AnimationTest, IsFinishedAtNotRunning) { 218 TEST(AnimationTest, IsFinishedAtNotRunning) {
210 scoped_ptr<Animation> anim(CreateAnimation(0)); 219 scoped_ptr<Animation> anim(CreateAnimation(0));
211 anim->SetRunState(Animation::Running, 0.0); 220 anim->SetRunState(Animation::Running, GetTimeTicks(0.0));
212 EXPECT_TRUE(anim->IsFinishedAt(0.0)); 221 EXPECT_TRUE(anim->IsFinishedAt(GetTimeTicks(0.0)));
213 anim->SetRunState(Animation::Paused, 0.0); 222 anim->SetRunState(Animation::Paused, GetTimeTicks(0.0));
214 EXPECT_FALSE(anim->IsFinishedAt(0.0)); 223 EXPECT_FALSE(anim->IsFinishedAt(GetTimeTicks(0.0)));
215 anim->SetRunState(Animation::WaitingForTargetAvailability, 0.0); 224 anim->SetRunState(Animation::WaitingForTargetAvailability, GetTimeTicks(0.0));
216 EXPECT_FALSE(anim->IsFinishedAt(0.0)); 225 EXPECT_FALSE(anim->IsFinishedAt(GetTimeTicks(0.0)));
217 anim->SetRunState(Animation::Finished, 0.0); 226 anim->SetRunState(Animation::Finished, GetTimeTicks(0.0));
218 EXPECT_TRUE(anim->IsFinishedAt(0.0)); 227 EXPECT_TRUE(anim->IsFinishedAt(GetTimeTicks(0.0)));
219 anim->SetRunState(Animation::Aborted, 0.0); 228 anim->SetRunState(Animation::Aborted, GetTimeTicks(0.0));
220 EXPECT_TRUE(anim->IsFinishedAt(0.0)); 229 EXPECT_TRUE(anim->IsFinishedAt(GetTimeTicks(0.0)));
221 } 230 }
222 231
223 TEST(AnimationTest, IsFinished) { 232 TEST(AnimationTest, IsFinished) {
224 scoped_ptr<Animation> anim(CreateAnimation(1)); 233 scoped_ptr<Animation> anim(CreateAnimation(1));
225 anim->SetRunState(Animation::Running, 0.0); 234 anim->SetRunState(Animation::Running, GetTimeTicks(0.0));
226 EXPECT_FALSE(anim->is_finished()); 235 EXPECT_FALSE(anim->is_finished());
227 anim->SetRunState(Animation::Paused, 0.0); 236 anim->SetRunState(Animation::Paused, GetTimeTicks(0.0));
228 EXPECT_FALSE(anim->is_finished()); 237 EXPECT_FALSE(anim->is_finished());
229 anim->SetRunState(Animation::WaitingForTargetAvailability, 0.0); 238 anim->SetRunState(Animation::WaitingForTargetAvailability, GetTimeTicks(0.0));
230 EXPECT_FALSE(anim->is_finished()); 239 EXPECT_FALSE(anim->is_finished());
231 anim->SetRunState(Animation::Finished, 0.0); 240 anim->SetRunState(Animation::Finished, GetTimeTicks(0.0));
232 EXPECT_TRUE(anim->is_finished()); 241 EXPECT_TRUE(anim->is_finished());
233 anim->SetRunState(Animation::Aborted, 0.0); 242 anim->SetRunState(Animation::Aborted, GetTimeTicks(0.0));
234 EXPECT_TRUE(anim->is_finished()); 243 EXPECT_TRUE(anim->is_finished());
235 } 244 }
236 245
237 TEST(AnimationTest, IsFinishedNeedsSynchronizedStartTime) { 246 TEST(AnimationTest, IsFinishedNeedsSynchronizedStartTime) {
238 scoped_ptr<Animation> anim(CreateAnimation(1)); 247 scoped_ptr<Animation> anim(CreateAnimation(1));
239 anim->SetRunState(Animation::Running, 2.0); 248 anim->SetRunState(Animation::Running, GetTimeTicks(2.0));
240 EXPECT_FALSE(anim->is_finished()); 249 EXPECT_FALSE(anim->is_finished());
241 anim->SetRunState(Animation::Paused, 2.0); 250 anim->SetRunState(Animation::Paused, GetTimeTicks(2.0));
242 EXPECT_FALSE(anim->is_finished()); 251 EXPECT_FALSE(anim->is_finished());
243 anim->SetRunState(Animation::WaitingForTargetAvailability, 2.0); 252 anim->SetRunState(Animation::WaitingForTargetAvailability, GetTimeTicks(2.0));
244 EXPECT_FALSE(anim->is_finished()); 253 EXPECT_FALSE(anim->is_finished());
245 anim->SetRunState(Animation::Finished, 0.0); 254 anim->SetRunState(Animation::Finished, GetTimeTicks(0.0));
246 EXPECT_TRUE(anim->is_finished()); 255 EXPECT_TRUE(anim->is_finished());
247 anim->SetRunState(Animation::Aborted, 0.0); 256 anim->SetRunState(Animation::Aborted, GetTimeTicks(0.0));
248 EXPECT_TRUE(anim->is_finished()); 257 EXPECT_TRUE(anim->is_finished());
249 } 258 }
250 259
251 TEST(AnimationTest, RunStateChangesIgnoredWhileSuspended) { 260 TEST(AnimationTest, RunStateChangesIgnoredWhileSuspended) {
252 scoped_ptr<Animation> anim(CreateAnimation(1)); 261 scoped_ptr<Animation> anim(CreateAnimation(1));
253 anim->Suspend(0); 262 anim->Suspend(GetTimeTicks(0));
254 EXPECT_EQ(Animation::Paused, anim->run_state()); 263 EXPECT_EQ(Animation::Paused, anim->run_state());
255 anim->SetRunState(Animation::Running, 0.0); 264 anim->SetRunState(Animation::Running, GetTimeTicks(0.0));
256 EXPECT_EQ(Animation::Paused, anim->run_state()); 265 EXPECT_EQ(Animation::Paused, anim->run_state());
257 anim->Resume(0); 266 anim->Resume(GetTimeTicks(0));
258 anim->SetRunState(Animation::Running, 0.0); 267 anim->SetRunState(Animation::Running, GetTimeTicks(0.0));
259 EXPECT_EQ(Animation::Running, anim->run_state()); 268 EXPECT_EQ(Animation::Running, anim->run_state());
260 } 269 }
261 270
262 } // namespace 271 } // namespace
263 } // namespace cc 272 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698