| 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 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 : TimedItem(specified, adoptPtr(eventDelegate)) | 104 : TimedItem(specified, adoptPtr(eventDelegate)) |
| 105 , m_eventDelegate(eventDelegate) | 105 , m_eventDelegate(eventDelegate) |
| 106 { | 106 { |
| 107 } | 107 } |
| 108 | 108 |
| 109 TestTimedItemEventDelegate* m_eventDelegate; | 109 TestTimedItemEventDelegate* m_eventDelegate; |
| 110 mutable double m_localTime; | 110 mutable double m_localTime; |
| 111 mutable double m_timeToNextIteration; | 111 mutable double m_timeToNextIteration; |
| 112 }; | 112 }; |
| 113 | 113 |
| 114 TEST(CoreAnimationTimedItemTest, Sanity) | 114 TEST(AnimationTimedItemTest, Sanity) |
| 115 { | 115 { |
| 116 Timing timing; | 116 Timing timing; |
| 117 timing.hasIterationDuration = true; | 117 timing.hasIterationDuration = true; |
| 118 timing.iterationDuration = 2; | 118 timing.iterationDuration = 2; |
| 119 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 119 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 120 | 120 |
| 121 ASSERT_EQ(0, timedItem->startTime()); | 121 ASSERT_EQ(0, timedItem->startTime()); |
| 122 | 122 |
| 123 timedItem->updateInheritedTime(0); | 123 timedItem->updateInheritedTime(0); |
| 124 | 124 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 ASSERT_EQ(TimedItem::PhaseAfter, timedItem->phase()); | 158 ASSERT_EQ(TimedItem::PhaseAfter, timedItem->phase()); |
| 159 ASSERT_FALSE(timedItem->isInPlay()); | 159 ASSERT_FALSE(timedItem->isInPlay()); |
| 160 ASSERT_FALSE(timedItem->isCurrent()); | 160 ASSERT_FALSE(timedItem->isCurrent()); |
| 161 ASSERT_TRUE(timedItem->isInEffect()); | 161 ASSERT_TRUE(timedItem->isInEffect()); |
| 162 ASSERT_EQ(0, timedItem->currentIteration()); | 162 ASSERT_EQ(0, timedItem->currentIteration()); |
| 163 ASSERT_EQ(0, timedItem->startTime()); | 163 ASSERT_EQ(0, timedItem->startTime()); |
| 164 ASSERT_EQ(2, timedItem->activeDuration()); | 164 ASSERT_EQ(2, timedItem->activeDuration()); |
| 165 ASSERT_EQ(1, timedItem->timeFraction()); | 165 ASSERT_EQ(1, timedItem->timeFraction()); |
| 166 } | 166 } |
| 167 | 167 |
| 168 TEST(CoreAnimationTimedItemTest, FillForwards) | 168 TEST(AnimationTimedItemTest, FillForwards) |
| 169 { | 169 { |
| 170 Timing timing; | 170 Timing timing; |
| 171 timing.hasIterationDuration = true; | 171 timing.hasIterationDuration = true; |
| 172 timing.iterationDuration = 1; | 172 timing.iterationDuration = 1; |
| 173 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 173 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 174 | 174 |
| 175 timedItem->updateInheritedTime(-1); | 175 timedItem->updateInheritedTime(-1); |
| 176 ASSERT_TRUE(isNull(timedItem->timeFraction())); | 176 ASSERT_TRUE(isNull(timedItem->timeFraction())); |
| 177 | 177 |
| 178 timedItem->updateInheritedTime(2); | 178 timedItem->updateInheritedTime(2); |
| 179 ASSERT_EQ(1, timedItem->timeFraction()); | 179 ASSERT_EQ(1, timedItem->timeFraction()); |
| 180 } | 180 } |
| 181 | 181 |
| 182 TEST(CoreAnimationTimedItemTest, FillBackwards) | 182 TEST(AnimationTimedItemTest, FillBackwards) |
| 183 { | 183 { |
| 184 Timing timing; | 184 Timing timing; |
| 185 timing.hasIterationDuration = true; | 185 timing.hasIterationDuration = true; |
| 186 timing.iterationDuration = 1; | 186 timing.iterationDuration = 1; |
| 187 timing.fillMode = Timing::FillModeBackwards; | 187 timing.fillMode = Timing::FillModeBackwards; |
| 188 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 188 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 189 | 189 |
| 190 timedItem->updateInheritedTime(-1); | 190 timedItem->updateInheritedTime(-1); |
| 191 ASSERT_EQ(0, timedItem->timeFraction()); | 191 ASSERT_EQ(0, timedItem->timeFraction()); |
| 192 | 192 |
| 193 timedItem->updateInheritedTime(2); | 193 timedItem->updateInheritedTime(2); |
| 194 ASSERT_TRUE(isNull(timedItem->timeFraction())); | 194 ASSERT_TRUE(isNull(timedItem->timeFraction())); |
| 195 } | 195 } |
| 196 | 196 |
| 197 TEST(CoreAnimationTimedItemTest, FillBoth) | 197 TEST(AnimationTimedItemTest, FillBoth) |
| 198 { | 198 { |
| 199 Timing timing; | 199 Timing timing; |
| 200 timing.hasIterationDuration = true; | 200 timing.hasIterationDuration = true; |
| 201 timing.iterationDuration = 1; | 201 timing.iterationDuration = 1; |
| 202 timing.fillMode = Timing::FillModeBoth; | 202 timing.fillMode = Timing::FillModeBoth; |
| 203 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 203 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 204 | 204 |
| 205 timedItem->updateInheritedTime(-1); | 205 timedItem->updateInheritedTime(-1); |
| 206 ASSERT_EQ(0, timedItem->timeFraction()); | 206 ASSERT_EQ(0, timedItem->timeFraction()); |
| 207 | 207 |
| 208 timedItem->updateInheritedTime(2); | 208 timedItem->updateInheritedTime(2); |
| 209 ASSERT_EQ(1, timedItem->timeFraction()); | 209 ASSERT_EQ(1, timedItem->timeFraction()); |
| 210 } | 210 } |
| 211 | 211 |
| 212 TEST(CoreAnimationTimedItemTest, StartDelay) | 212 TEST(AnimationTimedItemTest, StartDelay) |
| 213 { | 213 { |
| 214 Timing timing; | 214 Timing timing; |
| 215 timing.hasIterationDuration = true; | 215 timing.hasIterationDuration = true; |
| 216 timing.iterationDuration = 1; | 216 timing.iterationDuration = 1; |
| 217 timing.startDelay = 0.5; | 217 timing.startDelay = 0.5; |
| 218 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 218 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 219 | 219 |
| 220 timedItem->updateInheritedTime(0); | 220 timedItem->updateInheritedTime(0); |
| 221 ASSERT_TRUE(isNull(timedItem->timeFraction())); | 221 ASSERT_TRUE(isNull(timedItem->timeFraction())); |
| 222 | 222 |
| 223 timedItem->updateInheritedTime(0.5); | 223 timedItem->updateInheritedTime(0.5); |
| 224 ASSERT_EQ(0, timedItem->timeFraction()); | 224 ASSERT_EQ(0, timedItem->timeFraction()); |
| 225 | 225 |
| 226 timedItem->updateInheritedTime(1.5); | 226 timedItem->updateInheritedTime(1.5); |
| 227 ASSERT_EQ(1, timedItem->timeFraction()); | 227 ASSERT_EQ(1, timedItem->timeFraction()); |
| 228 } | 228 } |
| 229 | 229 |
| 230 TEST(CoreAnimationTimedItemTest, InfiniteIteration) | 230 TEST(AnimationTimedItemTest, InfiniteIteration) |
| 231 { | 231 { |
| 232 Timing timing; | 232 Timing timing; |
| 233 timing.hasIterationDuration = true; | 233 timing.hasIterationDuration = true; |
| 234 timing.iterationDuration = 1; | 234 timing.iterationDuration = 1; |
| 235 timing.iterationCount = std::numeric_limits<double>::infinity(); | 235 timing.iterationCount = std::numeric_limits<double>::infinity(); |
| 236 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 236 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 237 | 237 |
| 238 timedItem->updateInheritedTime(-1); | 238 timedItem->updateInheritedTime(-1); |
| 239 ASSERT_TRUE(isNull(timedItem->currentIteration())); | 239 ASSERT_TRUE(isNull(timedItem->currentIteration())); |
| 240 ASSERT_TRUE(isNull(timedItem->timeFraction())); | 240 ASSERT_TRUE(isNull(timedItem->timeFraction())); |
| 241 | 241 |
| 242 ASSERT_EQ(std::numeric_limits<double>::infinity(), timedItem->activeDuration
()); | 242 ASSERT_EQ(std::numeric_limits<double>::infinity(), timedItem->activeDuration
()); |
| 243 | 243 |
| 244 timedItem->updateInheritedTime(0); | 244 timedItem->updateInheritedTime(0); |
| 245 ASSERT_EQ(0, timedItem->currentIteration()); | 245 ASSERT_EQ(0, timedItem->currentIteration()); |
| 246 ASSERT_EQ(0, timedItem->timeFraction()); | 246 ASSERT_EQ(0, timedItem->timeFraction()); |
| 247 } | 247 } |
| 248 | 248 |
| 249 TEST(CoreAnimationTimedItemTest, Iteration) | 249 TEST(AnimationTimedItemTest, Iteration) |
| 250 { | 250 { |
| 251 Timing timing; | 251 Timing timing; |
| 252 timing.iterationCount = 2; | 252 timing.iterationCount = 2; |
| 253 timing.hasIterationDuration = true; | 253 timing.hasIterationDuration = true; |
| 254 timing.iterationDuration = 2; | 254 timing.iterationDuration = 2; |
| 255 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 255 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 256 | 256 |
| 257 timedItem->updateInheritedTime(0); | 257 timedItem->updateInheritedTime(0); |
| 258 ASSERT_EQ(0, timedItem->currentIteration()); | 258 ASSERT_EQ(0, timedItem->currentIteration()); |
| 259 ASSERT_EQ(0, timedItem->timeFraction()); | 259 ASSERT_EQ(0, timedItem->timeFraction()); |
| 260 | 260 |
| 261 timedItem->updateInheritedTime(1); | 261 timedItem->updateInheritedTime(1); |
| 262 ASSERT_EQ(0, timedItem->currentIteration()); | 262 ASSERT_EQ(0, timedItem->currentIteration()); |
| 263 ASSERT_EQ(0.5, timedItem->timeFraction()); | 263 ASSERT_EQ(0.5, timedItem->timeFraction()); |
| 264 | 264 |
| 265 timedItem->updateInheritedTime(2); | 265 timedItem->updateInheritedTime(2); |
| 266 ASSERT_EQ(1, timedItem->currentIteration()); | 266 ASSERT_EQ(1, timedItem->currentIteration()); |
| 267 ASSERT_EQ(0, timedItem->timeFraction()); | 267 ASSERT_EQ(0, timedItem->timeFraction()); |
| 268 | 268 |
| 269 timedItem->updateInheritedTime(2); | 269 timedItem->updateInheritedTime(2); |
| 270 ASSERT_EQ(1, timedItem->currentIteration()); | 270 ASSERT_EQ(1, timedItem->currentIteration()); |
| 271 ASSERT_EQ(0, timedItem->timeFraction()); | 271 ASSERT_EQ(0, timedItem->timeFraction()); |
| 272 | 272 |
| 273 timedItem->updateInheritedTime(5); | 273 timedItem->updateInheritedTime(5); |
| 274 ASSERT_EQ(1, timedItem->currentIteration()); | 274 ASSERT_EQ(1, timedItem->currentIteration()); |
| 275 ASSERT_EQ(1, timedItem->timeFraction()); | 275 ASSERT_EQ(1, timedItem->timeFraction()); |
| 276 } | 276 } |
| 277 | 277 |
| 278 TEST(CoreAnimationTimedItemTest, IterationStart) | 278 TEST(AnimationTimedItemTest, IterationStart) |
| 279 { | 279 { |
| 280 Timing timing; | 280 Timing timing; |
| 281 timing.iterationStart = 1.2; | 281 timing.iterationStart = 1.2; |
| 282 timing.iterationCount = 2.2; | 282 timing.iterationCount = 2.2; |
| 283 timing.hasIterationDuration = true; | 283 timing.hasIterationDuration = true; |
| 284 timing.iterationDuration = 1; | 284 timing.iterationDuration = 1; |
| 285 timing.fillMode = Timing::FillModeBoth; | 285 timing.fillMode = Timing::FillModeBoth; |
| 286 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 286 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 287 | 287 |
| 288 timedItem->updateInheritedTime(-1); | 288 timedItem->updateInheritedTime(-1); |
| 289 ASSERT_EQ(1, timedItem->currentIteration()); | 289 ASSERT_EQ(1, timedItem->currentIteration()); |
| 290 ASSERT_NEAR(0.2, timedItem->timeFraction(), 0.000000000000001); | 290 ASSERT_NEAR(0.2, timedItem->timeFraction(), 0.000000000000001); |
| 291 | 291 |
| 292 timedItem->updateInheritedTime(0); | 292 timedItem->updateInheritedTime(0); |
| 293 ASSERT_EQ(1, timedItem->currentIteration()); | 293 ASSERT_EQ(1, timedItem->currentIteration()); |
| 294 ASSERT_NEAR(0.2, timedItem->timeFraction(), 0.000000000000001); | 294 ASSERT_NEAR(0.2, timedItem->timeFraction(), 0.000000000000001); |
| 295 | 295 |
| 296 timedItem->updateInheritedTime(10); | 296 timedItem->updateInheritedTime(10); |
| 297 ASSERT_EQ(3, timedItem->currentIteration()); | 297 ASSERT_EQ(3, timedItem->currentIteration()); |
| 298 ASSERT_NEAR(0.4, timedItem->timeFraction(), 0.000000000000001); | 298 ASSERT_NEAR(0.4, timedItem->timeFraction(), 0.000000000000001); |
| 299 } | 299 } |
| 300 | 300 |
| 301 TEST(CoreAnimationTimedItemTest, IterationAlternate) | 301 TEST(AnimationTimedItemTest, IterationAlternate) |
| 302 { | 302 { |
| 303 Timing timing; | 303 Timing timing; |
| 304 timing.iterationCount = 10; | 304 timing.iterationCount = 10; |
| 305 timing.hasIterationDuration = true; | 305 timing.hasIterationDuration = true; |
| 306 timing.iterationDuration = 1; | 306 timing.iterationDuration = 1; |
| 307 timing.direction = Timing::PlaybackDirectionAlternate; | 307 timing.direction = Timing::PlaybackDirectionAlternate; |
| 308 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 308 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 309 | 309 |
| 310 timedItem->updateInheritedTime(0.75); | 310 timedItem->updateInheritedTime(0.75); |
| 311 ASSERT_EQ(0, timedItem->currentIteration()); | 311 ASSERT_EQ(0, timedItem->currentIteration()); |
| 312 ASSERT_EQ(0.75, timedItem->timeFraction()); | 312 ASSERT_EQ(0.75, timedItem->timeFraction()); |
| 313 | 313 |
| 314 timedItem->updateInheritedTime(1.75); | 314 timedItem->updateInheritedTime(1.75); |
| 315 ASSERT_EQ(1, timedItem->currentIteration()); | 315 ASSERT_EQ(1, timedItem->currentIteration()); |
| 316 ASSERT_EQ(0.25, timedItem->timeFraction()); | 316 ASSERT_EQ(0.25, timedItem->timeFraction()); |
| 317 | 317 |
| 318 timedItem->updateInheritedTime(2.75); | 318 timedItem->updateInheritedTime(2.75); |
| 319 ASSERT_EQ(2, timedItem->currentIteration()); | 319 ASSERT_EQ(2, timedItem->currentIteration()); |
| 320 ASSERT_EQ(0.75, timedItem->timeFraction()); | 320 ASSERT_EQ(0.75, timedItem->timeFraction()); |
| 321 } | 321 } |
| 322 | 322 |
| 323 TEST(CoreAnimationTimedItemTest, IterationAlternateReverse) | 323 TEST(AnimationTimedItemTest, IterationAlternateReverse) |
| 324 { | 324 { |
| 325 Timing timing; | 325 Timing timing; |
| 326 timing.iterationCount = 10; | 326 timing.iterationCount = 10; |
| 327 timing.hasIterationDuration = true; | 327 timing.hasIterationDuration = true; |
| 328 timing.iterationDuration = 1; | 328 timing.iterationDuration = 1; |
| 329 timing.direction = Timing::PlaybackDirectionAlternateReverse; | 329 timing.direction = Timing::PlaybackDirectionAlternateReverse; |
| 330 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 330 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 331 | 331 |
| 332 timedItem->updateInheritedTime(0.75); | 332 timedItem->updateInheritedTime(0.75); |
| 333 ASSERT_EQ(0, timedItem->currentIteration()); | 333 ASSERT_EQ(0, timedItem->currentIteration()); |
| 334 ASSERT_EQ(0.25, timedItem->timeFraction()); | 334 ASSERT_EQ(0.25, timedItem->timeFraction()); |
| 335 | 335 |
| 336 timedItem->updateInheritedTime(1.75); | 336 timedItem->updateInheritedTime(1.75); |
| 337 ASSERT_EQ(1, timedItem->currentIteration()); | 337 ASSERT_EQ(1, timedItem->currentIteration()); |
| 338 ASSERT_EQ(0.75, timedItem->timeFraction()); | 338 ASSERT_EQ(0.75, timedItem->timeFraction()); |
| 339 | 339 |
| 340 timedItem->updateInheritedTime(2.75); | 340 timedItem->updateInheritedTime(2.75); |
| 341 ASSERT_EQ(2, timedItem->currentIteration()); | 341 ASSERT_EQ(2, timedItem->currentIteration()); |
| 342 ASSERT_EQ(0.25, timedItem->timeFraction()); | 342 ASSERT_EQ(0.25, timedItem->timeFraction()); |
| 343 } | 343 } |
| 344 | 344 |
| 345 TEST(CoreAnimationTimedItemTest, ZeroDurationSanity) | 345 TEST(AnimationTimedItemTest, ZeroDurationSanity) |
| 346 { | 346 { |
| 347 Timing timing; | 347 Timing timing; |
| 348 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 348 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 349 | 349 |
| 350 ASSERT_EQ(0, timedItem->startTime()); | 350 ASSERT_EQ(0, timedItem->startTime()); |
| 351 | 351 |
| 352 timedItem->updateInheritedTime(0); | 352 timedItem->updateInheritedTime(0); |
| 353 | 353 |
| 354 ASSERT_EQ(TimedItem::PhaseAfter, timedItem->phase()); | 354 ASSERT_EQ(TimedItem::PhaseAfter, timedItem->phase()); |
| 355 ASSERT_FALSE(timedItem->isInPlay()); | 355 ASSERT_FALSE(timedItem->isInPlay()); |
| 356 ASSERT_FALSE(timedItem->isCurrent()); | 356 ASSERT_FALSE(timedItem->isCurrent()); |
| 357 ASSERT_TRUE(timedItem->isInEffect()); | 357 ASSERT_TRUE(timedItem->isInEffect()); |
| 358 ASSERT_EQ(0, timedItem->currentIteration()); | 358 ASSERT_EQ(0, timedItem->currentIteration()); |
| 359 ASSERT_EQ(0, timedItem->startTime()); | 359 ASSERT_EQ(0, timedItem->startTime()); |
| 360 ASSERT_EQ(0, timedItem->activeDuration()); | 360 ASSERT_EQ(0, timedItem->activeDuration()); |
| 361 ASSERT_EQ(1, timedItem->timeFraction()); | 361 ASSERT_EQ(1, timedItem->timeFraction()); |
| 362 | 362 |
| 363 timedItem->updateInheritedTime(1); | 363 timedItem->updateInheritedTime(1); |
| 364 | 364 |
| 365 ASSERT_EQ(TimedItem::PhaseAfter, timedItem->phase()); | 365 ASSERT_EQ(TimedItem::PhaseAfter, timedItem->phase()); |
| 366 ASSERT_FALSE(timedItem->isInPlay()); | 366 ASSERT_FALSE(timedItem->isInPlay()); |
| 367 ASSERT_FALSE(timedItem->isCurrent()); | 367 ASSERT_FALSE(timedItem->isCurrent()); |
| 368 ASSERT_TRUE(timedItem->isInEffect()); | 368 ASSERT_TRUE(timedItem->isInEffect()); |
| 369 ASSERT_EQ(0, timedItem->currentIteration()); | 369 ASSERT_EQ(0, timedItem->currentIteration()); |
| 370 ASSERT_EQ(0, timedItem->startTime()); | 370 ASSERT_EQ(0, timedItem->startTime()); |
| 371 ASSERT_EQ(0, timedItem->activeDuration()); | 371 ASSERT_EQ(0, timedItem->activeDuration()); |
| 372 ASSERT_EQ(1, timedItem->timeFraction()); | 372 ASSERT_EQ(1, timedItem->timeFraction()); |
| 373 } | 373 } |
| 374 | 374 |
| 375 TEST(CoreAnimationTimedItemTest, ZeroDurationFillForwards) | 375 TEST(AnimationTimedItemTest, ZeroDurationFillForwards) |
| 376 { | 376 { |
| 377 Timing timing; | 377 Timing timing; |
| 378 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 378 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 379 | 379 |
| 380 timedItem->updateInheritedTime(-1); | 380 timedItem->updateInheritedTime(-1); |
| 381 ASSERT_TRUE(isNull(timedItem->timeFraction())); | 381 ASSERT_TRUE(isNull(timedItem->timeFraction())); |
| 382 | 382 |
| 383 timedItem->updateInheritedTime(0); | 383 timedItem->updateInheritedTime(0); |
| 384 ASSERT_EQ(1, timedItem->timeFraction()); | 384 ASSERT_EQ(1, timedItem->timeFraction()); |
| 385 | 385 |
| 386 timedItem->updateInheritedTime(1); | 386 timedItem->updateInheritedTime(1); |
| 387 ASSERT_EQ(1, timedItem->timeFraction()); | 387 ASSERT_EQ(1, timedItem->timeFraction()); |
| 388 } | 388 } |
| 389 | 389 |
| 390 TEST(CoreAnimationTimedItemTest, ZeroDurationFillBackwards) | 390 TEST(AnimationTimedItemTest, ZeroDurationFillBackwards) |
| 391 { | 391 { |
| 392 Timing timing; | 392 Timing timing; |
| 393 timing.fillMode = Timing::FillModeBackwards; | 393 timing.fillMode = Timing::FillModeBackwards; |
| 394 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 394 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 395 | 395 |
| 396 timedItem->updateInheritedTime(-1); | 396 timedItem->updateInheritedTime(-1); |
| 397 ASSERT_EQ(0, timedItem->timeFraction()); | 397 ASSERT_EQ(0, timedItem->timeFraction()); |
| 398 | 398 |
| 399 timedItem->updateInheritedTime(0); | 399 timedItem->updateInheritedTime(0); |
| 400 ASSERT_TRUE(isNull(timedItem->timeFraction())); | 400 ASSERT_TRUE(isNull(timedItem->timeFraction())); |
| 401 | 401 |
| 402 timedItem->updateInheritedTime(1); | 402 timedItem->updateInheritedTime(1); |
| 403 ASSERT_TRUE(isNull(timedItem->timeFraction())); | 403 ASSERT_TRUE(isNull(timedItem->timeFraction())); |
| 404 } | 404 } |
| 405 | 405 |
| 406 TEST(CoreAnimationTimedItemTest, ZeroDurationFillBoth) | 406 TEST(AnimationTimedItemTest, ZeroDurationFillBoth) |
| 407 { | 407 { |
| 408 Timing timing; | 408 Timing timing; |
| 409 timing.fillMode = Timing::FillModeBoth; | 409 timing.fillMode = Timing::FillModeBoth; |
| 410 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 410 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 411 | 411 |
| 412 timedItem->updateInheritedTime(-1); | 412 timedItem->updateInheritedTime(-1); |
| 413 ASSERT_EQ(0, timedItem->timeFraction()); | 413 ASSERT_EQ(0, timedItem->timeFraction()); |
| 414 | 414 |
| 415 timedItem->updateInheritedTime(0); | 415 timedItem->updateInheritedTime(0); |
| 416 ASSERT_EQ(1, timedItem->timeFraction()); | 416 ASSERT_EQ(1, timedItem->timeFraction()); |
| 417 | 417 |
| 418 timedItem->updateInheritedTime(1); | 418 timedItem->updateInheritedTime(1); |
| 419 ASSERT_EQ(1, timedItem->timeFraction()); | 419 ASSERT_EQ(1, timedItem->timeFraction()); |
| 420 } | 420 } |
| 421 | 421 |
| 422 TEST(CoreAnimationTimedItemTest, ZeroDurationStartDelay) | 422 TEST(AnimationTimedItemTest, ZeroDurationStartDelay) |
| 423 { | 423 { |
| 424 Timing timing; | 424 Timing timing; |
| 425 timing.startDelay = 0.5; | 425 timing.startDelay = 0.5; |
| 426 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 426 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 427 | 427 |
| 428 timedItem->updateInheritedTime(0); | 428 timedItem->updateInheritedTime(0); |
| 429 ASSERT_TRUE(isNull(timedItem->timeFraction())); | 429 ASSERT_TRUE(isNull(timedItem->timeFraction())); |
| 430 | 430 |
| 431 timedItem->updateInheritedTime(0.5); | 431 timedItem->updateInheritedTime(0.5); |
| 432 ASSERT_EQ(1, timedItem->timeFraction()); | 432 ASSERT_EQ(1, timedItem->timeFraction()); |
| 433 | 433 |
| 434 timedItem->updateInheritedTime(1.5); | 434 timedItem->updateInheritedTime(1.5); |
| 435 ASSERT_EQ(1, timedItem->timeFraction()); | 435 ASSERT_EQ(1, timedItem->timeFraction()); |
| 436 } | 436 } |
| 437 | 437 |
| 438 TEST(CoreAnimationTimedItemTest, ZeroDurationIterationStartAndCount) | 438 TEST(AnimationTimedItemTest, ZeroDurationIterationStartAndCount) |
| 439 { | 439 { |
| 440 Timing timing; | 440 Timing timing; |
| 441 timing.iterationStart = 0.1; | 441 timing.iterationStart = 0.1; |
| 442 timing.iterationCount = 0.2; | 442 timing.iterationCount = 0.2; |
| 443 timing.fillMode = Timing::FillModeBoth; | 443 timing.fillMode = Timing::FillModeBoth; |
| 444 timing.startDelay = 0.3; | 444 timing.startDelay = 0.3; |
| 445 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 445 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 446 | 446 |
| 447 timedItem->updateInheritedTime(0); | 447 timedItem->updateInheritedTime(0); |
| 448 ASSERT_EQ(0.1, timedItem->timeFraction()); | 448 ASSERT_EQ(0.1, timedItem->timeFraction()); |
| 449 | 449 |
| 450 timedItem->updateInheritedTime(0.3); | 450 timedItem->updateInheritedTime(0.3); |
| 451 ASSERT_DOUBLE_EQ(0.3, timedItem->timeFraction()); | 451 ASSERT_DOUBLE_EQ(0.3, timedItem->timeFraction()); |
| 452 | 452 |
| 453 timedItem->updateInheritedTime(1); | 453 timedItem->updateInheritedTime(1); |
| 454 ASSERT_DOUBLE_EQ(0.3, timedItem->timeFraction()); | 454 ASSERT_DOUBLE_EQ(0.3, timedItem->timeFraction()); |
| 455 } | 455 } |
| 456 | 456 |
| 457 // FIXME: Needs specification work -- ASSERTION FAILED: activeDuration >= 0 | 457 // FIXME: Needs specification work -- ASSERTION FAILED: activeDuration >= 0 |
| 458 TEST(CoreAnimationTimedItemTest, DISABLED_ZeroDurationInfiniteIteration) | 458 TEST(AnimationTimedItemTest, DISABLED_ZeroDurationInfiniteIteration) |
| 459 { | 459 { |
| 460 Timing timing; | 460 Timing timing; |
| 461 timing.iterationCount = std::numeric_limits<double>::infinity(); | 461 timing.iterationCount = std::numeric_limits<double>::infinity(); |
| 462 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 462 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 463 | 463 |
| 464 timedItem->updateInheritedTime(-1); | 464 timedItem->updateInheritedTime(-1); |
| 465 ASSERT_TRUE(isNull(timedItem->currentIteration())); | 465 ASSERT_TRUE(isNull(timedItem->currentIteration())); |
| 466 ASSERT_TRUE(isNull(timedItem->timeFraction())); | 466 ASSERT_TRUE(isNull(timedItem->timeFraction())); |
| 467 ASSERT_TRUE(isNull(timedItem->activeDuration())); | 467 ASSERT_TRUE(isNull(timedItem->activeDuration())); |
| 468 | 468 |
| 469 timedItem->updateInheritedTime(0); | 469 timedItem->updateInheritedTime(0); |
| 470 ASSERT_EQ(std::numeric_limits<double>::infinity(), timedItem->currentIterati
on()); | 470 ASSERT_EQ(std::numeric_limits<double>::infinity(), timedItem->currentIterati
on()); |
| 471 ASSERT_EQ(1, timedItem->timeFraction()); | 471 ASSERT_EQ(1, timedItem->timeFraction()); |
| 472 } | 472 } |
| 473 | 473 |
| 474 TEST(CoreAnimationTimedItemTest, ZeroDurationIteration) | 474 TEST(AnimationTimedItemTest, ZeroDurationIteration) |
| 475 { | 475 { |
| 476 Timing timing; | 476 Timing timing; |
| 477 timing.iterationCount = 2; | 477 timing.iterationCount = 2; |
| 478 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 478 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 479 | 479 |
| 480 timedItem->updateInheritedTime(-1); | 480 timedItem->updateInheritedTime(-1); |
| 481 ASSERT_TRUE(isNull(timedItem->currentIteration())); | 481 ASSERT_TRUE(isNull(timedItem->currentIteration())); |
| 482 ASSERT_TRUE(isNull(timedItem->timeFraction())); | 482 ASSERT_TRUE(isNull(timedItem->timeFraction())); |
| 483 | 483 |
| 484 timedItem->updateInheritedTime(0); | 484 timedItem->updateInheritedTime(0); |
| 485 ASSERT_EQ(1, timedItem->currentIteration()); | 485 ASSERT_EQ(1, timedItem->currentIteration()); |
| 486 ASSERT_EQ(1, timedItem->timeFraction()); | 486 ASSERT_EQ(1, timedItem->timeFraction()); |
| 487 | 487 |
| 488 timedItem->updateInheritedTime(1); | 488 timedItem->updateInheritedTime(1); |
| 489 ASSERT_EQ(1, timedItem->currentIteration()); | 489 ASSERT_EQ(1, timedItem->currentIteration()); |
| 490 ASSERT_EQ(1, timedItem->timeFraction()); | 490 ASSERT_EQ(1, timedItem->timeFraction()); |
| 491 } | 491 } |
| 492 | 492 |
| 493 TEST(CoreAnimationTimedItemTest, ZeroDurationIterationStart) | 493 TEST(AnimationTimedItemTest, ZeroDurationIterationStart) |
| 494 { | 494 { |
| 495 Timing timing; | 495 Timing timing; |
| 496 timing.iterationStart = 1.2; | 496 timing.iterationStart = 1.2; |
| 497 timing.iterationCount = 2.2; | 497 timing.iterationCount = 2.2; |
| 498 timing.fillMode = Timing::FillModeBoth; | 498 timing.fillMode = Timing::FillModeBoth; |
| 499 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 499 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 500 | 500 |
| 501 timedItem->updateInheritedTime(-1); | 501 timedItem->updateInheritedTime(-1); |
| 502 ASSERT_EQ(1, timedItem->currentIteration()); | 502 ASSERT_EQ(1, timedItem->currentIteration()); |
| 503 ASSERT_NEAR(0.2, timedItem->timeFraction(), 0.000000000000001); | 503 ASSERT_NEAR(0.2, timedItem->timeFraction(), 0.000000000000001); |
| 504 | 504 |
| 505 timedItem->updateInheritedTime(0); | 505 timedItem->updateInheritedTime(0); |
| 506 ASSERT_EQ(3, timedItem->currentIteration()); | 506 ASSERT_EQ(3, timedItem->currentIteration()); |
| 507 ASSERT_NEAR(0.4, timedItem->timeFraction(), 0.000000000000001); | 507 ASSERT_NEAR(0.4, timedItem->timeFraction(), 0.000000000000001); |
| 508 | 508 |
| 509 timedItem->updateInheritedTime(10); | 509 timedItem->updateInheritedTime(10); |
| 510 ASSERT_EQ(3, timedItem->currentIteration()); | 510 ASSERT_EQ(3, timedItem->currentIteration()); |
| 511 ASSERT_NEAR(0.4, timedItem->timeFraction(), 0.000000000000001); | 511 ASSERT_NEAR(0.4, timedItem->timeFraction(), 0.000000000000001); |
| 512 } | 512 } |
| 513 | 513 |
| 514 TEST(CoreAnimationTimedItemTest, ZeroDurationIterationAlternate) | 514 TEST(AnimationTimedItemTest, ZeroDurationIterationAlternate) |
| 515 { | 515 { |
| 516 Timing timing; | 516 Timing timing; |
| 517 timing.iterationCount = 2; | 517 timing.iterationCount = 2; |
| 518 timing.direction = Timing::PlaybackDirectionAlternate; | 518 timing.direction = Timing::PlaybackDirectionAlternate; |
| 519 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 519 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 520 | 520 |
| 521 timedItem->updateInheritedTime(-1); | 521 timedItem->updateInheritedTime(-1); |
| 522 ASSERT_TRUE(isNull(timedItem->currentIteration())); | 522 ASSERT_TRUE(isNull(timedItem->currentIteration())); |
| 523 ASSERT_TRUE(isNull(timedItem->timeFraction())); | 523 ASSERT_TRUE(isNull(timedItem->timeFraction())); |
| 524 | 524 |
| 525 timedItem->updateInheritedTime(0); | 525 timedItem->updateInheritedTime(0); |
| 526 ASSERT_EQ(1, timedItem->currentIteration()); | 526 ASSERT_EQ(1, timedItem->currentIteration()); |
| 527 ASSERT_EQ(0, timedItem->timeFraction()); | 527 ASSERT_EQ(0, timedItem->timeFraction()); |
| 528 | 528 |
| 529 timedItem->updateInheritedTime(1); | 529 timedItem->updateInheritedTime(1); |
| 530 ASSERT_EQ(1, timedItem->currentIteration()); | 530 ASSERT_EQ(1, timedItem->currentIteration()); |
| 531 ASSERT_EQ(0, timedItem->timeFraction()); | 531 ASSERT_EQ(0, timedItem->timeFraction()); |
| 532 } | 532 } |
| 533 | 533 |
| 534 TEST(CoreAnimationTimedItemTest, ZeroDurationIterationAlternateReverse) | 534 TEST(AnimationTimedItemTest, ZeroDurationIterationAlternateReverse) |
| 535 { | 535 { |
| 536 Timing timing; | 536 Timing timing; |
| 537 timing.iterationCount = 2; | 537 timing.iterationCount = 2; |
| 538 timing.direction = Timing::PlaybackDirectionAlternateReverse; | 538 timing.direction = Timing::PlaybackDirectionAlternateReverse; |
| 539 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 539 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 540 | 540 |
| 541 timedItem->updateInheritedTime(-1); | 541 timedItem->updateInheritedTime(-1); |
| 542 ASSERT_TRUE(isNull(timedItem->currentIteration())); | 542 ASSERT_TRUE(isNull(timedItem->currentIteration())); |
| 543 ASSERT_TRUE(isNull(timedItem->timeFraction())); | 543 ASSERT_TRUE(isNull(timedItem->timeFraction())); |
| 544 | 544 |
| 545 timedItem->updateInheritedTime(0); | 545 timedItem->updateInheritedTime(0); |
| 546 ASSERT_EQ(1, timedItem->currentIteration()); | 546 ASSERT_EQ(1, timedItem->currentIteration()); |
| 547 ASSERT_EQ(1, timedItem->timeFraction()); | 547 ASSERT_EQ(1, timedItem->timeFraction()); |
| 548 | 548 |
| 549 timedItem->updateInheritedTime(1); | 549 timedItem->updateInheritedTime(1); |
| 550 ASSERT_EQ(1, timedItem->currentIteration()); | 550 ASSERT_EQ(1, timedItem->currentIteration()); |
| 551 ASSERT_EQ(1, timedItem->timeFraction()); | 551 ASSERT_EQ(1, timedItem->timeFraction()); |
| 552 } | 552 } |
| 553 | 553 |
| 554 TEST(CoreAnimationTimedItemTest, Events) | 554 TEST(AnimationTimedItemTest, Events) |
| 555 { | 555 { |
| 556 Timing timing; | 556 Timing timing; |
| 557 timing.hasIterationDuration = true; | 557 timing.hasIterationDuration = true; |
| 558 timing.iterationDuration = 1; | 558 timing.iterationDuration = 1; |
| 559 timing.iterationCount = 2; | 559 timing.iterationCount = 2; |
| 560 timing.startDelay = 1; | 560 timing.startDelay = 1; |
| 561 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 561 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 562 | 562 |
| 563 // First sample | 563 // First sample |
| 564 timedItem->updateInheritedTime(0.0); | 564 timedItem->updateInheritedTime(0.0); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 589 // After end | 589 // After end |
| 590 timedItem->updateInheritedTime(3.5); | 590 timedItem->updateInheritedTime(3.5); |
| 591 ASSERT_TRUE(timedItem->eventDelegate()->eventTriggered()); | 591 ASSERT_TRUE(timedItem->eventDelegate()->eventTriggered()); |
| 592 EXPECT_TRUE(timedItem->eventDelegate()->phaseChanged()); | 592 EXPECT_TRUE(timedItem->eventDelegate()->phaseChanged()); |
| 593 EXPECT_FALSE(timedItem->eventDelegate()->iterationChanged()); | 593 EXPECT_FALSE(timedItem->eventDelegate()->iterationChanged()); |
| 594 | 594 |
| 595 timedItem->updateInheritedTime(3.6); | 595 timedItem->updateInheritedTime(3.6); |
| 596 ASSERT_FALSE(timedItem->eventDelegate()->eventTriggered()); | 596 ASSERT_FALSE(timedItem->eventDelegate()->eventTriggered()); |
| 597 } | 597 } |
| 598 | 598 |
| 599 TEST(CoreAnimationTimedItemTest, TimeToEffectChange) | 599 TEST(AnimationTimedItemTest, TimeToEffectChange) |
| 600 { | 600 { |
| 601 Timing timing; | 601 Timing timing; |
| 602 timing.hasIterationDuration = true; | 602 timing.hasIterationDuration = true; |
| 603 timing.iterationDuration = 1; | 603 timing.iterationDuration = 1; |
| 604 timing.iterationStart = 0.2; | 604 timing.iterationStart = 0.2; |
| 605 timing.iterationCount = 2.5; | 605 timing.iterationCount = 2.5; |
| 606 timing.startDelay = 1; | 606 timing.startDelay = 1; |
| 607 timing.direction = Timing::PlaybackDirectionAlternate; | 607 timing.direction = Timing::PlaybackDirectionAlternate; |
| 608 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 608 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 609 | 609 |
| (...skipping 18 matching lines...) Expand all Loading... |
| 628 EXPECT_TRUE(isNull(timedItem->takeTimeToNextIteration())); | 628 EXPECT_TRUE(isNull(timedItem->takeTimeToNextIteration())); |
| 629 | 629 |
| 630 // Item has finished. | 630 // Item has finished. |
| 631 timedItem->updateInheritedTime(3.5); | 631 timedItem->updateInheritedTime(3.5); |
| 632 ASSERT_EQ(TimedItem::PhaseAfter, timedItem->phase()); | 632 ASSERT_EQ(TimedItem::PhaseAfter, timedItem->phase()); |
| 633 EXPECT_EQ(3.5, timedItem->takeLocalTime()); | 633 EXPECT_EQ(3.5, timedItem->takeLocalTime()); |
| 634 EXPECT_TRUE(isNull(timedItem->takeTimeToNextIteration())); | 634 EXPECT_TRUE(isNull(timedItem->takeTimeToNextIteration())); |
| 635 } | 635 } |
| 636 | 636 |
| 637 } | 637 } |
| OLD | NEW |