OLD | NEW |
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> | 1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
4 <script src="../../resources/js-test.js"></script> | 4 <script src="../../resources/js-test.js"></script> |
5 </head> | 5 </head> |
6 | 6 |
7 <body> | 7 <body> |
8 <h1>SVG 1.1 dynamic animation tests</h1> | |
9 | |
10 <svg id='outer-svg' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www
.w3.org/1999/xlink' xml:space='preserve'> | 8 <svg id='outer-svg' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www
.w3.org/1999/xlink' xml:space='preserve'> |
11 <!-- sequential animations --> | 9 <!-- sequential animations --> |
12 <rect id='plain' x='0' y='0' width='32' height='32' fill='green'> | 10 <rect id='plain' x='0' y='0' width='32' height='32' fill='green'> |
13 <animate id='plain-anim' attributeName='x' from='0' to='128' begin='0s' du
r='4s' fill='freeze'/> | 11 <animate id='plain-anim' attributeName='x' from='0' to='128' begin='0s' du
r='4s' fill='freeze'/> |
14 </rect> | 12 </rect> |
15 | 13 |
16 <!-- sequential animations --> | 14 <!-- sequential animations --> |
17 <rect id='sequential' x='0' y='32' width='32' height='32' fill='green'> | 15 <rect id='sequential' x='0' y='32' width='32' height='32' fill='green'> |
18 <animate attributeName='x' from='0' to='32' begin='0s' dur='1s' fill='fr
eeze'/> | 16 <animate attributeName='x' from='0' to='32' begin='0s' dur='1s' fill='fr
eeze'/> |
19 <animate attributeName='x' from='64' to='128' begin='3s' dur='1s' fill='fr
eeze'/> | 17 <animate attributeName='x' from='64' to='128' begin='3s' dur='1s' fill='fr
eeze'/> |
(...skipping 10 matching lines...) Expand all Loading... |
30 </rect> | 28 </rect> |
31 | 29 |
32 <!-- nested --> | 30 <!-- nested --> |
33 <svg id='nested-svg' x='0' y='128'> | 31 <svg id='nested-svg' x='0' y='128'> |
34 <rect id='nested' x='0' y='0' width='32' height='32' fill='green'> | 32 <rect id='nested' x='0' y='0' width='32' height='32' fill='green'> |
35 <animate attributeName='x' from='0' to='128' begin='0s' dur='4s' fill='f
reeze'/> | 33 <animate attributeName='x' from='0' to='128' begin='0s' dur='4s' fill='f
reeze'/> |
36 </rect> | 34 </rect> |
37 </svg> | 35 </svg> |
38 | 36 |
39 <script> | 37 <script> |
| 38 description("SVG 1.1 dynamic animation tests"); |
| 39 self.jsTestIsAsync = true; |
| 40 |
40 var svg = document.getElementById('outer-svg'), | 41 var svg = document.getElementById('outer-svg'), |
41 nestedsvg = document.getElementById('nested-svg'); | 42 nestedsvg = document.getElementById('nested-svg'); |
42 var tests, curIdx = 0; | 43 var tests, curIdx = 0; |
43 | 44 |
44 var plain = document.getElementById('plain'); | 45 var plain = document.getElementById('plain'); |
45 var sequential = document.getElementById('sequential'); | 46 var sequential = document.getElementById('sequential'); |
46 var accumulating = document.getElementById('accumulating'); | 47 var accumulating = document.getElementById('accumulating'); |
47 var repeating = document.getElementById('repeating'); | 48 var repeating = document.getElementById('repeating'); |
48 var nested = document.getElementById('nested'); | 49 var nested = document.getElementById('nested'); |
| 50 var test; |
49 | 51 |
50 function runTest() { | 52 function runTest() { |
51 var test = tests[curIdx++]; | 53 test = tests[curIdx++]; |
52 | 54 |
53 svg.setCurrentTime(test.time[0]); | 55 if (test.throws && test.throws[0]) |
54 nestedsvg.setCurrentTime(test.time[1]); | 56 shouldThrow("svg.setCurrentTime(test.time[0])"); |
| 57 else |
| 58 svg.setCurrentTime(test.time[0]); |
| 59 |
| 60 if (test.throws && test.throws[1]) |
| 61 shouldThrow("nestedsvg.setCurrentTime(test.time[1])"); |
| 62 else |
| 63 nestedsvg.setCurrentTime(test.time[1]); |
55 | 64 |
56 setTimeout(function() { | 65 setTimeout(function() { |
57 for (var attr in test.values) { | 66 for (var attr in test.values) { |
58 shouldBe(attr + '.animVal.value', String(test.values[attr])); | 67 shouldBe(attr + '.animVal.value', String(test.values[attr])); |
59 } | 68 } |
60 | 69 |
61 if (curIdx == tests.length) { | 70 if (curIdx == tests.length) |
62 if (window.testRunner) | 71 finishJSTest(); |
63 testRunner.notifyDone(); | |
64 } | |
65 else | 72 else |
66 runTest(); | 73 runTest(); |
67 }, 0); | 74 }, 0); |
68 } | 75 } |
69 | 76 |
70 function executeTests() { | 77 function executeTests() { |
71 nestedsvg.pauseAnimations(); | 78 nestedsvg.pauseAnimations(); |
72 svg.pauseAnimations(); | 79 svg.pauseAnimations(); |
73 | 80 |
74 tests = [ | 81 tests = [ |
75 // Test invalid values. | 82 // Test invalid values. |
76 { time: ['tintin', NaN], values: { 'plain.x': 0, 'sequential.x': 0,
'accumulating.x': 0, 'repeating.x': 0, 'nested.x': 0 } }, | 83 { time: ['tintin', NaN], throws: [true, true], values: { 'plain.x': 0,
'sequential.x': 0, 'accumulating.x': 0, 'repeating.x': 0, 'nested.x': 0
} }, |
77 | 84 |
78 // Test out-of-range values. | 85 // Test out-of-range values. |
79 { time: [-1, -1], values: { 'plain.x': 0, 'sequential.x': 0, 'accumu
lating.x': 0, 'repeating.x': 0, 'nested.x': 0 } }, | 86 { time: [-1, -1], values: { 'plain.x': 0, 'sequential.x': 0, 'accumu
lating.x': 0, 'repeating.x': 0, 'nested.x': 0 } }, |
80 { time: [ 5, 5], values: { 'plain.x': 128, 'sequential.x': 128, 'accumu
lating.x': 128, 'repeating.x': 128, 'nested.x': 128 } }, | 87 { time: [ 5, 5], values: { 'plain.x': 128, 'sequential.x': 128, 'accumu
lating.x': 128, 'repeating.x': 128, 'nested.x': 128 } }, |
81 | 88 |
82 // Test changing time only for all elements. | 89 // Test changing time only for all elements. |
83 { time: [0, 0], values: { 'plain.x': 0, 'sequential.x': 0, 'accumula
ting.x': 0, 'repeating.x': 0, 'nested.x': 0 } }, | 90 { time: [0, 0], values: { 'plain.x': 0, 'sequential.x': 0, 'accumula
ting.x': 0, 'repeating.x': 0, 'nested.x': 0 } }, |
84 { time: [1, 1], values: { 'plain.x': 32, 'sequential.x': 32, 'accumula
ting.x': 128, 'repeating.x': 128, 'nested.x': 32 } }, | 91 { time: [1, 1], values: { 'plain.x': 32, 'sequential.x': 32, 'accumula
ting.x': 128, 'repeating.x': 128, 'nested.x': 32 } }, |
85 { time: [2, 2], values: { 'plain.x': 64, 'sequential.x': 32, 'accumula
ting.x': 256, 'repeating.x': 0, 'nested.x': 64 } }, | 92 { time: [2, 2], values: { 'plain.x': 64, 'sequential.x': 32, 'accumula
ting.x': 256, 'repeating.x': 0, 'nested.x': 64 } }, |
86 { time: [3, 3], values: { 'plain.x': 96, 'sequential.x': 64, 'accumula
ting.x': 192, 'repeating.x': 128, 'nested.x': 96 } }, | 93 { time: [3, 3], values: { 'plain.x': 96, 'sequential.x': 64, 'accumula
ting.x': 192, 'repeating.x': 128, 'nested.x': 96 } }, |
(...skipping 23 matching lines...) Expand all Loading... |
110 testRunner.waitUntilDone() | 117 testRunner.waitUntilDone() |
111 } | 118 } |
112 executeTests(); | 119 executeTests(); |
113 </script> | 120 </script> |
114 </svg> | 121 </svg> |
115 | 122 |
116 <p id="description"></p> | 123 <p id="description"></p> |
117 <div id="console"></div> | 124 <div id="console"></div> |
118 </body> | 125 </body> |
119 </html> | 126 </html> |
120 | |
OLD | NEW |