1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/layout/reftests/svg/dynamic-use-01.svg Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,91 @@ 1.4 +<!-- 1.5 + Any copyright is dedicated to the Public Domain. 1.6 + http://creativecommons.org/publicdomain/zero/1.0/ 1.7 +--> 1.8 +<svg xmlns="http://www.w3.org/2000/svg" version="1.1" 1.9 + xmlns:xlink="http://www.w3.org/1999/xlink"> 1.10 + <title>Testing that dynamic changes to the element for a given ID are reflected in 'use'</title> 1.11 + 1.12 + <use id="u1" x="10%" xlink:href="#r1"/> 1.13 + <script> 1.14 + // force frame construction; test that parsing "r1" after frame construction 1.15 + // is still bound to "u1" eventually 1.16 + var rect = document.getElementById("u1").getBoundingClientRect(); 1.17 + </script> 1.18 + <rect width="11%" height="100%" fill="lime" id="r1"/> 1.19 + 1.20 + <rect width="11%" height="100%" fill="lime" id="x"/> 1.21 + <use id="u2" x="20%" xlink:href="#r2"/> 1.22 + <script> 1.23 + var rect = document.getElementById("u2").getBoundingClientRect(); 1.24 + // check that changing an id to "r2" lets u2 find it 1.25 + var r2 = document.getElementById("x"); 1.26 + r2.setAttribute("id", "r2"); 1.27 + </script> 1.28 + 1.29 + <rect width="10%" height="100%" fill="red" id="r3"/> 1.30 + <rect width="11%" height="100%" fill="lime" id="r3"/> 1.31 + <use id="u3" x="30%" xlink:href="#r3"/> 1.32 + <script> 1.33 + var rect = document.getElementById("u3").getBoundingClientRect(); 1.34 + // check that removing the bad r3 lets u3 find the good one 1.35 + var r3 = document.getElementById("r3"); 1.36 + r3.parentNode.removeChild(r3); 1.37 + </script> 1.38 + 1.39 + <rect width="10%" height="100%" fill="red" id="r4"/> 1.40 + <rect width="11%" height="100%" fill="lime" id="r4"/> 1.41 + <use id="u4" x="40%" xlink:href="#r4"/> 1.42 + <script> 1.43 + var rect = document.getElementById("u4").getBoundingClientRect(); 1.44 + // check that renaming the bad r4 lets u4 find the good one 1.45 + var r4 = document.getElementById("r4"); 1.46 + r4.removeAttribute("id"); 1.47 + </script> 1.48 + 1.49 + <rect width="10%" height="100%" fill="red" id="r5"/> 1.50 + <use id="u5" x="50%" xlink:href="#r5"/> 1.51 + <script> 1.52 + var rect = document.getElementById("u5").getBoundingClientRect(); 1.53 + // check that changing u5's reference works 1.54 + var u5 = document.getElementById("u5"); 1.55 + u5.setAttributeNS("http://www.w3.org/1999/xlink", "href", "#r1"); 1.56 + </script> 1.57 + 1.58 + <rect width="10%" height="100%" fill="red" id="r6"/> 1.59 + <rect width="11%" height="100%" fill="lime" id="r6-2"/> 1.60 + <use id="u6" x="60%" xlink:href="#r6"/> 1.61 + <script> 1.62 + var rect = document.getElementById("u6").getBoundingClientRect(); 1.63 + // check that inserting a good element before the bad r6 works 1.64 + var r6 = document.getElementById("r6-2"); 1.65 + r6.parentNode.removeChild(r6); 1.66 + r6.setAttribute("id", "r6"); 1.67 + document.documentElement.insertBefore(r6, document.documentElement.firstChild); 1.68 + </script> 1.69 + 1.70 + <rect width="11%" height="100%" fill="lime" id="r7"/> 1.71 + <rect width="10%" height="100%" fill="red" id="r7-2"/> 1.72 + <use id="u7" x="70%" xlink:href="#r7"/> 1.73 + <script> 1.74 + var rect = document.getElementById("u7").getBoundingClientRect(); 1.75 + // check that inserting a bad element after a good one doesn't break anything 1.76 + var r7 = document.getElementById("r7-2"); 1.77 + r7.parentNode.removeChild(r7); 1.78 + r7.setAttribute("id", "r7"); 1.79 + document.documentElement.appendChild(r7); 1.80 + </script> 1.81 + 1.82 + <rect width="11%" height="100%" fill="lime" id="r8-2"/> 1.83 + <rect width="10%" height="100%" fill="red" id="r8"/> 1.84 + <use id="u8" x="80%" xlink:href="#r8"/> 1.85 + <script> 1.86 + var rect = document.getElementById("u8").getBoundingClientRect(); 1.87 + // check that renaming a good element to r8 works 1.88 + var r8 = document.getElementById("r8-2"); 1.89 + r8.setAttribute("id", "r8"); 1.90 + </script> 1.91 + 1.92 + <rect width="11%" height="100%" fill="lime"/> 1.93 + <rect x="90%" width="11%" height="100%" fill="lime"/> 1.94 +</svg>