summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/LayoutTests/animations/missing-from-to-transforms.html
blob: 681d8b2f7e56e5a73be24ac9f33c3a42671fb3f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Test animation with missing from and to keyframes</title>
  <style type="text/css" media="screen">
    .box {
      position: relative;
      left: 10px;
      top: 10px;
      height: 20px;
      width: 20px;
      transform: translateX(10px);
      background-color: blue;
      -webkit-animation-duration: 2s;
      -webkit-animation-timing-function: linear;
    }
  
    #box1 {
      -webkit-animation-name: anim1;
    }
    @-webkit-keyframes anim1 {
      from { transform: translateX(10px); }
      40% { transform: translateX(30px); }
      60% { transform: translateX(10px); }
      to { transform: translateX(20px); }
    }

    #box2 {
      -webkit-animation-name: anim2;
      background-color: red;
    }
    @-webkit-keyframes anim2 {
      40% { transform: translateX(30px); }
      60% { transform: translateX(10px); }
      to { transform: translateX(20px); }
    }

    #box3 {
      transform: translateX(20px);
      -webkit-animation-name: anim3;
      background-color: green;
    }
    @-webkit-keyframes anim3 {
      from { transform: translateX(10px); }
      40% { transform: translateX(30px); }
      60% { transform: translateX(10px); }
    }

    #box4 {
      -webkit-animation-name: anim4;
      background-color: yellow;
    }
    @-webkit-keyframes anim4 {
      40% { transform: translateX(30px); }
      60% { transform: translateX(20px); }
    }

    #result {
      margin-top: 20px;
    }
  </style>
  <script src="resources/animation-test-helpers.js" type="text/javascript" charset="utf-8"></script>
  <script type="text/javascript" charset="utf-8">

    const expectedValues = [
      // [time, element-id, property, expected-value, tolerance]
      [0.4, "box1", "webkitTransform.4", 20, 2],
      [1.0, "box1", "webkitTransform.4", 20, 2],
      [1.6, "box1", "webkitTransform.4", 15, 2],
      [0.4, "box2", "webkitTransform.4", 20, 2],
      [1.0, "box2", "webkitTransform.4", 20, 2],
      [1.6, "box2", "webkitTransform.4", 15, 2],
      [0.4, "box3", "webkitTransform.4", 20, 2],
      [1.0, "box3", "webkitTransform.4", 20, 2],
      [1.6, "box3", "webkitTransform.4", 15, 2],
      [0.4, "box4", "webkitTransform.4", 20, 2],
      [1.0, "box4", "webkitTransform.4", 25, 2],
      [1.6, "box4", "webkitTransform.4", 15, 2]
    ];

    runAnimationTest(expectedValues);
    
  </script>
</head>
<body>
This test performs animations of the transform property on four boxes over 2 seconds.
Box 1 has all keyframes. Box 2 has a missing "from" keyframe.
Box 3 has a missing "to" keyframe.
Box 4 has both "from" and "to" keyframes missing, but other keyframes which
should trigger the generation of "from" and "to". Box 5 has no keyframes, and
should not animate.
The test takes 3 snapshots each and expects each result to be within a specified range.
<div class="box" id="box1">
</div>
<div class="box" id="box2">
</div>
<div class="box" id="box3">
</div>
<div class="box" id="box4">
</div>
<div id="result">
</div>
</body>
</html>