| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2013, Google Inc. All rights reserved. | 2 * Copyright (c) 2013, Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 | 30 |
| 31 #include "core/animation/TimingCalculations.h" | 31 #include "core/animation/TimingCalculations.h" |
| 32 | 32 |
| 33 #include "testing/gtest/include/gtest/gtest.h" | 33 #include "testing/gtest/include/gtest/gtest.h" |
| 34 | 34 |
| 35 namespace blink { | 35 namespace blink { |
| 36 | 36 |
| 37 TEST(AnimationTimingCalculationsTest, ActiveTime) { | 37 TEST(AnimationTimingCalculationsTest, ActiveTime) { |
| 38 Timing timing; | 38 Timing timing; |
| 39 | 39 |
| 40 // calculateActiveTime(activeDuration, fillMode, localTime, parentPhase, phase
, timing) | 40 // calculateActiveTime( |
| 41 // activeDuration, fillMode, localTime, parentPhase, phase, timing) |
| 41 | 42 |
| 42 // Before Phase | 43 // Before Phase |
| 43 timing.startDelay = 10; | 44 timing.startDelay = 10; |
| 44 EXPECT_TRUE(isNull(calculateActiveTime( | 45 EXPECT_TRUE(isNull(calculateActiveTime( |
| 45 20, Timing::FillMode::FORWARDS, 0, AnimationEffectReadOnly::PhaseActive, | 46 20, Timing::FillMode::FORWARDS, 0, AnimationEffectReadOnly::PhaseActive, |
| 46 AnimationEffectReadOnly::PhaseBefore, timing))); | 47 AnimationEffectReadOnly::PhaseBefore, timing))); |
| 47 EXPECT_TRUE(isNull(calculateActiveTime( | 48 EXPECT_TRUE(isNull(calculateActiveTime( |
| 48 20, Timing::FillMode::NONE, 0, AnimationEffectReadOnly::PhaseActive, | 49 20, Timing::FillMode::NONE, 0, AnimationEffectReadOnly::PhaseActive, |
| 49 AnimationEffectReadOnly::PhaseBefore, timing))); | 50 AnimationEffectReadOnly::PhaseBefore, timing))); |
| 50 EXPECT_EQ(0, | 51 EXPECT_EQ(0, |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 timing.playbackRate = -1; | 134 timing.playbackRate = -1; |
| 134 EXPECT_EQ(std::numeric_limits<double>::infinity(), | 135 EXPECT_EQ(std::numeric_limits<double>::infinity(), |
| 135 calculateScaledActiveTime(std::numeric_limits<double>::infinity(), | 136 calculateScaledActiveTime(std::numeric_limits<double>::infinity(), |
| 136 std::numeric_limits<double>::infinity(), | 137 std::numeric_limits<double>::infinity(), |
| 137 0, timing)); | 138 0, timing)); |
| 138 } | 139 } |
| 139 | 140 |
| 140 TEST(AnimationTimingCalculationsTest, IterationTime) { | 141 TEST(AnimationTimingCalculationsTest, IterationTime) { |
| 141 Timing timing; | 142 Timing timing; |
| 142 | 143 |
| 143 // calculateIterationTime(iterationDuration, repeatedDuration, scaledActiveTim
e, startOffset, phase, timing) | 144 // calculateIterationTime( |
| 145 // iterationDuration, repeatedDuration, scaledActiveTime, startOffset, |
| 146 // phase, timing) |
| 144 | 147 |
| 145 // if the scaled active time is null | 148 // if the scaled active time is null |
| 146 EXPECT_TRUE(isNull(calculateIterationTime( | 149 EXPECT_TRUE(isNull(calculateIterationTime( |
| 147 1, 1, nullValue(), 1, AnimationEffectReadOnly::PhaseActive, timing))); | 150 1, 1, nullValue(), 1, AnimationEffectReadOnly::PhaseActive, timing))); |
| 148 | 151 |
| 149 // if (complex-conditions)... | 152 // if (complex-conditions)... |
| 150 EXPECT_EQ( | 153 EXPECT_EQ( |
| 151 12, calculateIterationTime(12, 12, 12, 0, | 154 12, calculateIterationTime(12, 12, 12, 0, |
| 152 AnimationEffectReadOnly::PhaseActive, timing)); | 155 AnimationEffectReadOnly::PhaseActive, timing)); |
| 153 | 156 |
| 154 // otherwise | 157 // otherwise |
| 155 timing.iterationCount = 10; | 158 timing.iterationCount = 10; |
| 156 EXPECT_EQ( | 159 EXPECT_EQ( |
| 157 5, calculateIterationTime(10, 100, 25, 4, | 160 5, calculateIterationTime(10, 100, 25, 4, |
| 158 AnimationEffectReadOnly::PhaseActive, timing)); | 161 AnimationEffectReadOnly::PhaseActive, timing)); |
| 159 EXPECT_EQ( | 162 EXPECT_EQ( |
| 160 7, calculateIterationTime(11, 110, 29, 1, | 163 7, calculateIterationTime(11, 110, 29, 1, |
| 161 AnimationEffectReadOnly::PhaseActive, timing)); | 164 AnimationEffectReadOnly::PhaseActive, timing)); |
| 162 timing.iterationStart = 1.1; | 165 timing.iterationStart = 1.1; |
| 163 EXPECT_EQ( | 166 EXPECT_EQ( |
| 164 8, calculateIterationTime(12, 120, 20, 7, | 167 8, calculateIterationTime(12, 120, 20, 7, |
| 165 AnimationEffectReadOnly::PhaseActive, timing)); | 168 AnimationEffectReadOnly::PhaseActive, timing)); |
| 166 } | 169 } |
| 167 | 170 |
| 168 TEST(AnimationTimingCalculationsTest, CurrentIteration) { | 171 TEST(AnimationTimingCalculationsTest, CurrentIteration) { |
| 169 Timing timing; | 172 Timing timing; |
| 170 | 173 |
| 171 // calculateCurrentIteration(iterationDuration, iterationTime, scaledActiveTim
e, timing) | 174 // calculateCurrentIteration( |
| 175 // iterationDuration, iterationTime, scaledActiveTime, timing) |
| 172 | 176 |
| 173 // if the scaled active time is null | 177 // if the scaled active time is null |
| 174 EXPECT_TRUE(isNull(calculateCurrentIteration(1, 1, nullValue(), timing))); | 178 EXPECT_TRUE(isNull(calculateCurrentIteration(1, 1, nullValue(), timing))); |
| 175 | 179 |
| 176 // if the scaled active time is zero | 180 // if the scaled active time is zero |
| 177 EXPECT_EQ(0, calculateCurrentIteration(1, 1, 0, timing)); | 181 EXPECT_EQ(0, calculateCurrentIteration(1, 1, 0, timing)); |
| 178 | 182 |
| 179 // if the iteration time equals the iteration duration | 183 // if the iteration time equals the iteration duration |
| 180 timing.iterationStart = 4; | 184 timing.iterationStart = 4; |
| 181 timing.iterationCount = 7; | 185 timing.iterationCount = 7; |
| 182 EXPECT_EQ(10, calculateCurrentIteration(5, 5, 9, timing)); | 186 EXPECT_EQ(10, calculateCurrentIteration(5, 5, 9, timing)); |
| 183 | 187 |
| 184 // otherwise | 188 // otherwise |
| 185 EXPECT_EQ(3, calculateCurrentIteration(3.2, 3.1, 10, timing)); | 189 EXPECT_EQ(3, calculateCurrentIteration(3.2, 3.1, 10, timing)); |
| 186 } | 190 } |
| 187 | 191 |
| 188 TEST(AnimationTimingCalculationsTest, DirectedTime) { | 192 TEST(AnimationTimingCalculationsTest, DirectedTime) { |
| 189 Timing timing; | 193 Timing timing; |
| 190 | 194 |
| 191 // calculateDirectedTime(currentIteration, iterationDuration, iterationTime, t
iming) | 195 // calculateDirectedTime( |
| 196 // currentIteration, iterationDuration, iterationTime, timing) |
| 192 | 197 |
| 193 // if the iteration time is null | 198 // if the iteration time is null |
| 194 EXPECT_TRUE(isNull(calculateDirectedTime(1, 2, nullValue(), timing))); | 199 EXPECT_TRUE(isNull(calculateDirectedTime(1, 2, nullValue(), timing))); |
| 195 | 200 |
| 196 // forwards | 201 // forwards |
| 197 EXPECT_EQ(17, calculateDirectedTime(0, 20, 17, timing)); | 202 EXPECT_EQ(17, calculateDirectedTime(0, 20, 17, timing)); |
| 198 EXPECT_EQ(17, calculateDirectedTime(1, 20, 17, timing)); | 203 EXPECT_EQ(17, calculateDirectedTime(1, 20, 17, timing)); |
| 199 timing.direction = Timing::PlaybackDirection::ALTERNATE_NORMAL; | 204 timing.direction = Timing::PlaybackDirection::ALTERNATE_NORMAL; |
| 200 EXPECT_EQ(17, calculateDirectedTime(0, 20, 17, timing)); | 205 EXPECT_EQ(17, calculateDirectedTime(0, 20, 17, timing)); |
| 201 EXPECT_EQ(17, calculateDirectedTime(2, 20, 17, timing)); | 206 EXPECT_EQ(17, calculateDirectedTime(2, 20, 17, timing)); |
| 202 timing.direction = Timing::PlaybackDirection::ALTERNATE_REVERSE; | 207 timing.direction = Timing::PlaybackDirection::ALTERNATE_REVERSE; |
| 203 EXPECT_EQ(17, calculateDirectedTime(1, 20, 17, timing)); | 208 EXPECT_EQ(17, calculateDirectedTime(1, 20, 17, timing)); |
| 204 EXPECT_EQ(17, calculateDirectedTime(3, 20, 17, timing)); | 209 EXPECT_EQ(17, calculateDirectedTime(3, 20, 17, timing)); |
| 205 | 210 |
| 206 // reverse | 211 // reverse |
| 207 timing.direction = Timing::PlaybackDirection::REVERSE; | 212 timing.direction = Timing::PlaybackDirection::REVERSE; |
| 208 EXPECT_EQ(3, calculateDirectedTime(0, 20, 17, timing)); | 213 EXPECT_EQ(3, calculateDirectedTime(0, 20, 17, timing)); |
| 209 EXPECT_EQ(3, calculateDirectedTime(1, 20, 17, timing)); | 214 EXPECT_EQ(3, calculateDirectedTime(1, 20, 17, timing)); |
| 210 timing.direction = Timing::PlaybackDirection::ALTERNATE_NORMAL; | 215 timing.direction = Timing::PlaybackDirection::ALTERNATE_NORMAL; |
| 211 EXPECT_EQ(3, calculateDirectedTime(1, 20, 17, timing)); | 216 EXPECT_EQ(3, calculateDirectedTime(1, 20, 17, timing)); |
| 212 EXPECT_EQ(3, calculateDirectedTime(3, 20, 17, timing)); | 217 EXPECT_EQ(3, calculateDirectedTime(3, 20, 17, timing)); |
| 213 timing.direction = Timing::PlaybackDirection::ALTERNATE_REVERSE; | 218 timing.direction = Timing::PlaybackDirection::ALTERNATE_REVERSE; |
| 214 EXPECT_EQ(3, calculateDirectedTime(0, 20, 17, timing)); | 219 EXPECT_EQ(3, calculateDirectedTime(0, 20, 17, timing)); |
| 215 EXPECT_EQ(3, calculateDirectedTime(2, 20, 17, timing)); | 220 EXPECT_EQ(3, calculateDirectedTime(2, 20, 17, timing)); |
| 216 } | 221 } |
| 217 | 222 |
| 218 TEST(AnimationTimingCalculationsTest, TransformedTime) { | 223 TEST(AnimationTimingCalculationsTest, TransformedTime) { |
| 219 Timing timing; | 224 Timing timing; |
| 220 | 225 |
| 221 // calculateTransformedTime(currentIteration, iterationDuration, iterationTime
, timing) | 226 // calculateTransformedTime( |
| 227 // currentIteration, iterationDuration, iterationTime, timing) |
| 222 | 228 |
| 223 // Iteration time is null | 229 // Iteration time is null |
| 224 EXPECT_TRUE(isNull(calculateTransformedTime(1, 2, nullValue(), timing))); | 230 EXPECT_TRUE(isNull(calculateTransformedTime(1, 2, nullValue(), timing))); |
| 225 | 231 |
| 226 // PlaybackDirectionForwards | 232 // PlaybackDirectionForwards |
| 227 EXPECT_EQ(12, calculateTransformedTime(0, 20, 12, timing)); | 233 EXPECT_EQ(12, calculateTransformedTime(0, 20, 12, timing)); |
| 228 EXPECT_EQ(12, calculateTransformedTime(1, 20, 12, timing)); | 234 EXPECT_EQ(12, calculateTransformedTime(1, 20, 12, timing)); |
| 229 | 235 |
| 230 // PlaybackDirectionForwards with timing function | 236 // PlaybackDirectionForwards with timing function |
| 231 timing.timingFunction = | 237 timing.timingFunction = |
| (...skipping 25 matching lines...) Expand all Loading... |
| 257 timing.direction = Timing::PlaybackDirection::REVERSE; | 263 timing.direction = Timing::PlaybackDirection::REVERSE; |
| 258 EXPECT_EQ(std::numeric_limits<double>::infinity(), | 264 EXPECT_EQ(std::numeric_limits<double>::infinity(), |
| 259 calculateTransformedTime(0, std::numeric_limits<double>::infinity(), | 265 calculateTransformedTime(0, std::numeric_limits<double>::infinity(), |
| 260 0, timing)); | 266 0, timing)); |
| 261 EXPECT_EQ(std::numeric_limits<double>::infinity(), | 267 EXPECT_EQ(std::numeric_limits<double>::infinity(), |
| 262 calculateTransformedTime(0, std::numeric_limits<double>::infinity(), | 268 calculateTransformedTime(0, std::numeric_limits<double>::infinity(), |
| 263 1, timing)); | 269 1, timing)); |
| 264 } | 270 } |
| 265 | 271 |
| 266 } // namespace blink | 272 } // namespace blink |
| OLD | NEW |