Index: third_party/WebKit/LayoutTests/imported/wpt/web-animations/interfaces/KeyframeEffectReadOnly/copy-contructor.html |
diff --git a/third_party/WebKit/LayoutTests/imported/wpt/web-animations/interfaces/KeyframeEffectReadOnly/copy-contructor.html b/third_party/WebKit/LayoutTests/imported/wpt/web-animations/interfaces/KeyframeEffectReadOnly/copy-contructor.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..287ffe1148bdd8d2fde3fadb4ee82317f6a6cd2f |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/imported/wpt/web-animations/interfaces/KeyframeEffectReadOnly/copy-contructor.html |
@@ -0,0 +1,94 @@ |
+<!DOCTYPE html> |
+<meta charset=utf-8> |
+<title>KeyframeEffectReadOnly copy constructor tests</title> |
+<link rel="help" |
+href="https://w3c.github.io/web-animations/#dom-keyframeeffectreadonly-keyframeeffectreadonly-source"> |
+<script src="/resources/testharness.js"></script> |
+<script src="/resources/testharnessreport.js"></script> |
+<script src="../../testcommon.js"></script> |
+<body> |
+<div id="log"></div> |
+<script> |
+"use strict"; |
+ |
+test(function(t) { |
+ var effect = new KeyframeEffectReadOnly(createDiv(t), null); |
+ var copiedEffect = new KeyframeEffectReadOnly(effect); |
+ assert_equals(copiedEffect.target, effect.target, 'same target'); |
+}, 'Test copied keyframeEffectReadOnly has the same target'); |
+ |
+test(function(t) { |
+ var effect = |
+ new KeyframeEffectReadOnly(null, |
+ [ { marginLeft: '0px' }, |
+ { marginLeft: '-20px', easing: 'ease-in', |
+ offset: 0.1 }, |
+ { marginLeft: '100px', easing: 'ease-out' }, |
+ { marginLeft: '50px' } ], |
+ { spacing: 'paced(margin-left)' }); |
+ |
+ var copiedEffect = new KeyframeEffectReadOnly(effect); |
+ var KeyframesA = effect.getKeyframes(); |
+ var KeyframesB = copiedEffect.getKeyframes(); |
+ assert_equals(KeyframesA.length, KeyframesB.length, 'same keyframes length'); |
+ |
+ for (var i = 0; i < KeyframesA.length; ++i) { |
+ assert_equals(KeyframesA[i].offset, KeyframesB[i].offset, |
+ 'Keyframe ' + i + ' has the same offset'); |
+ assert_equals(KeyframesA[i].computedOffset, KeyframesB[i].computedOffset, |
+ 'keyframe ' + i + ' has the same computedOffset'); |
+ assert_equals(KeyframesA[i].easing, KeyframesB[i].easing, |
+ 'keyframe ' + i + ' has the same easing'); |
+ assert_equals(KeyframesA[i].composite, KeyframesB[i].composite, |
+ 'keyframe ' + i + ' has the same composite'); |
+ |
+ assert_true(!!KeyframesA[i].marginLeft, |
+ 'original keyframe ' + i + ' has the valid property value'); |
+ assert_true(!!KeyframesB[i].marginLeft, |
+ 'new keyframe ' + i + ' has the valid property value'); |
+ assert_equals(KeyframesA[i].marginLeft, KeyframesB[i].marginLeft, |
+ 'keyframe ' + i + ' has the same property value pair'); |
+ } |
+}, 'Test copied keyframeEffectReadOnly has the same keyframes'); |
+ |
+test(function(t) { |
+ var effect = new KeyframeEffectReadOnly(null, null, |
+ { spacing: 'paced(margin-left)', |
+ iterationComposite: 'accumulate' }); |
+ |
+ var copiedEffect = new KeyframeEffectReadOnly(effect); |
+ assert_equals(copiedEffect.spacing, effect.spacing, 'same spacing'); |
+ assert_equals(copiedEffect.iterationComposite, effect.iterationComposite, |
+ 'same iterationCompositeOperation'); |
+ assert_equals(copiedEffect.composite, effect.composite, |
+ 'same compositeOperation'); |
+}, 'Test copied keyframeEffectReadOnly has the same keyframeEffectOptions'); |
+ |
+test(function(t) { |
+ var effect = new KeyframeEffectReadOnly(null, null, |
+ { duration: 100 * MS_PER_SEC, |
+ delay: -1 * MS_PER_SEC, |
+ endDelay: 2 * MS_PER_SEC, |
+ fill: 'forwards', |
+ iterationStart: 2, |
+ iterations: 20, |
+ easing: 'ease-out', |
+ direction: 'alternate' } ); |
+ |
+ var copiedEffect = new KeyframeEffectReadOnly(effect); |
+ var timingA = effect.timing; |
+ var timingB = copiedEffect.timing; |
+ assert_not_equals(timingA, timingB, 'different timing objects'); |
+ assert_equals(timingA.delay, timingB.delay, 'same delay'); |
+ assert_equals(timingA.endDelay, timingB.endDelay, 'same endDelay'); |
+ assert_equals(timingA.fill, timingB.fill, 'same fill'); |
+ assert_equals(timingA.iterationStart, timingB.iterationStart, |
+ 'same iterationStart'); |
+ assert_equals(timingA.iterations, timingB.iterations, 'same iterations'); |
+ assert_equals(timingA.duration, timingB.duration, 'same duration'); |
+ assert_equals(timingA.direction, timingB.direction, 'same direction'); |
+ assert_equals(timingA.easing, timingB.easing, 'same easing'); |
+}, 'Test copied keyframeEffectReadOnly has the same timing content'); |
+ |
+</script> |
+</body> |