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

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

Issue 2032643003: CC Animation: Erase EaseTimingFunction helpers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@gmock
Patch Set: Created 4 years, 6 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/scroll_offset_animation_curve.h" 5 #include "cc/animation/scroll_offset_animation_curve.h"
6 6
7 #include "cc/animation/timing_function.h" 7 #include "cc/animation/timing_function.h"
8 #include "cc/base/time_util.h" 8 #include "cc/base/time_util.h"
9 #include "cc/test/geometry_test_utils.h" 9 #include "cc/test/geometry_test_utils.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
11 11
12 const double kConstantDuration = 9.0; 12 const double kConstantDuration = 9.0;
13 const double kDurationDivisor = 60.0; 13 const double kDurationDivisor = 60.0;
14 14
15 namespace cc { 15 namespace cc {
16 namespace { 16 namespace {
17 17
18 TEST(ScrollOffsetAnimationCurveTest, DeltaBasedDuration) { 18 TEST(ScrollOffsetAnimationCurveTest, DeltaBasedDuration) {
19 gfx::ScrollOffset target_value(100.f, 200.f); 19 gfx::ScrollOffset target_value(100.f, 200.f);
20 std::unique_ptr<ScrollOffsetAnimationCurve> curve( 20 std::unique_ptr<ScrollOffsetAnimationCurve> curve(
21 ScrollOffsetAnimationCurve::Create(target_value, 21 ScrollOffsetAnimationCurve::Create(
22 EaseInOutTimingFunction::Create())); 22 target_value, CubicBezierTimingFunction::CreatePreset(
23 CubicBezierTimingFunction::EaseType::EASE_IN_OUT)));
23 24
24 curve->SetInitialValue(target_value); 25 curve->SetInitialValue(target_value);
25 EXPECT_DOUBLE_EQ(0.0, curve->Duration().InSecondsF()); 26 EXPECT_DOUBLE_EQ(0.0, curve->Duration().InSecondsF());
26 27
27 // x decreases, y stays the same. 28 // x decreases, y stays the same.
28 curve->SetInitialValue(gfx::ScrollOffset(136.f, 200.f)); 29 curve->SetInitialValue(gfx::ScrollOffset(136.f, 200.f));
29 EXPECT_DOUBLE_EQ(0.1, curve->Duration().InSecondsF()); 30 EXPECT_DOUBLE_EQ(0.1, curve->Duration().InSecondsF());
30 31
31 // x increases, y stays the same. 32 // x increases, y stays the same.
32 curve->SetInitialValue(gfx::ScrollOffset(19.f, 200.f)); 33 curve->SetInitialValue(gfx::ScrollOffset(19.f, 200.f));
(...skipping 21 matching lines...) Expand all
54 55
55 // x increases, y increases. 56 // x increases, y increases.
56 curve->SetInitialValue(gfx::ScrollOffset(95.f, 191.f)); 57 curve->SetInitialValue(gfx::ScrollOffset(95.f, 191.f));
57 EXPECT_DOUBLE_EQ(0.05, curve->Duration().InSecondsF()); 58 EXPECT_DOUBLE_EQ(0.05, curve->Duration().InSecondsF());
58 } 59 }
59 60
60 TEST(ScrollOffsetAnimationCurveTest, GetValue) { 61 TEST(ScrollOffsetAnimationCurveTest, GetValue) {
61 gfx::ScrollOffset initial_value(2.f, 40.f); 62 gfx::ScrollOffset initial_value(2.f, 40.f);
62 gfx::ScrollOffset target_value(10.f, 20.f); 63 gfx::ScrollOffset target_value(10.f, 20.f);
63 std::unique_ptr<ScrollOffsetAnimationCurve> curve( 64 std::unique_ptr<ScrollOffsetAnimationCurve> curve(
64 ScrollOffsetAnimationCurve::Create(target_value, 65 ScrollOffsetAnimationCurve::Create(
65 EaseInOutTimingFunction::Create())); 66 target_value, CubicBezierTimingFunction::CreatePreset(
67 CubicBezierTimingFunction::EaseType::EASE_IN_OUT)));
66 curve->SetInitialValue(initial_value); 68 curve->SetInitialValue(initial_value);
67 69
68 base::TimeDelta duration = curve->Duration(); 70 base::TimeDelta duration = curve->Duration();
69 EXPECT_GT(curve->Duration().InSecondsF(), 0); 71 EXPECT_GT(curve->Duration().InSecondsF(), 0);
70 EXPECT_LT(curve->Duration().InSecondsF(), 0.1); 72 EXPECT_LT(curve->Duration().InSecondsF(), 0.1);
71 73
72 EXPECT_EQ(AnimationCurve::SCROLL_OFFSET, curve->Type()); 74 EXPECT_EQ(AnimationCurve::SCROLL_OFFSET, curve->Type());
73 EXPECT_EQ(duration, curve->Duration()); 75 EXPECT_EQ(duration, curve->Duration());
74 76
75 EXPECT_VECTOR2DF_EQ(initial_value, 77 EXPECT_VECTOR2DF_EQ(initial_value,
(...skipping 11 matching lines...) Expand all
87 gfx::ScrollOffset value = curve->GetValue(TimeUtil::Scale(duration, 0.25f)); 89 gfx::ScrollOffset value = curve->GetValue(TimeUtil::Scale(duration, 0.25f));
88 EXPECT_NEAR(3.0333f, value.x(), 0.0002f); 90 EXPECT_NEAR(3.0333f, value.x(), 0.0002f);
89 EXPECT_NEAR(37.4168f, value.y(), 0.0002f); 91 EXPECT_NEAR(37.4168f, value.y(), 0.0002f);
90 } 92 }
91 93
92 // Verify that a clone behaves exactly like the original. 94 // Verify that a clone behaves exactly like the original.
93 TEST(ScrollOffsetAnimationCurveTest, Clone) { 95 TEST(ScrollOffsetAnimationCurveTest, Clone) {
94 gfx::ScrollOffset initial_value(2.f, 40.f); 96 gfx::ScrollOffset initial_value(2.f, 40.f);
95 gfx::ScrollOffset target_value(10.f, 20.f); 97 gfx::ScrollOffset target_value(10.f, 20.f);
96 std::unique_ptr<ScrollOffsetAnimationCurve> curve( 98 std::unique_ptr<ScrollOffsetAnimationCurve> curve(
97 ScrollOffsetAnimationCurve::Create(target_value, 99 ScrollOffsetAnimationCurve::Create(
98 EaseInOutTimingFunction::Create())); 100 target_value, CubicBezierTimingFunction::CreatePreset(
101 CubicBezierTimingFunction::EaseType::EASE_IN_OUT)));
99 curve->SetInitialValue(initial_value); 102 curve->SetInitialValue(initial_value);
100 base::TimeDelta duration = curve->Duration(); 103 base::TimeDelta duration = curve->Duration();
101 104
102 std::unique_ptr<AnimationCurve> clone(curve->Clone()); 105 std::unique_ptr<AnimationCurve> clone(curve->Clone());
103 106
104 EXPECT_EQ(AnimationCurve::SCROLL_OFFSET, clone->Type()); 107 EXPECT_EQ(AnimationCurve::SCROLL_OFFSET, clone->Type());
105 EXPECT_EQ(duration, clone->Duration()); 108 EXPECT_EQ(duration, clone->Duration());
106 109
107 EXPECT_VECTOR2DF_EQ(initial_value, 110 EXPECT_VECTOR2DF_EQ(initial_value,
108 clone->ToScrollOffsetAnimationCurve()->GetValue( 111 clone->ToScrollOffsetAnimationCurve()->GetValue(
(...skipping 17 matching lines...) Expand all
126 EXPECT_NEAR(3.0333f, value.x(), 0.0002f); 129 EXPECT_NEAR(3.0333f, value.x(), 0.0002f);
127 EXPECT_NEAR(37.4168f, value.y(), 0.0002f); 130 EXPECT_NEAR(37.4168f, value.y(), 0.0002f);
128 } 131 }
129 132
130 TEST(ScrollOffsetAnimationCurveTest, UpdateTarget) { 133 TEST(ScrollOffsetAnimationCurveTest, UpdateTarget) {
131 gfx::ScrollOffset initial_value(0.f, 0.f); 134 gfx::ScrollOffset initial_value(0.f, 0.f);
132 gfx::ScrollOffset target_value(0.f, 3600.f); 135 gfx::ScrollOffset target_value(0.f, 3600.f);
133 double duration = kConstantDuration / kDurationDivisor; 136 double duration = kConstantDuration / kDurationDivisor;
134 std::unique_ptr<ScrollOffsetAnimationCurve> curve( 137 std::unique_ptr<ScrollOffsetAnimationCurve> curve(
135 ScrollOffsetAnimationCurve::Create( 138 ScrollOffsetAnimationCurve::Create(
136 target_value, EaseInOutTimingFunction::Create(), 139 target_value, CubicBezierTimingFunction::CreatePreset(
140 CubicBezierTimingFunction::EaseType::EASE_IN_OUT),
137 ScrollOffsetAnimationCurve::DurationBehavior::CONSTANT)); 141 ScrollOffsetAnimationCurve::DurationBehavior::CONSTANT));
138 curve->SetInitialValue(initial_value); 142 curve->SetInitialValue(initial_value);
139 EXPECT_NEAR(duration, curve->Duration().InSecondsF(), 0.0002f); 143 EXPECT_NEAR(duration, curve->Duration().InSecondsF(), 0.0002f);
140 EXPECT_NEAR( 144 EXPECT_NEAR(
141 1800.0, 145 1800.0,
142 curve->GetValue(base::TimeDelta::FromSecondsD(duration / 2.0)).y(), 146 curve->GetValue(base::TimeDelta::FromSecondsD(duration / 2.0)).y(),
143 0.0002f); 147 0.0002f);
144 EXPECT_NEAR(3600.0, 148 EXPECT_NEAR(3600.0,
145 curve->GetValue(base::TimeDelta::FromSecondsD(duration)).y(), 149 curve->GetValue(base::TimeDelta::FromSecondsD(duration)).y(),
146 0.0002f); 150 0.0002f);
(...skipping 22 matching lines...) Expand all
169 0.1f); 173 0.1f);
170 EXPECT_NEAR( 174 EXPECT_NEAR(
171 7200.0, 175 7200.0,
172 curve->GetValue(base::TimeDelta::FromSecondsD(duration * 1.08)).y(), 176 curve->GetValue(base::TimeDelta::FromSecondsD(duration * 1.08)).y(),
173 0.0002f); 177 0.0002f);
174 } 178 }
175 179
176 TEST(ScrollOffsetAnimationCurveTest, InverseDeltaDuration) { 180 TEST(ScrollOffsetAnimationCurveTest, InverseDeltaDuration) {
177 std::unique_ptr<ScrollOffsetAnimationCurve> curve( 181 std::unique_ptr<ScrollOffsetAnimationCurve> curve(
178 ScrollOffsetAnimationCurve::Create( 182 ScrollOffsetAnimationCurve::Create(
179 gfx::ScrollOffset(0.f, 100.f), EaseInOutTimingFunction::Create(), 183 gfx::ScrollOffset(0.f, 100.f),
184 CubicBezierTimingFunction::CreatePreset(
185 CubicBezierTimingFunction::EaseType::EASE_IN_OUT),
180 ScrollOffsetAnimationCurve::DurationBehavior::INVERSE_DELTA)); 186 ScrollOffsetAnimationCurve::DurationBehavior::INVERSE_DELTA));
181 187
182 curve->SetInitialValue(gfx::ScrollOffset()); 188 curve->SetInitialValue(gfx::ScrollOffset());
183 double smallDeltaDuration = curve->Duration().InSecondsF(); 189 double smallDeltaDuration = curve->Duration().InSecondsF();
184 190
185 curve->UpdateTarget(0.f, gfx::ScrollOffset(0.f, 300.f)); 191 curve->UpdateTarget(0.f, gfx::ScrollOffset(0.f, 300.f));
186 double mediumDeltaDuration = curve->Duration().InSecondsF(); 192 double mediumDeltaDuration = curve->Duration().InSecondsF();
187 193
188 curve->UpdateTarget(0.f, gfx::ScrollOffset(0.f, 500.f)); 194 curve->UpdateTarget(0.f, gfx::ScrollOffset(0.f, 500.f));
189 double largeDeltaDuration = curve->Duration().InSecondsF(); 195 double largeDeltaDuration = curve->Duration().InSecondsF();
190 196
191 EXPECT_GT(smallDeltaDuration, mediumDeltaDuration); 197 EXPECT_GT(smallDeltaDuration, mediumDeltaDuration);
192 EXPECT_GT(mediumDeltaDuration, largeDeltaDuration); 198 EXPECT_GT(mediumDeltaDuration, largeDeltaDuration);
193 199
194 curve->UpdateTarget(0.f, gfx::ScrollOffset(0.f, 5000.f)); 200 curve->UpdateTarget(0.f, gfx::ScrollOffset(0.f, 5000.f));
195 EXPECT_EQ(largeDeltaDuration, curve->Duration().InSecondsF()); 201 EXPECT_EQ(largeDeltaDuration, curve->Duration().InSecondsF());
196 } 202 }
197 203
198 } // namespace 204 } // namespace
199 } // namespace cc 205 } // namespace cc
OLDNEW
« no previous file with comments | « cc/animation/scroll_offset_animation_curve.cc ('k') | cc/animation/scroll_offset_animations_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698