1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- <?xml version="1.0"?>
- <svg xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- onload="addTransform()" viewBox="0 0 300 100" class="reftest-wait">
- <!-- Test that the presence/absence of a patternTransform is correctly detected.
- Details are below but, in summary, the first two squares should contain the
- same pattern (a diagonal checkerbox) whilst the third square should contain
- a different pattern (actually the same pattern but WITHOUT the rotation).
- -->
- <script>
- function addTransform()
- {
- var g = document.getElementById("patternBase");
- var list = g.patternTransform.baseVal;
- var t = document.documentElement.createSVGTransform();
- t.setRotate(45,50,50);
- list.appendItem(t);
- document.documentElement.removeAttribute("class");
- }
- </script>
- <defs>
- <!-- 1. The base pattern that will be referenced by others.
- When the document loads, script will add a patternTransform to this
- pattern. It does this using *only SVG DOM APIs* (i.e. not setAttribute)
- so that we can test that when a transform is not specified by markup but
- is added via the DOM we still correctly detect its presence. -->
- <pattern id="patternBase" width="1" height="1">
- <rect width="50" height="50" fill="blue"/>
- <rect x="50" width="50" height="50" fill="red"/>
- <rect y="50" width="50" height="50" fill="red"/>
- <rect x="50" y="50" width="50" height="50" fill="blue"/>
- </pattern>
- <!-- 2. References the base pattern and should detect the base pattern's
- patternTransform (added by script) and inherit it. (SVG 1.1 F2 13.3,
- xlink:href 'Any attributes which are defined on the referenced element
- which are not defined on this element are inherited by this element.').
- Hence this pattern should look IDENTICAL to patternBase. -->
- <pattern xlink:href="#patternBase" id="patternRefWithoutTransform"/>
- <!-- 3. References the base pattern but patternTransform is defined (although
- empty) and hence the patternTransform should NOT be inherited and this
- pattern should look DIFFERENT to patternBase. -->
- <pattern xlink:href="#patternBase" id="patternRefWithTransform"
- patternTransform=""/>
- <!-- The case of a patternTransform being supplied by animation is covered by
- SMIL reftest anim-pattern-attr-presence-01.svg -->
- </defs>
- <rect width="100" height="100" stroke="black"
- fill="url(#patternBase)"/>
- <g transform="translate(100)">
- <rect width="100" height="100" stroke="black"
- fill="url(#patternRefWithoutTransform)"/>
- </g>
- <g transform="translate(200)">
- <rect width="100" height="100" stroke="black"
- fill="url(#patternRefWithTransform)"/>
- </g>
- </svg>
|