| 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 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 82 private: | 82 private: |
| 83 TestTimedItem(const Timing& specified, TestTimedItemEventDelegate* eventDele
gate) | 83 TestTimedItem(const Timing& specified, TestTimedItemEventDelegate* eventDele
gate) |
| 84 : TimedItem(specified, adoptPtr(eventDelegate)) | 84 : TimedItem(specified, adoptPtr(eventDelegate)) |
| 85 , m_eventDelegate(eventDelegate) | 85 , m_eventDelegate(eventDelegate) |
| 86 { | 86 { |
| 87 } | 87 } |
| 88 | 88 |
| 89 TestTimedItemEventDelegate* m_eventDelegate; | 89 TestTimedItemEventDelegate* m_eventDelegate; |
| 90 }; | 90 }; |
| 91 | 91 |
| 92 TEST(TimedItem, Sanity) | 92 TEST(CoreAnimationTimedItemTest, Sanity) |
| 93 { | 93 { |
| 94 Timing timing; | 94 Timing timing; |
| 95 timing.hasIterationDuration = true; | 95 timing.hasIterationDuration = true; |
| 96 timing.iterationDuration = 2; | 96 timing.iterationDuration = 2; |
| 97 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 97 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 98 | 98 |
| 99 ASSERT_EQ(0, timedItem->startTime()); | 99 ASSERT_EQ(0, timedItem->startTime()); |
| 100 | 100 |
| 101 timedItem->updateInheritedTime(0); | 101 timedItem->updateInheritedTime(0); |
| 102 | 102 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 ASSERT_EQ(TimedItem::PhaseAfter, timedItem->phase()); | 136 ASSERT_EQ(TimedItem::PhaseAfter, timedItem->phase()); |
| 137 ASSERT_FALSE(timedItem->isInPlay()); | 137 ASSERT_FALSE(timedItem->isInPlay()); |
| 138 ASSERT_FALSE(timedItem->isCurrent()); | 138 ASSERT_FALSE(timedItem->isCurrent()); |
| 139 ASSERT_TRUE(timedItem->isInEffect()); | 139 ASSERT_TRUE(timedItem->isInEffect()); |
| 140 ASSERT_EQ(0, timedItem->currentIteration()); | 140 ASSERT_EQ(0, timedItem->currentIteration()); |
| 141 ASSERT_EQ(0, timedItem->startTime()); | 141 ASSERT_EQ(0, timedItem->startTime()); |
| 142 ASSERT_EQ(2, timedItem->activeDuration()); | 142 ASSERT_EQ(2, timedItem->activeDuration()); |
| 143 ASSERT_EQ(1, timedItem->timeFraction()); | 143 ASSERT_EQ(1, timedItem->timeFraction()); |
| 144 } | 144 } |
| 145 | 145 |
| 146 TEST(TimedItem, FillForwards) | 146 TEST(CoreAnimationTimedItemTest, FillForwards) |
| 147 { | 147 { |
| 148 Timing timing; | 148 Timing timing; |
| 149 timing.hasIterationDuration = true; | 149 timing.hasIterationDuration = true; |
| 150 timing.iterationDuration = 1; | 150 timing.iterationDuration = 1; |
| 151 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 151 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 152 | 152 |
| 153 timedItem->updateInheritedTime(-1); | 153 timedItem->updateInheritedTime(-1); |
| 154 ASSERT_TRUE(isNull(timedItem->timeFraction())); | 154 ASSERT_TRUE(isNull(timedItem->timeFraction())); |
| 155 | 155 |
| 156 timedItem->updateInheritedTime(2); | 156 timedItem->updateInheritedTime(2); |
| 157 ASSERT_EQ(1, timedItem->timeFraction()); | 157 ASSERT_EQ(1, timedItem->timeFraction()); |
| 158 } | 158 } |
| 159 | 159 |
| 160 TEST(TimedItem, FillBackwards) | 160 TEST(CoreAnimationTimedItemTest, FillBackwards) |
| 161 { | 161 { |
| 162 Timing timing; | 162 Timing timing; |
| 163 timing.hasIterationDuration = true; | 163 timing.hasIterationDuration = true; |
| 164 timing.iterationDuration = 1; | 164 timing.iterationDuration = 1; |
| 165 timing.fillMode = Timing::FillModeBackwards; | 165 timing.fillMode = Timing::FillModeBackwards; |
| 166 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 166 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 167 | 167 |
| 168 timedItem->updateInheritedTime(-1); | 168 timedItem->updateInheritedTime(-1); |
| 169 ASSERT_EQ(0, timedItem->timeFraction()); | 169 ASSERT_EQ(0, timedItem->timeFraction()); |
| 170 | 170 |
| 171 timedItem->updateInheritedTime(2); | 171 timedItem->updateInheritedTime(2); |
| 172 ASSERT_TRUE(isNull(timedItem->timeFraction())); | 172 ASSERT_TRUE(isNull(timedItem->timeFraction())); |
| 173 } | 173 } |
| 174 | 174 |
| 175 TEST(TimedItem, FillBoth) | 175 TEST(CoreAnimationTimedItemTest, FillBoth) |
| 176 { | 176 { |
| 177 Timing timing; | 177 Timing timing; |
| 178 timing.hasIterationDuration = true; | 178 timing.hasIterationDuration = true; |
| 179 timing.iterationDuration = 1; | 179 timing.iterationDuration = 1; |
| 180 timing.fillMode = Timing::FillModeBoth; | 180 timing.fillMode = Timing::FillModeBoth; |
| 181 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 181 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 182 | 182 |
| 183 timedItem->updateInheritedTime(-1); | 183 timedItem->updateInheritedTime(-1); |
| 184 ASSERT_EQ(0, timedItem->timeFraction()); | 184 ASSERT_EQ(0, timedItem->timeFraction()); |
| 185 | 185 |
| 186 timedItem->updateInheritedTime(2); | 186 timedItem->updateInheritedTime(2); |
| 187 ASSERT_EQ(1, timedItem->timeFraction()); | 187 ASSERT_EQ(1, timedItem->timeFraction()); |
| 188 } | 188 } |
| 189 | 189 |
| 190 TEST(TimedItem, StartDelay) | 190 TEST(CoreAnimationTimedItemTest, StartDelay) |
| 191 { | 191 { |
| 192 Timing timing; | 192 Timing timing; |
| 193 timing.hasIterationDuration = true; | 193 timing.hasIterationDuration = true; |
| 194 timing.iterationDuration = 1; | 194 timing.iterationDuration = 1; |
| 195 timing.startDelay = 0.5; | 195 timing.startDelay = 0.5; |
| 196 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 196 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 197 | 197 |
| 198 timedItem->updateInheritedTime(0); | 198 timedItem->updateInheritedTime(0); |
| 199 ASSERT_TRUE(isNull(timedItem->timeFraction())); | 199 ASSERT_TRUE(isNull(timedItem->timeFraction())); |
| 200 | 200 |
| 201 timedItem->updateInheritedTime(0.5); | 201 timedItem->updateInheritedTime(0.5); |
| 202 ASSERT_EQ(0, timedItem->timeFraction()); | 202 ASSERT_EQ(0, timedItem->timeFraction()); |
| 203 | 203 |
| 204 timedItem->updateInheritedTime(1.5); | 204 timedItem->updateInheritedTime(1.5); |
| 205 ASSERT_EQ(1, timedItem->timeFraction()); | 205 ASSERT_EQ(1, timedItem->timeFraction()); |
| 206 } | 206 } |
| 207 | 207 |
| 208 TEST(TimedItem, InfiniteIteration) | 208 TEST(CoreAnimationTimedItemTest, InfiniteIteration) |
| 209 { | 209 { |
| 210 Timing timing; | 210 Timing timing; |
| 211 timing.hasIterationDuration = true; | 211 timing.hasIterationDuration = true; |
| 212 timing.iterationDuration = 1; | 212 timing.iterationDuration = 1; |
| 213 timing.iterationCount = std::numeric_limits<double>::infinity(); | 213 timing.iterationCount = std::numeric_limits<double>::infinity(); |
| 214 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 214 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 215 | 215 |
| 216 timedItem->updateInheritedTime(-1); | 216 timedItem->updateInheritedTime(-1); |
| 217 ASSERT_TRUE(isNull(timedItem->currentIteration())); | 217 ASSERT_TRUE(isNull(timedItem->currentIteration())); |
| 218 ASSERT_TRUE(isNull(timedItem->timeFraction())); | 218 ASSERT_TRUE(isNull(timedItem->timeFraction())); |
| 219 | 219 |
| 220 ASSERT_EQ(std::numeric_limits<double>::infinity(), timedItem->activeDuration
()); | 220 ASSERT_EQ(std::numeric_limits<double>::infinity(), timedItem->activeDuration
()); |
| 221 | 221 |
| 222 timedItem->updateInheritedTime(0); | 222 timedItem->updateInheritedTime(0); |
| 223 ASSERT_EQ(0, timedItem->currentIteration()); | 223 ASSERT_EQ(0, timedItem->currentIteration()); |
| 224 ASSERT_EQ(0, timedItem->timeFraction()); | 224 ASSERT_EQ(0, timedItem->timeFraction()); |
| 225 } | 225 } |
| 226 | 226 |
| 227 TEST(TimedItem, Iteration) | 227 TEST(CoreAnimationTimedItemTest, Iteration) |
| 228 { | 228 { |
| 229 Timing timing; | 229 Timing timing; |
| 230 timing.iterationCount = 2; | 230 timing.iterationCount = 2; |
| 231 timing.hasIterationDuration = true; | 231 timing.hasIterationDuration = true; |
| 232 timing.iterationDuration = 2; | 232 timing.iterationDuration = 2; |
| 233 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 233 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 234 | 234 |
| 235 timedItem->updateInheritedTime(0); | 235 timedItem->updateInheritedTime(0); |
| 236 ASSERT_EQ(0, timedItem->currentIteration()); | 236 ASSERT_EQ(0, timedItem->currentIteration()); |
| 237 ASSERT_EQ(0, timedItem->timeFraction()); | 237 ASSERT_EQ(0, timedItem->timeFraction()); |
| 238 | 238 |
| 239 timedItem->updateInheritedTime(1); | 239 timedItem->updateInheritedTime(1); |
| 240 ASSERT_EQ(0, timedItem->currentIteration()); | 240 ASSERT_EQ(0, timedItem->currentIteration()); |
| 241 ASSERT_EQ(0.5, timedItem->timeFraction()); | 241 ASSERT_EQ(0.5, timedItem->timeFraction()); |
| 242 | 242 |
| 243 timedItem->updateInheritedTime(2); | 243 timedItem->updateInheritedTime(2); |
| 244 ASSERT_EQ(1, timedItem->currentIteration()); | 244 ASSERT_EQ(1, timedItem->currentIteration()); |
| 245 ASSERT_EQ(0, timedItem->timeFraction()); | 245 ASSERT_EQ(0, timedItem->timeFraction()); |
| 246 | 246 |
| 247 timedItem->updateInheritedTime(2); | 247 timedItem->updateInheritedTime(2); |
| 248 ASSERT_EQ(1, timedItem->currentIteration()); | 248 ASSERT_EQ(1, timedItem->currentIteration()); |
| 249 ASSERT_EQ(0, timedItem->timeFraction()); | 249 ASSERT_EQ(0, timedItem->timeFraction()); |
| 250 | 250 |
| 251 timedItem->updateInheritedTime(5); | 251 timedItem->updateInheritedTime(5); |
| 252 ASSERT_EQ(1, timedItem->currentIteration()); | 252 ASSERT_EQ(1, timedItem->currentIteration()); |
| 253 ASSERT_EQ(1, timedItem->timeFraction()); | 253 ASSERT_EQ(1, timedItem->timeFraction()); |
| 254 } | 254 } |
| 255 | 255 |
| 256 TEST(TimedItem, IterationStart) | 256 TEST(CoreAnimationTimedItemTest, IterationStart) |
| 257 { | 257 { |
| 258 Timing timing; | 258 Timing timing; |
| 259 timing.iterationStart = 1.2; | 259 timing.iterationStart = 1.2; |
| 260 timing.iterationCount = 2.2; | 260 timing.iterationCount = 2.2; |
| 261 timing.hasIterationDuration = true; | 261 timing.hasIterationDuration = true; |
| 262 timing.iterationDuration = 1; | 262 timing.iterationDuration = 1; |
| 263 timing.fillMode = Timing::FillModeBoth; | 263 timing.fillMode = Timing::FillModeBoth; |
| 264 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 264 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 265 | 265 |
| 266 timedItem->updateInheritedTime(-1); | 266 timedItem->updateInheritedTime(-1); |
| 267 ASSERT_EQ(1, timedItem->currentIteration()); | 267 ASSERT_EQ(1, timedItem->currentIteration()); |
| 268 ASSERT_NEAR(0.2, timedItem->timeFraction(), 0.000000000000001); | 268 ASSERT_NEAR(0.2, timedItem->timeFraction(), 0.000000000000001); |
| 269 | 269 |
| 270 timedItem->updateInheritedTime(0); | 270 timedItem->updateInheritedTime(0); |
| 271 ASSERT_EQ(1, timedItem->currentIteration()); | 271 ASSERT_EQ(1, timedItem->currentIteration()); |
| 272 ASSERT_NEAR(0.2, timedItem->timeFraction(), 0.000000000000001); | 272 ASSERT_NEAR(0.2, timedItem->timeFraction(), 0.000000000000001); |
| 273 | 273 |
| 274 timedItem->updateInheritedTime(10); | 274 timedItem->updateInheritedTime(10); |
| 275 ASSERT_EQ(3, timedItem->currentIteration()); | 275 ASSERT_EQ(3, timedItem->currentIteration()); |
| 276 ASSERT_NEAR(0.4, timedItem->timeFraction(), 0.000000000000001); | 276 ASSERT_NEAR(0.4, timedItem->timeFraction(), 0.000000000000001); |
| 277 } | 277 } |
| 278 | 278 |
| 279 TEST(TimedItem, IterationAlternate) | 279 TEST(CoreAnimationTimedItemTest, IterationAlternate) |
| 280 { | 280 { |
| 281 Timing timing; | 281 Timing timing; |
| 282 timing.iterationCount = 10; | 282 timing.iterationCount = 10; |
| 283 timing.hasIterationDuration = true; | 283 timing.hasIterationDuration = true; |
| 284 timing.iterationDuration = 1; | 284 timing.iterationDuration = 1; |
| 285 timing.direction = Timing::PlaybackDirectionAlternate; | 285 timing.direction = Timing::PlaybackDirectionAlternate; |
| 286 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 286 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 287 | 287 |
| 288 timedItem->updateInheritedTime(0.75); | 288 timedItem->updateInheritedTime(0.75); |
| 289 ASSERT_EQ(0, timedItem->currentIteration()); | 289 ASSERT_EQ(0, timedItem->currentIteration()); |
| 290 ASSERT_EQ(0.75, timedItem->timeFraction()); | 290 ASSERT_EQ(0.75, timedItem->timeFraction()); |
| 291 | 291 |
| 292 timedItem->updateInheritedTime(1.75); | 292 timedItem->updateInheritedTime(1.75); |
| 293 ASSERT_EQ(1, timedItem->currentIteration()); | 293 ASSERT_EQ(1, timedItem->currentIteration()); |
| 294 ASSERT_EQ(0.25, timedItem->timeFraction()); | 294 ASSERT_EQ(0.25, timedItem->timeFraction()); |
| 295 | 295 |
| 296 timedItem->updateInheritedTime(2.75); | 296 timedItem->updateInheritedTime(2.75); |
| 297 ASSERT_EQ(2, timedItem->currentIteration()); | 297 ASSERT_EQ(2, timedItem->currentIteration()); |
| 298 ASSERT_EQ(0.75, timedItem->timeFraction()); | 298 ASSERT_EQ(0.75, timedItem->timeFraction()); |
| 299 } | 299 } |
| 300 | 300 |
| 301 TEST(TimedItem, IterationAlternateReverse) | 301 TEST(CoreAnimationTimedItemTest, IterationAlternateReverse) |
| 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::PlaybackDirectionAlternateReverse; | 307 timing.direction = Timing::PlaybackDirectionAlternateReverse; |
| 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.25, timedItem->timeFraction()); | 312 ASSERT_EQ(0.25, 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.75, timedItem->timeFraction()); | 316 ASSERT_EQ(0.75, 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.25, timedItem->timeFraction()); | 320 ASSERT_EQ(0.25, timedItem->timeFraction()); |
| 321 } | 321 } |
| 322 | 322 |
| 323 TEST(TimedItem, ZeroDurationSanity) | 323 TEST(CoreAnimationTimedItemTest, ZeroDurationSanity) |
| 324 { | 324 { |
| 325 Timing timing; | 325 Timing timing; |
| 326 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 326 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 327 | 327 |
| 328 ASSERT_EQ(0, timedItem->startTime()); | 328 ASSERT_EQ(0, timedItem->startTime()); |
| 329 | 329 |
| 330 timedItem->updateInheritedTime(0); | 330 timedItem->updateInheritedTime(0); |
| 331 | 331 |
| 332 ASSERT_EQ(TimedItem::PhaseAfter, timedItem->phase()); | 332 ASSERT_EQ(TimedItem::PhaseAfter, timedItem->phase()); |
| 333 ASSERT_FALSE(timedItem->isInPlay()); | 333 ASSERT_FALSE(timedItem->isInPlay()); |
| 334 ASSERT_FALSE(timedItem->isCurrent()); | 334 ASSERT_FALSE(timedItem->isCurrent()); |
| 335 ASSERT_TRUE(timedItem->isInEffect()); | 335 ASSERT_TRUE(timedItem->isInEffect()); |
| 336 ASSERT_EQ(0, timedItem->currentIteration()); | 336 ASSERT_EQ(0, timedItem->currentIteration()); |
| 337 ASSERT_EQ(0, timedItem->startTime()); | 337 ASSERT_EQ(0, timedItem->startTime()); |
| 338 ASSERT_EQ(0, timedItem->activeDuration()); | 338 ASSERT_EQ(0, timedItem->activeDuration()); |
| 339 ASSERT_EQ(1, timedItem->timeFraction()); | 339 ASSERT_EQ(1, timedItem->timeFraction()); |
| 340 | 340 |
| 341 timedItem->updateInheritedTime(1); | 341 timedItem->updateInheritedTime(1); |
| 342 | 342 |
| 343 ASSERT_EQ(TimedItem::PhaseAfter, timedItem->phase()); | 343 ASSERT_EQ(TimedItem::PhaseAfter, timedItem->phase()); |
| 344 ASSERT_FALSE(timedItem->isInPlay()); | 344 ASSERT_FALSE(timedItem->isInPlay()); |
| 345 ASSERT_FALSE(timedItem->isCurrent()); | 345 ASSERT_FALSE(timedItem->isCurrent()); |
| 346 ASSERT_TRUE(timedItem->isInEffect()); | 346 ASSERT_TRUE(timedItem->isInEffect()); |
| 347 ASSERT_EQ(0, timedItem->currentIteration()); | 347 ASSERT_EQ(0, timedItem->currentIteration()); |
| 348 ASSERT_EQ(0, timedItem->startTime()); | 348 ASSERT_EQ(0, timedItem->startTime()); |
| 349 ASSERT_EQ(0, timedItem->activeDuration()); | 349 ASSERT_EQ(0, timedItem->activeDuration()); |
| 350 ASSERT_EQ(1, timedItem->timeFraction()); | 350 ASSERT_EQ(1, timedItem->timeFraction()); |
| 351 } | 351 } |
| 352 | 352 |
| 353 TEST(TimedItem, ZeroDurationFillForwards) | 353 TEST(CoreAnimationTimedItemTest, ZeroDurationFillForwards) |
| 354 { | 354 { |
| 355 Timing timing; | 355 Timing timing; |
| 356 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 356 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 357 | 357 |
| 358 timedItem->updateInheritedTime(-1); | 358 timedItem->updateInheritedTime(-1); |
| 359 ASSERT_TRUE(isNull(timedItem->timeFraction())); | 359 ASSERT_TRUE(isNull(timedItem->timeFraction())); |
| 360 | 360 |
| 361 timedItem->updateInheritedTime(0); | 361 timedItem->updateInheritedTime(0); |
| 362 ASSERT_EQ(1, timedItem->timeFraction()); | 362 ASSERT_EQ(1, timedItem->timeFraction()); |
| 363 | 363 |
| 364 timedItem->updateInheritedTime(1); | 364 timedItem->updateInheritedTime(1); |
| 365 ASSERT_EQ(1, timedItem->timeFraction()); | 365 ASSERT_EQ(1, timedItem->timeFraction()); |
| 366 } | 366 } |
| 367 | 367 |
| 368 TEST(TimedItem, ZeroDurationFillBackwards) | 368 TEST(CoreAnimationTimedItemTest, ZeroDurationFillBackwards) |
| 369 { | 369 { |
| 370 Timing timing; | 370 Timing timing; |
| 371 timing.fillMode = Timing::FillModeBackwards; | 371 timing.fillMode = Timing::FillModeBackwards; |
| 372 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 372 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 373 | 373 |
| 374 timedItem->updateInheritedTime(-1); | 374 timedItem->updateInheritedTime(-1); |
| 375 ASSERT_EQ(0, timedItem->timeFraction()); | 375 ASSERT_EQ(0, timedItem->timeFraction()); |
| 376 | 376 |
| 377 timedItem->updateInheritedTime(0); | 377 timedItem->updateInheritedTime(0); |
| 378 ASSERT_TRUE(isNull(timedItem->timeFraction())); | 378 ASSERT_TRUE(isNull(timedItem->timeFraction())); |
| 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 | 383 |
| 384 TEST(TimedItem, ZeroDurationFillBoth) | 384 TEST(CoreAnimationTimedItemTest, ZeroDurationFillBoth) |
| 385 { | 385 { |
| 386 Timing timing; | 386 Timing timing; |
| 387 timing.fillMode = Timing::FillModeBoth; | 387 timing.fillMode = Timing::FillModeBoth; |
| 388 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 388 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 389 | 389 |
| 390 timedItem->updateInheritedTime(-1); | 390 timedItem->updateInheritedTime(-1); |
| 391 ASSERT_EQ(0, timedItem->timeFraction()); | 391 ASSERT_EQ(0, timedItem->timeFraction()); |
| 392 | 392 |
| 393 timedItem->updateInheritedTime(0); | 393 timedItem->updateInheritedTime(0); |
| 394 ASSERT_EQ(1, timedItem->timeFraction()); | 394 ASSERT_EQ(1, timedItem->timeFraction()); |
| 395 | 395 |
| 396 timedItem->updateInheritedTime(1); | 396 timedItem->updateInheritedTime(1); |
| 397 ASSERT_EQ(1, timedItem->timeFraction()); | 397 ASSERT_EQ(1, timedItem->timeFraction()); |
| 398 } | 398 } |
| 399 | 399 |
| 400 TEST(TimedItem, ZeroDurationStartDelay) | 400 TEST(CoreAnimationTimedItemTest, ZeroDurationStartDelay) |
| 401 { | 401 { |
| 402 Timing timing; | 402 Timing timing; |
| 403 timing.startDelay = 0.5; | 403 timing.startDelay = 0.5; |
| 404 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 404 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 405 | 405 |
| 406 timedItem->updateInheritedTime(0); | 406 timedItem->updateInheritedTime(0); |
| 407 ASSERT_TRUE(isNull(timedItem->timeFraction())); | 407 ASSERT_TRUE(isNull(timedItem->timeFraction())); |
| 408 | 408 |
| 409 timedItem->updateInheritedTime(0.5); | 409 timedItem->updateInheritedTime(0.5); |
| 410 ASSERT_EQ(1, timedItem->timeFraction()); | 410 ASSERT_EQ(1, timedItem->timeFraction()); |
| 411 | 411 |
| 412 timedItem->updateInheritedTime(1.5); | 412 timedItem->updateInheritedTime(1.5); |
| 413 ASSERT_EQ(1, timedItem->timeFraction()); | 413 ASSERT_EQ(1, timedItem->timeFraction()); |
| 414 } | 414 } |
| 415 | 415 |
| 416 TEST(TimedItem, ZeroDurationIterationStartAndCount) | 416 TEST(CoreAnimationTimedItemTest, ZeroDurationIterationStartAndCount) |
| 417 { | 417 { |
| 418 Timing timing; | 418 Timing timing; |
| 419 timing.iterationStart = 0.1; | 419 timing.iterationStart = 0.1; |
| 420 timing.iterationCount = 0.2; | 420 timing.iterationCount = 0.2; |
| 421 timing.fillMode = Timing::FillModeBoth; | 421 timing.fillMode = Timing::FillModeBoth; |
| 422 timing.startDelay = 0.3; | 422 timing.startDelay = 0.3; |
| 423 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 423 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 424 | 424 |
| 425 timedItem->updateInheritedTime(0); | 425 timedItem->updateInheritedTime(0); |
| 426 ASSERT_EQ(0.1, timedItem->timeFraction()); | 426 ASSERT_EQ(0.1, timedItem->timeFraction()); |
| 427 | 427 |
| 428 timedItem->updateInheritedTime(0.3); | 428 timedItem->updateInheritedTime(0.3); |
| 429 ASSERT_DOUBLE_EQ(0.3, timedItem->timeFraction()); | 429 ASSERT_DOUBLE_EQ(0.3, timedItem->timeFraction()); |
| 430 | 430 |
| 431 timedItem->updateInheritedTime(1); | 431 timedItem->updateInheritedTime(1); |
| 432 ASSERT_DOUBLE_EQ(0.3, timedItem->timeFraction()); | 432 ASSERT_DOUBLE_EQ(0.3, timedItem->timeFraction()); |
| 433 } | 433 } |
| 434 | 434 |
| 435 // FIXME: Needs specification work -- ASSERTION FAILED: activeDuration >= 0 | 435 // FIXME: Needs specification work -- ASSERTION FAILED: activeDuration >= 0 |
| 436 TEST(TimedItem, DISABLED_ZeroDurationInfiniteIteration) | 436 TEST(CoreAnimationTimedItemTest, DISABLED_ZeroDurationInfiniteIteration) |
| 437 { | 437 { |
| 438 Timing timing; | 438 Timing timing; |
| 439 timing.iterationCount = std::numeric_limits<double>::infinity(); | 439 timing.iterationCount = std::numeric_limits<double>::infinity(); |
| 440 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 440 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 441 | 441 |
| 442 timedItem->updateInheritedTime(-1); | 442 timedItem->updateInheritedTime(-1); |
| 443 ASSERT_TRUE(isNull(timedItem->currentIteration())); | 443 ASSERT_TRUE(isNull(timedItem->currentIteration())); |
| 444 ASSERT_TRUE(isNull(timedItem->timeFraction())); | 444 ASSERT_TRUE(isNull(timedItem->timeFraction())); |
| 445 ASSERT_TRUE(isNull(timedItem->activeDuration())); | 445 ASSERT_TRUE(isNull(timedItem->activeDuration())); |
| 446 | 446 |
| 447 timedItem->updateInheritedTime(0); | 447 timedItem->updateInheritedTime(0); |
| 448 ASSERT_EQ(std::numeric_limits<double>::infinity(), timedItem->currentIterati
on()); | 448 ASSERT_EQ(std::numeric_limits<double>::infinity(), timedItem->currentIterati
on()); |
| 449 ASSERT_EQ(1, timedItem->timeFraction()); | 449 ASSERT_EQ(1, timedItem->timeFraction()); |
| 450 } | 450 } |
| 451 | 451 |
| 452 TEST(TimedItem, ZeroDurationIteration) | 452 TEST(CoreAnimationTimedItemTest, ZeroDurationIteration) |
| 453 { | 453 { |
| 454 Timing timing; | 454 Timing timing; |
| 455 timing.iterationCount = 2; | 455 timing.iterationCount = 2; |
| 456 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 456 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 457 | 457 |
| 458 timedItem->updateInheritedTime(-1); | 458 timedItem->updateInheritedTime(-1); |
| 459 ASSERT_TRUE(isNull(timedItem->currentIteration())); | 459 ASSERT_TRUE(isNull(timedItem->currentIteration())); |
| 460 ASSERT_TRUE(isNull(timedItem->timeFraction())); | 460 ASSERT_TRUE(isNull(timedItem->timeFraction())); |
| 461 | 461 |
| 462 timedItem->updateInheritedTime(0); | 462 timedItem->updateInheritedTime(0); |
| 463 ASSERT_EQ(1, timedItem->currentIteration()); | 463 ASSERT_EQ(1, timedItem->currentIteration()); |
| 464 ASSERT_EQ(1, timedItem->timeFraction()); | 464 ASSERT_EQ(1, timedItem->timeFraction()); |
| 465 | 465 |
| 466 timedItem->updateInheritedTime(1); | 466 timedItem->updateInheritedTime(1); |
| 467 ASSERT_EQ(1, timedItem->currentIteration()); | 467 ASSERT_EQ(1, timedItem->currentIteration()); |
| 468 ASSERT_EQ(1, timedItem->timeFraction()); | 468 ASSERT_EQ(1, timedItem->timeFraction()); |
| 469 } | 469 } |
| 470 | 470 |
| 471 TEST(TimedItem, ZeroDurationIterationStart) | 471 TEST(CoreAnimationTimedItemTest, ZeroDurationIterationStart) |
| 472 { | 472 { |
| 473 Timing timing; | 473 Timing timing; |
| 474 timing.iterationStart = 1.2; | 474 timing.iterationStart = 1.2; |
| 475 timing.iterationCount = 2.2; | 475 timing.iterationCount = 2.2; |
| 476 timing.fillMode = Timing::FillModeBoth; | 476 timing.fillMode = Timing::FillModeBoth; |
| 477 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 477 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 478 | 478 |
| 479 timedItem->updateInheritedTime(-1); | 479 timedItem->updateInheritedTime(-1); |
| 480 ASSERT_EQ(1, timedItem->currentIteration()); | 480 ASSERT_EQ(1, timedItem->currentIteration()); |
| 481 ASSERT_NEAR(0.2, timedItem->timeFraction(), 0.000000000000001); | 481 ASSERT_NEAR(0.2, timedItem->timeFraction(), 0.000000000000001); |
| 482 | 482 |
| 483 timedItem->updateInheritedTime(0); | 483 timedItem->updateInheritedTime(0); |
| 484 ASSERT_EQ(3, timedItem->currentIteration()); | 484 ASSERT_EQ(3, timedItem->currentIteration()); |
| 485 ASSERT_NEAR(0.4, timedItem->timeFraction(), 0.000000000000001); | 485 ASSERT_NEAR(0.4, timedItem->timeFraction(), 0.000000000000001); |
| 486 | 486 |
| 487 timedItem->updateInheritedTime(10); | 487 timedItem->updateInheritedTime(10); |
| 488 ASSERT_EQ(3, timedItem->currentIteration()); | 488 ASSERT_EQ(3, timedItem->currentIteration()); |
| 489 ASSERT_NEAR(0.4, timedItem->timeFraction(), 0.000000000000001); | 489 ASSERT_NEAR(0.4, timedItem->timeFraction(), 0.000000000000001); |
| 490 } | 490 } |
| 491 | 491 |
| 492 TEST(TimedItem, ZeroDurationIterationAlternate) | 492 TEST(CoreAnimationTimedItemTest, ZeroDurationIterationAlternate) |
| 493 { | 493 { |
| 494 Timing timing; | 494 Timing timing; |
| 495 timing.iterationCount = 2; | 495 timing.iterationCount = 2; |
| 496 timing.direction = Timing::PlaybackDirectionAlternate; | 496 timing.direction = Timing::PlaybackDirectionAlternate; |
| 497 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 497 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 498 | 498 |
| 499 timedItem->updateInheritedTime(-1); | 499 timedItem->updateInheritedTime(-1); |
| 500 ASSERT_TRUE(isNull(timedItem->currentIteration())); | 500 ASSERT_TRUE(isNull(timedItem->currentIteration())); |
| 501 ASSERT_TRUE(isNull(timedItem->timeFraction())); | 501 ASSERT_TRUE(isNull(timedItem->timeFraction())); |
| 502 | 502 |
| 503 timedItem->updateInheritedTime(0); | 503 timedItem->updateInheritedTime(0); |
| 504 ASSERT_EQ(1, timedItem->currentIteration()); | 504 ASSERT_EQ(1, timedItem->currentIteration()); |
| 505 ASSERT_EQ(0, timedItem->timeFraction()); | 505 ASSERT_EQ(0, timedItem->timeFraction()); |
| 506 | 506 |
| 507 timedItem->updateInheritedTime(1); | 507 timedItem->updateInheritedTime(1); |
| 508 ASSERT_EQ(1, timedItem->currentIteration()); | 508 ASSERT_EQ(1, timedItem->currentIteration()); |
| 509 ASSERT_EQ(0, timedItem->timeFraction()); | 509 ASSERT_EQ(0, timedItem->timeFraction()); |
| 510 } | 510 } |
| 511 | 511 |
| 512 TEST(TimedItem, ZeroDurationIterationAlternateReverse) | 512 TEST(CoreAnimationTimedItemTest, ZeroDurationIterationAlternateReverse) |
| 513 { | 513 { |
| 514 Timing timing; | 514 Timing timing; |
| 515 timing.iterationCount = 2; | 515 timing.iterationCount = 2; |
| 516 timing.direction = Timing::PlaybackDirectionAlternateReverse; | 516 timing.direction = Timing::PlaybackDirectionAlternateReverse; |
| 517 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 517 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 518 | 518 |
| 519 timedItem->updateInheritedTime(-1); | 519 timedItem->updateInheritedTime(-1); |
| 520 ASSERT_TRUE(isNull(timedItem->currentIteration())); | 520 ASSERT_TRUE(isNull(timedItem->currentIteration())); |
| 521 ASSERT_TRUE(isNull(timedItem->timeFraction())); | 521 ASSERT_TRUE(isNull(timedItem->timeFraction())); |
| 522 | 522 |
| 523 timedItem->updateInheritedTime(0); | 523 timedItem->updateInheritedTime(0); |
| 524 ASSERT_EQ(1, timedItem->currentIteration()); | 524 ASSERT_EQ(1, timedItem->currentIteration()); |
| 525 ASSERT_EQ(1, timedItem->timeFraction()); | 525 ASSERT_EQ(1, timedItem->timeFraction()); |
| 526 | 526 |
| 527 timedItem->updateInheritedTime(1); | 527 timedItem->updateInheritedTime(1); |
| 528 ASSERT_EQ(1, timedItem->currentIteration()); | 528 ASSERT_EQ(1, timedItem->currentIteration()); |
| 529 ASSERT_EQ(1, timedItem->timeFraction()); | 529 ASSERT_EQ(1, timedItem->timeFraction()); |
| 530 } | 530 } |
| 531 | 531 |
| 532 TEST(TimedItem, Events) | 532 TEST(CoreAnimationTimedItemTest, Events) |
| 533 { | 533 { |
| 534 Timing timing; | 534 Timing timing; |
| 535 timing.hasIterationDuration = true; | 535 timing.hasIterationDuration = true; |
| 536 timing.iterationDuration = 1; | 536 timing.iterationDuration = 1; |
| 537 timing.iterationCount = 2; | 537 timing.iterationCount = 2; |
| 538 timing.startDelay = 1; | 538 timing.startDelay = 1; |
| 539 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); | 539 RefPtr<TestTimedItem> timedItem = TestTimedItem::create(timing); |
| 540 | 540 |
| 541 // First sample | 541 // First sample |
| 542 timedItem->updateInheritedTime(0.0); | 542 timedItem->updateInheritedTime(0.0); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 567 // After end | 567 // After end |
| 568 timedItem->updateInheritedTime(3.5); | 568 timedItem->updateInheritedTime(3.5); |
| 569 ASSERT_TRUE(timedItem->eventDelegate()->eventTriggered()); | 569 ASSERT_TRUE(timedItem->eventDelegate()->eventTriggered()); |
| 570 EXPECT_TRUE(timedItem->eventDelegate()->phaseChanged()); | 570 EXPECT_TRUE(timedItem->eventDelegate()->phaseChanged()); |
| 571 EXPECT_FALSE(timedItem->eventDelegate()->iterationChanged()); | 571 EXPECT_FALSE(timedItem->eventDelegate()->iterationChanged()); |
| 572 | 572 |
| 573 timedItem->updateInheritedTime(3.6); | 573 timedItem->updateInheritedTime(3.6); |
| 574 ASSERT_FALSE(timedItem->eventDelegate()->eventTriggered()); | 574 ASSERT_FALSE(timedItem->eventDelegate()->eventTriggered()); |
| 575 } | 575 } |
| 576 } | 576 } |
| OLD | NEW |