| 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 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 69 double actualValue; | 69 double actualValue; |
| 70 if (value->isLength()) | 70 if (value->isLength()) |
| 71 actualValue = toCSSPrimitiveValue(toAnimatableLength(value.get())->toCSS
Value().get())->getDoubleValue(); | 71 actualValue = toCSSPrimitiveValue(toAnimatableLength(value.get())->toCSS
Value().get())->getDoubleValue(); |
| 72 else | 72 else |
| 73 actualValue = toCSSPrimitiveValue(toAnimatableUnknown(value.get())->toCS
SValue().get())->getDoubleValue(); | 73 actualValue = toCSSPrimitiveValue(toAnimatableUnknown(value.get())->toCS
SValue().get())->getDoubleValue(); |
| 74 | 74 |
| 75 EXPECT_FLOAT_EQ(static_cast<float>(expectedValue), actualValue); | 75 EXPECT_FLOAT_EQ(static_cast<float>(expectedValue), actualValue); |
| 76 } | 76 } |
| 77 | 77 |
| 78 | 78 |
| 79 TEST(CoreAnimationKeyframeAnimationEffectTest, BasicOperation) | 79 TEST(AnimationKeyframeAnimationEffectTest, BasicOperation) |
| 80 { | 80 { |
| 81 KeyframeAnimationEffect::KeyframeVector keyframes = keyframesAtZeroAndOne(un
knownAnimatableValue(3.0), unknownAnimatableValue(5.0)); | 81 KeyframeAnimationEffect::KeyframeVector keyframes = keyframesAtZeroAndOne(un
knownAnimatableValue(3.0), unknownAnimatableValue(5.0)); |
| 82 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); | 82 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); |
| 83 OwnPtr<AnimationEffect::CompositableValueMap> values = effect->sample(0, 0.6
); | 83 OwnPtr<AnimationEffect::CompositableValueMap> values = effect->sample(0, 0.6
); |
| 84 ASSERT_EQ(1, values->size()); | 84 ASSERT_EQ(1, values->size()); |
| 85 EXPECT_EQ(CSSPropertyLeft, values->begin()->key); | 85 EXPECT_EQ(CSSPropertyLeft, values->begin()->key); |
| 86 expectDoubleValue(5.0, values->begin()->value->compositeOnto(unknownAnimatab
leValue(7.0))); | 86 expectDoubleValue(5.0, values->begin()->value->compositeOnto(unknownAnimatab
leValue(7.0))); |
| 87 } | 87 } |
| 88 | 88 |
| 89 TEST(CoreAnimationKeyframeAnimationEffectTest, CompositeReplaceNonInterpolable) | 89 TEST(AnimationKeyframeAnimationEffectTest, CompositeReplaceNonInterpolable) |
| 90 { | 90 { |
| 91 KeyframeAnimationEffect::KeyframeVector keyframes = keyframesAtZeroAndOne(un
knownAnimatableValue(3.0), unknownAnimatableValue(5.0)); | 91 KeyframeAnimationEffect::KeyframeVector keyframes = keyframesAtZeroAndOne(un
knownAnimatableValue(3.0), unknownAnimatableValue(5.0)); |
| 92 keyframes[0]->setComposite(AnimationEffect::CompositeReplace); | 92 keyframes[0]->setComposite(AnimationEffect::CompositeReplace); |
| 93 keyframes[1]->setComposite(AnimationEffect::CompositeReplace); | 93 keyframes[1]->setComposite(AnimationEffect::CompositeReplace); |
| 94 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); | 94 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); |
| 95 expectDoubleValue(5.0, effect->sample(0, 0.6)->begin()->value->compositeOnto
(unknownAnimatableValue(7.0))); | 95 expectDoubleValue(5.0, effect->sample(0, 0.6)->begin()->value->compositeOnto
(unknownAnimatableValue(7.0))); |
| 96 } | 96 } |
| 97 | 97 |
| 98 TEST(CoreAnimationKeyframeAnimationEffectTest, CompositeReplace) | 98 TEST(AnimationKeyframeAnimationEffectTest, CompositeReplace) |
| 99 { | 99 { |
| 100 KeyframeAnimationEffect::KeyframeVector keyframes = keyframesAtZeroAndOne(pi
xelAnimatableValue(3.0), pixelAnimatableValue(5.0)); | 100 KeyframeAnimationEffect::KeyframeVector keyframes = keyframesAtZeroAndOne(pi
xelAnimatableValue(3.0), pixelAnimatableValue(5.0)); |
| 101 keyframes[0]->setComposite(AnimationEffect::CompositeReplace); | 101 keyframes[0]->setComposite(AnimationEffect::CompositeReplace); |
| 102 keyframes[1]->setComposite(AnimationEffect::CompositeReplace); | 102 keyframes[1]->setComposite(AnimationEffect::CompositeReplace); |
| 103 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); | 103 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); |
| 104 expectDoubleValue(3.0 * 0.4 + 5.0 * 0.6, effect->sample(0, 0.6)->begin()->va
lue->compositeOnto(unknownAnimatableValue(7.0))); | 104 expectDoubleValue(3.0 * 0.4 + 5.0 * 0.6, effect->sample(0, 0.6)->begin()->va
lue->compositeOnto(unknownAnimatableValue(7.0))); |
| 105 } | 105 } |
| 106 | 106 |
| 107 TEST(CoreAnimationKeyframeAnimationEffectTest, CompositeAdd) | 107 TEST(AnimationKeyframeAnimationEffectTest, CompositeAdd) |
| 108 { | 108 { |
| 109 KeyframeAnimationEffect::KeyframeVector keyframes = keyframesAtZeroAndOne(pi
xelAnimatableValue(3.0), pixelAnimatableValue(5.0)); | 109 KeyframeAnimationEffect::KeyframeVector keyframes = keyframesAtZeroAndOne(pi
xelAnimatableValue(3.0), pixelAnimatableValue(5.0)); |
| 110 keyframes[0]->setComposite(AnimationEffect::CompositeAdd); | 110 keyframes[0]->setComposite(AnimationEffect::CompositeAdd); |
| 111 keyframes[1]->setComposite(AnimationEffect::CompositeAdd); | 111 keyframes[1]->setComposite(AnimationEffect::CompositeAdd); |
| 112 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); | 112 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); |
| 113 expectDoubleValue((7.0 + 3.0) * 0.4 + (7.0 + 5.0) * 0.6, effect->sample(0, 0
.6)->begin()->value->compositeOnto(pixelAnimatableValue(7.0))); | 113 expectDoubleValue((7.0 + 3.0) * 0.4 + (7.0 + 5.0) * 0.6, effect->sample(0, 0
.6)->begin()->value->compositeOnto(pixelAnimatableValue(7.0))); |
| 114 } | 114 } |
| 115 | 115 |
| 116 TEST(CoreAnimationKeyframeAnimationEffectTest, ExtrapolateReplaceNonInterpolable
) | 116 TEST(AnimationKeyframeAnimationEffectTest, ExtrapolateReplaceNonInterpolable) |
| 117 { | 117 { |
| 118 KeyframeAnimationEffect::KeyframeVector keyframes = keyframesAtZeroAndOne(un
knownAnimatableValue(3.0), unknownAnimatableValue(5.0)); | 118 KeyframeAnimationEffect::KeyframeVector keyframes = keyframesAtZeroAndOne(un
knownAnimatableValue(3.0), unknownAnimatableValue(5.0)); |
| 119 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); | 119 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); |
| 120 keyframes[0]->setComposite(AnimationEffect::CompositeReplace); | 120 keyframes[0]->setComposite(AnimationEffect::CompositeReplace); |
| 121 keyframes[1]->setComposite(AnimationEffect::CompositeReplace); | 121 keyframes[1]->setComposite(AnimationEffect::CompositeReplace); |
| 122 expectDoubleValue(5.0, effect->sample(0, 1.6)->begin()->value->compositeOnto
(unknownAnimatableValue(7.0))); | 122 expectDoubleValue(5.0, effect->sample(0, 1.6)->begin()->value->compositeOnto
(unknownAnimatableValue(7.0))); |
| 123 } | 123 } |
| 124 | 124 |
| 125 TEST(CoreAnimationKeyframeAnimationEffectTest, ExtrapolateReplace) | 125 TEST(AnimationKeyframeAnimationEffectTest, ExtrapolateReplace) |
| 126 { | 126 { |
| 127 KeyframeAnimationEffect::KeyframeVector keyframes = keyframesAtZeroAndOne(pi
xelAnimatableValue(3.0), pixelAnimatableValue(5.0)); | 127 KeyframeAnimationEffect::KeyframeVector keyframes = keyframesAtZeroAndOne(pi
xelAnimatableValue(3.0), pixelAnimatableValue(5.0)); |
| 128 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); | 128 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); |
| 129 keyframes[0]->setComposite(AnimationEffect::CompositeReplace); | 129 keyframes[0]->setComposite(AnimationEffect::CompositeReplace); |
| 130 keyframes[1]->setComposite(AnimationEffect::CompositeReplace); | 130 keyframes[1]->setComposite(AnimationEffect::CompositeReplace); |
| 131 expectDoubleValue(3.0 * -0.6 + 5.0 * 1.6, effect->sample(0, 1.6)->begin()->v
alue->compositeOnto(pixelAnimatableValue(7.0))); | 131 expectDoubleValue(3.0 * -0.6 + 5.0 * 1.6, effect->sample(0, 1.6)->begin()->v
alue->compositeOnto(pixelAnimatableValue(7.0))); |
| 132 } | 132 } |
| 133 | 133 |
| 134 TEST(CoreAnimationKeyframeAnimationEffectTest, ExtrapolateAdd) | 134 TEST(AnimationKeyframeAnimationEffectTest, ExtrapolateAdd) |
| 135 { | 135 { |
| 136 KeyframeAnimationEffect::KeyframeVector keyframes = keyframesAtZeroAndOne(pi
xelAnimatableValue(3.0), pixelAnimatableValue(5.0)); | 136 KeyframeAnimationEffect::KeyframeVector keyframes = keyframesAtZeroAndOne(pi
xelAnimatableValue(3.0), pixelAnimatableValue(5.0)); |
| 137 keyframes[0]->setComposite(AnimationEffect::CompositeAdd); | 137 keyframes[0]->setComposite(AnimationEffect::CompositeAdd); |
| 138 keyframes[1]->setComposite(AnimationEffect::CompositeAdd); | 138 keyframes[1]->setComposite(AnimationEffect::CompositeAdd); |
| 139 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); | 139 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); |
| 140 expectDoubleValue((7.0 + 3.0) * -0.6 + (7.0 + 5.0) * 1.6, effect->sample(0,
1.6)->begin()->value->compositeOnto(pixelAnimatableValue(7.0))); | 140 expectDoubleValue((7.0 + 3.0) * -0.6 + (7.0 + 5.0) * 1.6, effect->sample(0,
1.6)->begin()->value->compositeOnto(pixelAnimatableValue(7.0))); |
| 141 } | 141 } |
| 142 | 142 |
| 143 TEST(CoreAnimationKeyframeAnimationEffectTest, ZeroKeyframes) | 143 TEST(AnimationKeyframeAnimationEffectTest, ZeroKeyframes) |
| 144 { | 144 { |
| 145 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(Key
frameAnimationEffect::KeyframeVector()); | 145 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(Key
frameAnimationEffect::KeyframeVector()); |
| 146 EXPECT_TRUE(effect->sample(0, 0.5)->isEmpty()); | 146 EXPECT_TRUE(effect->sample(0, 0.5)->isEmpty()); |
| 147 } | 147 } |
| 148 | 148 |
| 149 TEST(CoreAnimationKeyframeAnimationEffectTest, SingleKeyframeAtOffsetZero) | 149 TEST(AnimationKeyframeAnimationEffectTest, SingleKeyframeAtOffsetZero) |
| 150 { | 150 { |
| 151 KeyframeAnimationEffect::KeyframeVector keyframes(1); | 151 KeyframeAnimationEffect::KeyframeVector keyframes(1); |
| 152 keyframes[0] = Keyframe::create(); | 152 keyframes[0] = Keyframe::create(); |
| 153 keyframes[0]->setOffset(0.0); | 153 keyframes[0]->setOffset(0.0); |
| 154 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0))
; | 154 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0))
; |
| 155 | 155 |
| 156 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); | 156 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); |
| 157 expectDoubleValue(3.0, effect->sample(0, 0.6)->begin()->value->compositeOnto
(unknownAnimatableValue(7.0))); | 157 expectDoubleValue(3.0, effect->sample(0, 0.6)->begin()->value->compositeOnto
(unknownAnimatableValue(7.0))); |
| 158 } | 158 } |
| 159 | 159 |
| 160 TEST(CoreAnimationKeyframeAnimationEffectTest, SingleKeyframeAtOffsetOne) | 160 TEST(AnimationKeyframeAnimationEffectTest, SingleKeyframeAtOffsetOne) |
| 161 { | 161 { |
| 162 KeyframeAnimationEffect::KeyframeVector keyframes(1); | 162 KeyframeAnimationEffect::KeyframeVector keyframes(1); |
| 163 keyframes[0] = Keyframe::create(); | 163 keyframes[0] = Keyframe::create(); |
| 164 keyframes[0]->setOffset(1.0); | 164 keyframes[0]->setOffset(1.0); |
| 165 keyframes[0]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(5.0)); | 165 keyframes[0]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(5.0)); |
| 166 | 166 |
| 167 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); | 167 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); |
| 168 expectDoubleValue(7.0 * 0.4 + 5.0 * 0.6, effect->sample(0, 0.6)->begin()->va
lue->compositeOnto(pixelAnimatableValue(7.0))); | 168 expectDoubleValue(7.0 * 0.4 + 5.0 * 0.6, effect->sample(0, 0.6)->begin()->va
lue->compositeOnto(pixelAnimatableValue(7.0))); |
| 169 } | 169 } |
| 170 | 170 |
| 171 TEST(CoreAnimationKeyframeAnimationEffectTest, MoreThanTwoKeyframes) | 171 TEST(AnimationKeyframeAnimationEffectTest, MoreThanTwoKeyframes) |
| 172 { | 172 { |
| 173 KeyframeAnimationEffect::KeyframeVector keyframes(3); | 173 KeyframeAnimationEffect::KeyframeVector keyframes(3); |
| 174 keyframes[0] = Keyframe::create(); | 174 keyframes[0] = Keyframe::create(); |
| 175 keyframes[0]->setOffset(0.0); | 175 keyframes[0]->setOffset(0.0); |
| 176 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0))
; | 176 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0))
; |
| 177 keyframes[1] = Keyframe::create(); | 177 keyframes[1] = Keyframe::create(); |
| 178 keyframes[1]->setOffset(0.5); | 178 keyframes[1]->setOffset(0.5); |
| 179 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(4.0))
; | 179 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(4.0))
; |
| 180 keyframes[2] = Keyframe::create(); | 180 keyframes[2] = Keyframe::create(); |
| 181 keyframes[2]->setOffset(1.0); | 181 keyframes[2]->setOffset(1.0); |
| 182 keyframes[2]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0))
; | 182 keyframes[2]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0))
; |
| 183 | 183 |
| 184 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); | 184 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); |
| 185 expectDoubleValue(4.0, effect->sample(0, 0.3)->begin()->value->compositeOnto
(unknownAnimatableValue(7.0))); | 185 expectDoubleValue(4.0, effect->sample(0, 0.3)->begin()->value->compositeOnto
(unknownAnimatableValue(7.0))); |
| 186 expectDoubleValue(5.0, effect->sample(0, 0.8)->begin()->value->compositeOnto
(unknownAnimatableValue(7.0))); | 186 expectDoubleValue(5.0, effect->sample(0, 0.8)->begin()->value->compositeOnto
(unknownAnimatableValue(7.0))); |
| 187 } | 187 } |
| 188 | 188 |
| 189 TEST(CoreAnimationKeyframeAnimationEffectTest, EndKeyframeOffsetsUnspecified) | 189 TEST(AnimationKeyframeAnimationEffectTest, EndKeyframeOffsetsUnspecified) |
| 190 { | 190 { |
| 191 KeyframeAnimationEffect::KeyframeVector keyframes(3); | 191 KeyframeAnimationEffect::KeyframeVector keyframes(3); |
| 192 keyframes[0] = Keyframe::create(); | 192 keyframes[0] = Keyframe::create(); |
| 193 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0))
; | 193 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0))
; |
| 194 keyframes[1] = Keyframe::create(); | 194 keyframes[1] = Keyframe::create(); |
| 195 keyframes[1]->setOffset(0.5); | 195 keyframes[1]->setOffset(0.5); |
| 196 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(4.0))
; | 196 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(4.0))
; |
| 197 keyframes[2] = Keyframe::create(); | 197 keyframes[2] = Keyframe::create(); |
| 198 keyframes[2]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0))
; | 198 keyframes[2]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0))
; |
| 199 | 199 |
| 200 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); | 200 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); |
| 201 expectDoubleValue(3.0, effect->sample(0, 0.1)->begin()->value->compositeOnto
(unknownAnimatableValue(7.0))); | 201 expectDoubleValue(3.0, effect->sample(0, 0.1)->begin()->value->compositeOnto
(unknownAnimatableValue(7.0))); |
| 202 expectDoubleValue(4.0, effect->sample(0, 0.6)->begin()->value->compositeOnto
(unknownAnimatableValue(7.0))); | 202 expectDoubleValue(4.0, effect->sample(0, 0.6)->begin()->value->compositeOnto
(unknownAnimatableValue(7.0))); |
| 203 expectDoubleValue(5.0, effect->sample(0, 0.9)->begin()->value->compositeOnto
(unknownAnimatableValue(7.0))); | 203 expectDoubleValue(5.0, effect->sample(0, 0.9)->begin()->value->compositeOnto
(unknownAnimatableValue(7.0))); |
| 204 } | 204 } |
| 205 | 205 |
| 206 TEST(CoreAnimationKeyframeAnimationEffectTest, SampleOnKeyframe) | 206 TEST(AnimationKeyframeAnimationEffectTest, SampleOnKeyframe) |
| 207 { | 207 { |
| 208 KeyframeAnimationEffect::KeyframeVector keyframes(3); | 208 KeyframeAnimationEffect::KeyframeVector keyframes(3); |
| 209 keyframes[0] = Keyframe::create(); | 209 keyframes[0] = Keyframe::create(); |
| 210 keyframes[0]->setOffset(0.0); | 210 keyframes[0]->setOffset(0.0); |
| 211 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0))
; | 211 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0))
; |
| 212 keyframes[1] = Keyframe::create(); | 212 keyframes[1] = Keyframe::create(); |
| 213 keyframes[1]->setOffset(0.5); | 213 keyframes[1]->setOffset(0.5); |
| 214 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(4.0))
; | 214 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(4.0))
; |
| 215 keyframes[2] = Keyframe::create(); | 215 keyframes[2] = Keyframe::create(); |
| 216 keyframes[2]->setOffset(1.0); | 216 keyframes[2]->setOffset(1.0); |
| 217 keyframes[2]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0))
; | 217 keyframes[2]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0))
; |
| 218 | 218 |
| 219 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); | 219 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); |
| 220 expectDoubleValue(3.0, effect->sample(0, 0.0)->begin()->value->compositeOnto
(unknownAnimatableValue(7.0))); | 220 expectDoubleValue(3.0, effect->sample(0, 0.0)->begin()->value->compositeOnto
(unknownAnimatableValue(7.0))); |
| 221 expectDoubleValue(4.0, effect->sample(0, 0.5)->begin()->value->compositeOnto
(unknownAnimatableValue(7.0))); | 221 expectDoubleValue(4.0, effect->sample(0, 0.5)->begin()->value->compositeOnto
(unknownAnimatableValue(7.0))); |
| 222 expectDoubleValue(5.0, effect->sample(0, 1.0)->begin()->value->compositeOnto
(unknownAnimatableValue(7.0))); | 222 expectDoubleValue(5.0, effect->sample(0, 1.0)->begin()->value->compositeOnto
(unknownAnimatableValue(7.0))); |
| 223 } | 223 } |
| 224 | 224 |
| 225 // Note that this tests an implementation detail, not behaviour defined by the s
pec. | 225 // Note that this tests an implementation detail, not behaviour defined by the s
pec. |
| 226 TEST(CoreAnimationKeyframeAnimationEffectTest, SampleReturnsSameAnimatableValueI
nstance) | 226 TEST(AnimationKeyframeAnimationEffectTest, SampleReturnsSameAnimatableValueInsta
nce) |
| 227 { | 227 { |
| 228 AnimatableValue* threePixelsValue = unknownAnimatableValue(3.0); | 228 AnimatableValue* threePixelsValue = unknownAnimatableValue(3.0); |
| 229 AnimatableValue* fourPixelsValue = unknownAnimatableValue(4.0); | 229 AnimatableValue* fourPixelsValue = unknownAnimatableValue(4.0); |
| 230 AnimatableValue* fivePixelsValue = unknownAnimatableValue(5.0); | 230 AnimatableValue* fivePixelsValue = unknownAnimatableValue(5.0); |
| 231 | 231 |
| 232 KeyframeAnimationEffect::KeyframeVector keyframes(3); | 232 KeyframeAnimationEffect::KeyframeVector keyframes(3); |
| 233 keyframes[0] = Keyframe::create(); | 233 keyframes[0] = Keyframe::create(); |
| 234 keyframes[0]->setOffset(0.0); | 234 keyframes[0]->setOffset(0.0); |
| 235 keyframes[0]->setPropertyValue(CSSPropertyLeft, threePixelsValue); | 235 keyframes[0]->setPropertyValue(CSSPropertyLeft, threePixelsValue); |
| 236 keyframes[1] = Keyframe::create(); | 236 keyframes[1] = Keyframe::create(); |
| 237 keyframes[1]->setOffset(0.5); | 237 keyframes[1]->setOffset(0.5); |
| 238 keyframes[1]->setPropertyValue(CSSPropertyLeft, fourPixelsValue); | 238 keyframes[1]->setPropertyValue(CSSPropertyLeft, fourPixelsValue); |
| 239 keyframes[2] = Keyframe::create(); | 239 keyframes[2] = Keyframe::create(); |
| 240 keyframes[2]->setOffset(1.0); | 240 keyframes[2]->setOffset(1.0); |
| 241 keyframes[2]->setPropertyValue(CSSPropertyLeft, fivePixelsValue); | 241 keyframes[2]->setPropertyValue(CSSPropertyLeft, fivePixelsValue); |
| 242 | 242 |
| 243 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); | 243 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); |
| 244 EXPECT_EQ(threePixelsValue, effect->sample(0, 0.0)->begin()->value->composit
eOnto(unknownAnimatableValue(7.0))); | 244 EXPECT_EQ(threePixelsValue, effect->sample(0, 0.0)->begin()->value->composit
eOnto(unknownAnimatableValue(7.0))); |
| 245 EXPECT_EQ(threePixelsValue, effect->sample(0, 0.1)->begin()->value->composit
eOnto(unknownAnimatableValue(7.0))); | 245 EXPECT_EQ(threePixelsValue, effect->sample(0, 0.1)->begin()->value->composit
eOnto(unknownAnimatableValue(7.0))); |
| 246 EXPECT_EQ(fourPixelsValue, effect->sample(0, 0.4)->begin()->value->composite
Onto(unknownAnimatableValue(7.0))); | 246 EXPECT_EQ(fourPixelsValue, effect->sample(0, 0.4)->begin()->value->composite
Onto(unknownAnimatableValue(7.0))); |
| 247 EXPECT_EQ(fourPixelsValue, effect->sample(0, 0.5)->begin()->value->composite
Onto(unknownAnimatableValue(7.0))); | 247 EXPECT_EQ(fourPixelsValue, effect->sample(0, 0.5)->begin()->value->composite
Onto(unknownAnimatableValue(7.0))); |
| 248 EXPECT_EQ(fourPixelsValue, effect->sample(0, 0.6)->begin()->value->composite
Onto(unknownAnimatableValue(7.0))); | 248 EXPECT_EQ(fourPixelsValue, effect->sample(0, 0.6)->begin()->value->composite
Onto(unknownAnimatableValue(7.0))); |
| 249 EXPECT_EQ(fivePixelsValue, effect->sample(0, 0.9)->begin()->value->composite
Onto(unknownAnimatableValue(7.0))); | 249 EXPECT_EQ(fivePixelsValue, effect->sample(0, 0.9)->begin()->value->composite
Onto(unknownAnimatableValue(7.0))); |
| 250 EXPECT_EQ(fivePixelsValue, effect->sample(0, 1.0)->begin()->value->composite
Onto(unknownAnimatableValue(7.0))); | 250 EXPECT_EQ(fivePixelsValue, effect->sample(0, 1.0)->begin()->value->composite
Onto(unknownAnimatableValue(7.0))); |
| 251 } | 251 } |
| 252 | 252 |
| 253 TEST(CoreAnimationKeyframeAnimationEffectTest, MultipleKeyframesWithSameOffset) | 253 TEST(AnimationKeyframeAnimationEffectTest, MultipleKeyframesWithSameOffset) |
| 254 { | 254 { |
| 255 KeyframeAnimationEffect::KeyframeVector keyframes(7); | 255 KeyframeAnimationEffect::KeyframeVector keyframes(7); |
| 256 keyframes[0] = Keyframe::create(); | 256 keyframes[0] = Keyframe::create(); |
| 257 keyframes[0]->setOffset(0.1); | 257 keyframes[0]->setOffset(0.1); |
| 258 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(1.0))
; | 258 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(1.0))
; |
| 259 keyframes[1] = Keyframe::create(); | 259 keyframes[1] = Keyframe::create(); |
| 260 keyframes[1]->setOffset(0.1); | 260 keyframes[1]->setOffset(0.1); |
| 261 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(2.0))
; | 261 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(2.0))
; |
| 262 keyframes[2] = Keyframe::create(); | 262 keyframes[2] = Keyframe::create(); |
| 263 keyframes[2]->setOffset(0.5); | 263 keyframes[2]->setOffset(0.5); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 278 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); | 278 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); |
| 279 expectDoubleValue(2.0, effect->sample(0, 0.0)->begin()->value->compositeOnto
(unknownAnimatableValue(8.0))); | 279 expectDoubleValue(2.0, effect->sample(0, 0.0)->begin()->value->compositeOnto
(unknownAnimatableValue(8.0))); |
| 280 expectDoubleValue(2.0, effect->sample(0, 0.2)->begin()->value->compositeOnto
(unknownAnimatableValue(8.0))); | 280 expectDoubleValue(2.0, effect->sample(0, 0.2)->begin()->value->compositeOnto
(unknownAnimatableValue(8.0))); |
| 281 expectDoubleValue(3.0, effect->sample(0, 0.4)->begin()->value->compositeOnto
(unknownAnimatableValue(8.0))); | 281 expectDoubleValue(3.0, effect->sample(0, 0.4)->begin()->value->compositeOnto
(unknownAnimatableValue(8.0))); |
| 282 expectDoubleValue(5.0, effect->sample(0, 0.5)->begin()->value->compositeOnto
(unknownAnimatableValue(8.0))); | 282 expectDoubleValue(5.0, effect->sample(0, 0.5)->begin()->value->compositeOnto
(unknownAnimatableValue(8.0))); |
| 283 expectDoubleValue(5.0, effect->sample(0, 0.6)->begin()->value->compositeOnto
(unknownAnimatableValue(8.0))); | 283 expectDoubleValue(5.0, effect->sample(0, 0.6)->begin()->value->compositeOnto
(unknownAnimatableValue(8.0))); |
| 284 expectDoubleValue(6.0, effect->sample(0, 0.8)->begin()->value->compositeOnto
(unknownAnimatableValue(8.0))); | 284 expectDoubleValue(6.0, effect->sample(0, 0.8)->begin()->value->compositeOnto
(unknownAnimatableValue(8.0))); |
| 285 expectDoubleValue(6.0, effect->sample(0, 1.0)->begin()->value->compositeOnto
(unknownAnimatableValue(8.0))); | 285 expectDoubleValue(6.0, effect->sample(0, 1.0)->begin()->value->compositeOnto
(unknownAnimatableValue(8.0))); |
| 286 } | 286 } |
| 287 | 287 |
| 288 TEST(CoreAnimationKeyframeAnimationEffectTest, PerKeyframeComposite) | 288 TEST(AnimationKeyframeAnimationEffectTest, PerKeyframeComposite) |
| 289 { | 289 { |
| 290 KeyframeAnimationEffect::KeyframeVector keyframes(2); | 290 KeyframeAnimationEffect::KeyframeVector keyframes(2); |
| 291 keyframes[0] = Keyframe::create(); | 291 keyframes[0] = Keyframe::create(); |
| 292 keyframes[0]->setOffset(0.0); | 292 keyframes[0]->setOffset(0.0); |
| 293 keyframes[0]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(3.0)); | 293 keyframes[0]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(3.0)); |
| 294 keyframes[1] = Keyframe::create(); | 294 keyframes[1] = Keyframe::create(); |
| 295 keyframes[1]->setOffset(1.0); | 295 keyframes[1]->setOffset(1.0); |
| 296 keyframes[1]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(5.0)); | 296 keyframes[1]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(5.0)); |
| 297 keyframes[1]->setComposite(AnimationEffect::CompositeAdd); | 297 keyframes[1]->setComposite(AnimationEffect::CompositeAdd); |
| 298 | 298 |
| 299 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); | 299 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); |
| 300 expectDoubleValue(3.0 * 0.4 + (7.0 + 5.0) * 0.6, effect->sample(0, 0.6)->beg
in()->value->compositeOnto(pixelAnimatableValue(7.0))); | 300 expectDoubleValue(3.0 * 0.4 + (7.0 + 5.0) * 0.6, effect->sample(0, 0.6)->beg
in()->value->compositeOnto(pixelAnimatableValue(7.0))); |
| 301 } | 301 } |
| 302 | 302 |
| 303 TEST(CoreAnimationKeyframeAnimationEffectTest, MultipleProperties) | 303 TEST(AnimationKeyframeAnimationEffectTest, MultipleProperties) |
| 304 { | 304 { |
| 305 KeyframeAnimationEffect::KeyframeVector keyframes(2); | 305 KeyframeAnimationEffect::KeyframeVector keyframes(2); |
| 306 keyframes[0] = Keyframe::create(); | 306 keyframes[0] = Keyframe::create(); |
| 307 keyframes[0]->setOffset(0.0); | 307 keyframes[0]->setOffset(0.0); |
| 308 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0))
; | 308 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0))
; |
| 309 keyframes[0]->setPropertyValue(CSSPropertyRight, unknownAnimatableValue(4.0)
); | 309 keyframes[0]->setPropertyValue(CSSPropertyRight, unknownAnimatableValue(4.0)
); |
| 310 keyframes[1] = Keyframe::create(); | 310 keyframes[1] = Keyframe::create(); |
| 311 keyframes[1]->setOffset(1.0); | 311 keyframes[1]->setOffset(1.0); |
| 312 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0))
; | 312 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0))
; |
| 313 keyframes[1]->setPropertyValue(CSSPropertyRight, unknownAnimatableValue(6.0)
); | 313 keyframes[1]->setPropertyValue(CSSPropertyRight, unknownAnimatableValue(6.0)
); |
| 314 | 314 |
| 315 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); | 315 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); |
| 316 OwnPtr<AnimationEffect::CompositableValueMap> values = effect->sample(0, 0.6
); | 316 OwnPtr<AnimationEffect::CompositableValueMap> values = effect->sample(0, 0.6
); |
| 317 ASSERT_EQ(2, values->size()); | 317 ASSERT_EQ(2, values->size()); |
| 318 ASSERT_TRUE(values->contains(CSSPropertyLeft)); | 318 ASSERT_TRUE(values->contains(CSSPropertyLeft)); |
| 319 expectDoubleValue(5.0, values->get(CSSPropertyLeft)->compositeOnto(unknownAn
imatableValue(7.0))); | 319 expectDoubleValue(5.0, values->get(CSSPropertyLeft)->compositeOnto(unknownAn
imatableValue(7.0))); |
| 320 ASSERT_TRUE(values->contains(CSSPropertyRight)); | 320 ASSERT_TRUE(values->contains(CSSPropertyRight)); |
| 321 expectDoubleValue(6.0, values->get(CSSPropertyRight)->compositeOnto(unknownA
nimatableValue(7.0))); | 321 expectDoubleValue(6.0, values->get(CSSPropertyRight)->compositeOnto(unknownA
nimatableValue(7.0))); |
| 322 } | 322 } |
| 323 | 323 |
| 324 TEST(CoreAnimationKeyframeAnimationEffectTest, RecompositeCompositableValue) | 324 TEST(AnimationKeyframeAnimationEffectTest, RecompositeCompositableValue) |
| 325 { | 325 { |
| 326 KeyframeAnimationEffect::KeyframeVector keyframes = keyframesAtZeroAndOne(pi
xelAnimatableValue(3.0), pixelAnimatableValue(5.0)); | 326 KeyframeAnimationEffect::KeyframeVector keyframes = keyframesAtZeroAndOne(pi
xelAnimatableValue(3.0), pixelAnimatableValue(5.0)); |
| 327 keyframes[0]->setComposite(AnimationEffect::CompositeAdd); | 327 keyframes[0]->setComposite(AnimationEffect::CompositeAdd); |
| 328 keyframes[1]->setComposite(AnimationEffect::CompositeAdd); | 328 keyframes[1]->setComposite(AnimationEffect::CompositeAdd); |
| 329 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); | 329 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); |
| 330 OwnPtr<AnimationEffect::CompositableValueMap> values = effect->sample(0, 0.6
); | 330 OwnPtr<AnimationEffect::CompositableValueMap> values = effect->sample(0, 0.6
); |
| 331 expectDoubleValue((7.0 + 3.0) * 0.4 + (7.0 + 5.0) * 0.6, values->begin()->va
lue->compositeOnto(pixelAnimatableValue(7.0))); | 331 expectDoubleValue((7.0 + 3.0) * 0.4 + (7.0 + 5.0) * 0.6, values->begin()->va
lue->compositeOnto(pixelAnimatableValue(7.0))); |
| 332 expectDoubleValue((9.0 + 3.0) * 0.4 + (9.0 + 5.0) * 0.6, values->begin()->va
lue->compositeOnto(pixelAnimatableValue(9.0))); | 332 expectDoubleValue((9.0 + 3.0) * 0.4 + (9.0 + 5.0) * 0.6, values->begin()->va
lue->compositeOnto(pixelAnimatableValue(9.0))); |
| 333 } | 333 } |
| 334 | 334 |
| 335 TEST(CoreAnimationKeyframeAnimationEffectTest, MultipleIterations) | 335 TEST(AnimationKeyframeAnimationEffectTest, MultipleIterations) |
| 336 { | 336 { |
| 337 KeyframeAnimationEffect::KeyframeVector keyframes = keyframesAtZeroAndOne(pi
xelAnimatableValue(1.0), pixelAnimatableValue(3.0)); | 337 KeyframeAnimationEffect::KeyframeVector keyframes = keyframesAtZeroAndOne(pi
xelAnimatableValue(1.0), pixelAnimatableValue(3.0)); |
| 338 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); | 338 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); |
| 339 expectDoubleValue(2.0, effect->sample(0, 0.5)->begin()->value->compositeOnto
(unknownAnimatableValue(0.0))); | 339 expectDoubleValue(2.0, effect->sample(0, 0.5)->begin()->value->compositeOnto
(unknownAnimatableValue(0.0))); |
| 340 expectDoubleValue(2.0, effect->sample(1, 0.5)->begin()->value->compositeOnto
(unknownAnimatableValue(0.0))); | 340 expectDoubleValue(2.0, effect->sample(1, 0.5)->begin()->value->compositeOnto
(unknownAnimatableValue(0.0))); |
| 341 expectDoubleValue(2.0, effect->sample(2, 0.5)->begin()->value->compositeOnto
(unknownAnimatableValue(0.0))); | 341 expectDoubleValue(2.0, effect->sample(2, 0.5)->begin()->value->compositeOnto
(unknownAnimatableValue(0.0))); |
| 342 } | 342 } |
| 343 | 343 |
| 344 TEST(CoreAnimationKeyframeAnimationEffectTest, DependsOnUnderlyingValue) | 344 TEST(AnimationKeyframeAnimationEffectTest, DependsOnUnderlyingValue) |
| 345 { | 345 { |
| 346 KeyframeAnimationEffect::KeyframeVector keyframes(3); | 346 KeyframeAnimationEffect::KeyframeVector keyframes(3); |
| 347 keyframes[0] = Keyframe::create(); | 347 keyframes[0] = Keyframe::create(); |
| 348 keyframes[0]->setOffset(0.0); | 348 keyframes[0]->setOffset(0.0); |
| 349 keyframes[0]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(1.0)); | 349 keyframes[0]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(1.0)); |
| 350 keyframes[0]->setComposite(AnimationEffect::CompositeAdd); | 350 keyframes[0]->setComposite(AnimationEffect::CompositeAdd); |
| 351 keyframes[1] = Keyframe::create(); | 351 keyframes[1] = Keyframe::create(); |
| 352 keyframes[1]->setOffset(0.5); | 352 keyframes[1]->setOffset(0.5); |
| 353 keyframes[1]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(1.0)); | 353 keyframes[1]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(1.0)); |
| 354 keyframes[2] = Keyframe::create(); | 354 keyframes[2] = Keyframe::create(); |
| 355 keyframes[2]->setOffset(1.0); | 355 keyframes[2]->setOffset(1.0); |
| 356 keyframes[2]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(1.0)); | 356 keyframes[2]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(1.0)); |
| 357 | 357 |
| 358 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); | 358 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); |
| 359 EXPECT_TRUE(effect->sample(0, 0)->begin()->value->dependsOnUnderlyingValue()
); | 359 EXPECT_TRUE(effect->sample(0, 0)->begin()->value->dependsOnUnderlyingValue()
); |
| 360 EXPECT_TRUE(effect->sample(0, 0.1)->begin()->value->dependsOnUnderlyingValue
()); | 360 EXPECT_TRUE(effect->sample(0, 0.1)->begin()->value->dependsOnUnderlyingValue
()); |
| 361 EXPECT_TRUE(effect->sample(0, 0.25)->begin()->value->dependsOnUnderlyingValu
e()); | 361 EXPECT_TRUE(effect->sample(0, 0.25)->begin()->value->dependsOnUnderlyingValu
e()); |
| 362 EXPECT_TRUE(effect->sample(0, 0.4)->begin()->value->dependsOnUnderlyingValue
()); | 362 EXPECT_TRUE(effect->sample(0, 0.4)->begin()->value->dependsOnUnderlyingValue
()); |
| 363 EXPECT_FALSE(effect->sample(0, 0.5)->begin()->value->dependsOnUnderlyingValu
e()); | 363 EXPECT_FALSE(effect->sample(0, 0.5)->begin()->value->dependsOnUnderlyingValu
e()); |
| 364 EXPECT_FALSE(effect->sample(0, 0.6)->begin()->value->dependsOnUnderlyingValu
e()); | 364 EXPECT_FALSE(effect->sample(0, 0.6)->begin()->value->dependsOnUnderlyingValu
e()); |
| 365 EXPECT_FALSE(effect->sample(0, 0.75)->begin()->value->dependsOnUnderlyingVal
ue()); | 365 EXPECT_FALSE(effect->sample(0, 0.75)->begin()->value->dependsOnUnderlyingVal
ue()); |
| 366 EXPECT_FALSE(effect->sample(0, 0.8)->begin()->value->dependsOnUnderlyingValu
e()); | 366 EXPECT_FALSE(effect->sample(0, 0.8)->begin()->value->dependsOnUnderlyingValu
e()); |
| 367 EXPECT_FALSE(effect->sample(0, 1)->begin()->value->dependsOnUnderlyingValue(
)); | 367 EXPECT_FALSE(effect->sample(0, 1)->begin()->value->dependsOnUnderlyingValue(
)); |
| 368 } | 368 } |
| 369 | 369 |
| 370 TEST(CoreAnimationKeyframeAnimationEffectTest, ToKeyframeAnimationEffect) | 370 TEST(AnimationKeyframeAnimationEffectTest, ToKeyframeAnimationEffect) |
| 371 { | 371 { |
| 372 KeyframeAnimationEffect::KeyframeVector keyframes(0); | 372 KeyframeAnimationEffect::KeyframeVector keyframes(0); |
| 373 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); | 373 RefPtr<KeyframeAnimationEffect> effect = KeyframeAnimationEffect::create(key
frames); |
| 374 | 374 |
| 375 AnimationEffect* baseEffect = effect.get(); | 375 AnimationEffect* baseEffect = effect.get(); |
| 376 EXPECT_TRUE(toKeyframeAnimationEffect(baseEffect)); | 376 EXPECT_TRUE(toKeyframeAnimationEffect(baseEffect)); |
| 377 } | 377 } |
| 378 | 378 |
| 379 } // namespace | 379 } // namespace |
| OLD | NEW |