Skip to content
This repository was archived by the owner on Mar 19, 2021. It is now read-only.

Commit 76e5b51

Browse files
xidachenchromium-wpt-export-bot
authored andcommitted
Port clip-interpolation.html to wpt
Bug: 900581 Change-Id: Id7b0a8dbc03457343ce7fa8d25f30ee0da39f901 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1841071 Reviewed-by: Yi Gu <[email protected]> Commit-Queue: Xida Chen <[email protected]> Cr-Commit-Position: refs/heads/master@{#702872}
1 parent da1d683 commit 76e5b51

File tree

1 file changed

+117
-0
lines changed

1 file changed

+117
-0
lines changed
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
<!DOCTYPE html>
2+
<meta charset="UTF-8">
3+
<title>clip interpolation</title>
4+
<link rel="help" href="https://drafts.fxtf.org/css-masking-1/#clip-property">
5+
<meta name="assert" content="clip supports animation">
6+
7+
<script src="/resources/testharness.js"></script>
8+
<script src="/resources/testharnessreport.js"></script>
9+
<script src="/css/support/interpolation-testcommon.js"></script>
10+
11+
<style>
12+
.container {
13+
width: 80px;
14+
height: 80px;
15+
background: black;
16+
display: inline-block;
17+
padding: 5px;
18+
}
19+
20+
.container:nth-child(2n) {
21+
background: green;
22+
}
23+
24+
.parent {
25+
clip: rect(100px, 0px, 100px, 0px);
26+
}
27+
28+
.target {
29+
width: 80px;
30+
height: 80px;
31+
display: inline-block;
32+
position: absolute;
33+
background: white;
34+
clip: rect(0px, 100px, 0px, 100px);
35+
}
36+
</style>
37+
38+
<body>
39+
<template id="target-template">
40+
<div class="container"><div class="target"></div></div>
41+
</template>
42+
<script>
43+
test_interpolation({
44+
property: 'clip',
45+
from: neutralKeyframe,
46+
to: 'rect(20px, 20px, 20px, 20px)',
47+
}, [
48+
{at: -1, expect: 'rect(-20px 180px -20px 180px)'},
49+
{at: 0, expect: 'rect(0px 100px 0px 100px)'},
50+
{at: 0.25, expect: 'rect(5px 80px 5px 80px)'},
51+
{at: 0.75, expect: 'rect(15px 40px 15px 40px)'},
52+
{at: 1, expect: 'rect(20px 20px 20px 20px)'},
53+
{at: 2, expect: 'rect(40px -60px 40px -60px)'},
54+
]);
55+
56+
test_no_interpolation({
57+
property: 'clip',
58+
from: 'initial',
59+
to: 'rect(20px, 20px, 20px, 20px)',
60+
});
61+
62+
test_interpolation({
63+
property: 'clip',
64+
from: 'inherit',
65+
to: 'rect(20px, 20px, 20px, 20px)',
66+
}, [
67+
{at: -1, expect: 'rect(180px -20px 180px -20px)'},
68+
{at: 0, expect: 'rect(100px 0px 100px 0px)'},
69+
{at: 0.25, expect: 'rect(80px 5px 80px 5px)'},
70+
{at: 0.75, expect: 'rect(40px 15px 40px 15px)'},
71+
{at: 1, expect: 'rect(20px 20px 20px 20px)'},
72+
{at: 2, expect: 'rect(-60px 40px -60px 40px)'},
73+
]);
74+
75+
test_no_interpolation({
76+
property: 'clip',
77+
from: 'unset',
78+
to: 'rect(20px, 20px, 20px, 20px)',
79+
});
80+
81+
test_interpolation({
82+
property: 'clip',
83+
from: 'rect(0px, 75px, 80px, 10px)',
84+
to: 'rect(0px, 100px, 90px, 5px)'
85+
}, [
86+
{at: -1, expect: 'rect(0px, 50px, 70px, 15px)'},
87+
{at: 0, expect: 'rect(0px, 75px, 80px, 10px)'},
88+
{at: 0.25, expect: 'rect(0px, 81.25px, 82.5px, 8.75px)'},
89+
{at: 0.75, expect: 'rect(0px, 93.75px, 87.5px, 6.25px)'},
90+
{at: 1, expect: 'rect(0px, 100px, 90px, 5px)'},
91+
{at: 2, expect: 'rect(0px, 125px, 100px, 0px)'},
92+
]);
93+
94+
test_no_interpolation({
95+
property: 'clip',
96+
from: 'rect(auto, auto, auto, 10px)',
97+
to: 'rect(20px, 50px, 50px, auto)'
98+
});
99+
100+
test_no_interpolation({
101+
property: 'clip',
102+
from: 'rect(auto, 0px, auto, 10px)',
103+
to: 'rect(auto, 50px, 50px, auto)'
104+
});
105+
106+
test_no_interpolation({
107+
property: 'clip',
108+
from: 'auto',
109+
to: 'rect(0px, 50px, 50px, 0px)'
110+
});
111+
112+
test_no_interpolation({
113+
property: 'clip',
114+
from: 'rect(0px, 50px, 50px, 0px)',
115+
to: 'auto'
116+
});
117+
</script>

0 commit comments

Comments
 (0)