OLD | NEW |
(Empty) | |
| 1 <!doctype html> |
| 2 <script src="../resources/testharness.js"></script> |
| 3 <script src="../resources/testharnessreport.js"></script> |
| 4 <script src="./resources/resizeTestHelper.js"></script> |
| 5 <p>ResizeObserver svg tests</p> |
| 6 <svg height="430" width="500"> |
| 7 <circle cx="10" cy="10" r="5" style="fill:orange;stroke:black;stroke-width:1"
/> |
| 8 <ellipse cx="10" cy="30" rx="5" ry="5" style="fill:orange;stroke:black;stroke-
width:1"/> |
| 9 <foreignObject cy="50" width="100" height="20"> |
| 10 <body> |
| 11 <p>Here is a paragraph that requires word wrap</p> |
| 12 </body> |
| 13 </foreignObject> |
| 14 <image xlink:href="" x="0" y="100" height="30" width="100" /> |
| 15 <line x1="0" y1="50" x2="20" y2="70" stroke="black" stroke-width="2"/> |
| 16 <path d="M 0 100 L 100 100 L 50 150 z" |
| 17 style="fill:orange;stroke:black;stroke-width:1" /> |
| 18 <polygon points="0,200 100,200 50,250" style="fill:orange;stroke:black;stroke-
width:1" /> |
| 19 <polyline points="0,300 100,300 50,350" style="fill:orange;stroke:black;stroke
-width:1"/> |
| 20 <rect x="0" y="380" width="10" height="10" style="fill:orange; stroke:black; s
troke-width:1" /> |
| 21 <text x="0" y="400" font-size="20">svg text tag</text> |
| 22 </svg> |
| 23 <script> |
| 24 'use strict'; |
| 25 |
| 26 setup({allow_uncaught_exception: true}); |
| 27 |
| 28 function test0() { |
| 29 let target = document.querySelector('circle'); |
| 30 let helper = new ResizeTestHelper( |
| 31 "test0: observe svg:circle", |
| 32 [ |
| 33 { |
| 34 setup: observer => { |
| 35 observer.observe(target); |
| 36 }, |
| 37 notify: (entries, observer) => { |
| 38 return true; // Delay next step |
| 39 } |
| 40 }, |
| 41 { |
| 42 setup: observer => { |
| 43 target.setAttribute('r', 10); |
| 44 }, |
| 45 notify: (entries, observer) => { |
| 46 assert_equals(entries.length, 1); |
| 47 } |
| 48 } |
| 49 ]); |
| 50 return helper.start(); |
| 51 } |
| 52 |
| 53 function test1() { |
| 54 let target = document.querySelector('ellipse'); |
| 55 let helper = new ResizeTestHelper( |
| 56 "test1: observe svg:ellipse", |
| 57 [ |
| 58 { |
| 59 setup: observer => { |
| 60 observer.observe(target); |
| 61 }, |
| 62 notify: (entries, observer) => { |
| 63 return true; // Delay next step |
| 64 } |
| 65 }, |
| 66 { |
| 67 setup: observer => { |
| 68 target.setAttribute('rx', 10); |
| 69 }, |
| 70 notify: (entries, observer) => { |
| 71 assert_equals(entries.length, 1); |
| 72 assert_equals(entries[0].contentRect.width, 20); |
| 73 assert_equals(entries[0].contentRect.height, 10); |
| 74 } |
| 75 } |
| 76 ]); |
| 77 return helper.start(); |
| 78 } |
| 79 |
| 80 function test2() { |
| 81 let target = document.querySelector('foreignObject'); |
| 82 let helper = new ResizeTestHelper( |
| 83 "test2: observe svg:foreignObject", |
| 84 [ |
| 85 { |
| 86 setup: observer => { |
| 87 observer.observe(target); |
| 88 }, |
| 89 notify: (entries, observer) => { |
| 90 return true; // Delay next step |
| 91 } |
| 92 }, |
| 93 { |
| 94 setup: observer => { |
| 95 target.setAttribute('width', 200); |
| 96 }, |
| 97 notify: (entries, observer) => { |
| 98 assert_equals(entries.length, 1); |
| 99 assert_equals(entries[0].contentRect.width, 200); |
| 100 assert_equals(entries[0].contentRect.height, 20); |
| 101 } |
| 102 } |
| 103 ]); |
| 104 return helper.start(); |
| 105 } |
| 106 |
| 107 function test3() { |
| 108 let target = document.querySelector('image'); |
| 109 let helper = new ResizeTestHelper( |
| 110 "test3: observe svg:image", |
| 111 [ |
| 112 { |
| 113 setup: observer => { |
| 114 observer.observe(target); |
| 115 }, |
| 116 notify: (entries, observer) => { |
| 117 return true; // Delay next step |
| 118 } |
| 119 }, |
| 120 { |
| 121 setup: observer => { |
| 122 target.setAttribute('height', 40); |
| 123 }, |
| 124 notify: (entries, observer) => { |
| 125 assert_equals(entries.length, 1); |
| 126 assert_equals(entries[0].contentRect.width, 100); |
| 127 assert_equals(entries[0].contentRect.height, 40); |
| 128 } |
| 129 } |
| 130 ]); |
| 131 return helper.start(); |
| 132 } |
| 133 |
| 134 function test4() { |
| 135 let target = document.querySelector('line'); |
| 136 let helper = new ResizeTestHelper( |
| 137 "test4: observe svg:line", |
| 138 [ |
| 139 { |
| 140 setup: observer => { |
| 141 observer.observe(target); |
| 142 }, |
| 143 notify: (entries, observer) => { |
| 144 return true; // Delay next step |
| 145 } |
| 146 }, |
| 147 { |
| 148 setup: observer => { |
| 149 target.setAttribute('y2', 80); |
| 150 }, |
| 151 notify: (entries, observer) => { |
| 152 assert_equals(entries.length, 1); |
| 153 assert_equals(entries[0].contentRect.width, 20); |
| 154 assert_equals(entries[0].contentRect.height, 30); |
| 155 } |
| 156 } |
| 157 ]); |
| 158 return helper.start(); |
| 159 } |
| 160 |
| 161 function test5() { |
| 162 let target = document.querySelector('path'); |
| 163 let helper = new ResizeTestHelper( |
| 164 "test5: observe svg:path", |
| 165 [ |
| 166 { |
| 167 setup: observer => { |
| 168 observer.observe(target); |
| 169 }, |
| 170 notify: (entries, observer) => { |
| 171 return true; // Delay next step |
| 172 } |
| 173 }, |
| 174 { |
| 175 setup: observer => { |
| 176 target.setAttribute('d', "M 0 100 L 100 100 L 50 160 z"); |
| 177 }, |
| 178 notify: (entries, observer) => { |
| 179 assert_equals(entries.length, 1); |
| 180 assert_equals(entries[0].contentRect.width, 100); |
| 181 assert_equals(entries[0].contentRect.height, 60); |
| 182 } |
| 183 } |
| 184 ]); |
| 185 return helper.start(); |
| 186 } |
| 187 |
| 188 function test6() { |
| 189 let target = document.querySelector('polygon'); |
| 190 let helper = new ResizeTestHelper( |
| 191 "test6: observe svg:path", |
| 192 [ |
| 193 { |
| 194 setup: observer => { |
| 195 observer.observe(target); |
| 196 }, |
| 197 notify: (entries, observer) => { |
| 198 return true; // Delay next step |
| 199 } |
| 200 }, |
| 201 { |
| 202 setup: observer => { |
| 203 target.setAttribute('points', "0,200 100,200 50,260"); |
| 204 }, |
| 205 notify: (entries, observer) => { |
| 206 assert_equals(entries.length, 1); |
| 207 assert_equals(entries[0].contentRect.width, 100); |
| 208 assert_equals(entries[0].contentRect.height, 60); |
| 209 } |
| 210 } |
| 211 ]); |
| 212 return helper.start(); |
| 213 } |
| 214 |
| 215 function test7() { |
| 216 let target = document.querySelector('polyline'); |
| 217 let helper = new ResizeTestHelper( |
| 218 "test7: observe svg:polyline", |
| 219 [ |
| 220 { |
| 221 setup: observer => { |
| 222 observer.observe(target); |
| 223 }, |
| 224 notify: (entries, observer) => { |
| 225 return true; // Delay next step |
| 226 } |
| 227 }, |
| 228 { |
| 229 setup: observer => { |
| 230 target.setAttribute('points', "0,300 100,300 50,360"); |
| 231 }, |
| 232 notify: (entries, observer) => { |
| 233 assert_equals(entries.length, 1); |
| 234 assert_equals(entries[0].contentRect.width, 100); |
| 235 assert_equals(entries[0].contentRect.height, 60); |
| 236 } |
| 237 } |
| 238 ]); |
| 239 return helper.start(); |
| 240 } |
| 241 |
| 242 function test8() { |
| 243 let target = document.querySelector('rect'); |
| 244 let helper = new ResizeTestHelper( |
| 245 "test8: observe svg:rect", |
| 246 [ |
| 247 { |
| 248 setup: observer => { |
| 249 observer.observe(target); |
| 250 }, |
| 251 notify: (entries, observer) => { |
| 252 return true; // Delay next step |
| 253 } |
| 254 }, |
| 255 { |
| 256 setup: observer => { |
| 257 target.setAttribute('width', "20"); |
| 258 }, |
| 259 notify: (entries, observer) => { |
| 260 assert_equals(entries.length, 1); |
| 261 assert_equals(entries[0].contentRect.width, 20); |
| 262 assert_equals(entries[0].contentRect.height, 10); |
| 263 } |
| 264 } |
| 265 ]); |
| 266 return helper.start(); |
| 267 } |
| 268 |
| 269 function test9() { |
| 270 let target = document.querySelector('text'); |
| 271 let helper = new ResizeTestHelper( |
| 272 "test9: observe svg:text", |
| 273 [ |
| 274 { |
| 275 setup: observer => { |
| 276 observer.observe(target); |
| 277 }, |
| 278 notify: (entries, observer) => { |
| 279 return true; // Delay next step |
| 280 } |
| 281 }, |
| 282 { |
| 283 setup: observer => { |
| 284 target.setAttribute('font-size', "25"); |
| 285 }, |
| 286 notify: (entries, observer) => { |
| 287 assert_equals(entries.length, 1); |
| 288 } |
| 289 } |
| 290 ]); |
| 291 return helper.start(); |
| 292 } |
| 293 let guard = async_test('guard'); |
| 294 test0() |
| 295 .then(() => { return test1(); }) |
| 296 .then(() => { return test2(); }) |
| 297 .then(() => { return test3(); }) |
| 298 .then(() => { return test4(); }) |
| 299 .then(() => { return test5(); }) |
| 300 .then(() => { return test6(); }) |
| 301 .then(() => { return test7(); }) |
| 302 .then(() => { return test8(); }) |
| 303 .then(() => { return test9(); }) |
| 304 .then(() => { guard.done(); }); |
| 305 |
| 306 </script> |
OLD | NEW |