haikuwebkit/LayoutTests/svg/custom/text-tref-03-b-change-href-...

50 lines
2.7 KiB
XML
Raw Permalink Normal View History

2011-06-28 Rob Buis <rbuis@rim.com> Reviewed by Nikolas Zimmermann. SVG1.1SE test text-tref-03-b.svg fails https://bugs.webkit.org/show_bug.cgi?id=63390 Support tref on forward referenced content by listening to DOMSubtreeModified events. This also allows updating after modifications in the referenced content subtree. Tests: svg/W3C-SVG-1.1-SE/text-tref-03-b.svg svg/custom/text-tref-03-b-change-href-dom.svg svg/custom/text-tref-03-b-change-href.svg svg/custom/text-tref-03-b-dynamic.svg svg/custom/text-tref-03-b-dynamic2.svg svg/custom/text-tref-03-b-referenced-element-removal.svg svg/custom/text-tref-03-b-tref-removal.svg * svg/SVGTRefElement.cpp: (WebCore::SubtreeModificationEventListener::create): (WebCore::SubtreeModificationEventListener::cast): (WebCore::SubtreeModificationEventListener::removeFromTarget): (WebCore::SubtreeModificationEventListener::SubtreeModificationEventListener): (WebCore::SubtreeModificationEventListener::operator==): (WebCore::SubtreeModificationEventListener::handleEvent): (WebCore::SVGTRefElement::updateReferencedText): (WebCore::SVGTRefElement::parseMappedAttribute): (WebCore::SVGTRefElement::svgAttributeChanged): (WebCore::SVGTRefElement::buildPendingResource): (WebCore::SVGTRefElement::removedFromDocument): * svg/SVGTRefElement.h: 2011-06-28 Rob Buis <rbuis@rim.com> Reviewed by Nikolas Zimmermann. SVG1.1SE test text-tref-03-b.svg fails https://bugs.webkit.org/show_bug.cgi?id=63390 - text-tref-03-b.svg, the w3c SVG1.1 testcase mentioned in the bug. - text-tref-03-b-dynamic.svg, tests dynamically adding the tref. - text-tref-03-b-dynamic2.svg, tests dynamically adding the referenced content. - text-tref-03-b-tref-removal.svg, tests removal of tref. - text-tref-03-b-referenced-element-removal.svg, tests removal of referenced content. - text-tref-03-b-change-href.svg, tests changing href attribute dynamically through setAttribute. - text-tref-03-b-change-href-dom.svg, tests changing href attribute dynamically through href animated property. - foreignObject/text-tref-02-b.svg has improved result, but is still not perfect. * platform/mac/svg/W3C-SVG-1.1-SE/text-tref-03-b-expected.png: Added. * platform/mac/svg/W3C-SVG-1.1-SE/text-tref-03-b-expected.txt: Added. * platform/mac/svg/custom/text-tref-03-b-change-href-dom-expected.png: Added. * platform/mac/svg/custom/text-tref-03-b-change-href-dom-expected.txt: Added. * platform/mac/svg/custom/text-tref-03-b-change-href-expected.png: Added. * platform/mac/svg/custom/text-tref-03-b-change-href-expected.txt: Added. * platform/mac/svg/custom/text-tref-03-b-referenced-element-removal-expected.png: Added. * platform/mac/svg/custom/text-tref-03-b-referenced-element-removal-expected.txt: Added. * platform/mac/svg/custom/text-tref-03-b-tref-removal-expected.png: Added. * platform/mac/svg/custom/text-tref-03-b-tref-removal-expected.txt: Added. * platform/mac/svg/foreignObject/text-tref-02-b-expected.png: * platform/mac/svg/foreignObject/text-tref-02-b-expected.txt: * svg/W3C-SVG-1.1-SE/text-tref-03-b.svg: Added. * svg/custom/text-tref-03-b-change-href-dom.svg: Added. * svg/custom/text-tref-03-b-change-href.svg: Added. * svg/custom/text-tref-03-b-dynamic-expected.txt: Added. * svg/custom/text-tref-03-b-dynamic.svg: Added. * svg/custom/text-tref-03-b-dynamic2-expected.txt: Added. * svg/custom/text-tref-03-b-dynamic2.svg: Added. * svg/custom/text-tref-03-b-referenced-element-removal.svg: Added. * svg/custom/text-tref-03-b-tref-removal.svg: Added. Canonical link: https://commits.webkit.org/79237@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@89951 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2011-06-28 20:04:05 +00:00
<!DOCTYPE svg [
<!ATTLIST bar id ID #REQUIRED>
]>
<svg version="1.1" baseProfile="basic" id="svg-root"
width="100%" height="100%" viewBox="0 0 480 360" onload="runTest()"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!--======================================================================-->
<!--= SVG 1.1 2nd Edition Test Case =-->
<!--======================================================================-->
<!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
<!--= Institute of Technology, European Research Consortium for =-->
<!--= Informatics and Mathematics (ERCIM), Keio University). =-->
<!--= All Rights Reserved. =-->
<!--= See http://www.w3.org/Consortium/Legal/. =-->
<!--======================================================================-->
<script>
function runTest() {
var tref = document.getElementById('tref');
tref.setAttributeNS("http://www.w3.org/1999/xlink", "href", "#hello");
var e = document.getElementById('hello');
e.appendChild(document.createTextNode('d'));
}
</script>
<g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
<!-- Test case label -->
<text x="75" y="25" font-family="SVGFreeSansASCII,sans-serif" font-size="12" fill="blue">Test dynamically changing 'href' attribute through href animated property.</text>
<!-- now make a new SVG document fragment, and hide it from being rendered -->
<defs>
<text id="hello">F<tspan fill="blue">l</tspan><tspan fill="red" font-size="100">a</tspan><tspan fill="yellow">t<tspan fill="lime">t</tspan></tspan><tspan fill="orange" dx="50">e</tspan><tspan fill="purple">n</tspan><tspan fill="red">e</tspan></text>
<text id="other">Hello world</text>
</defs>
<text x="75" y="200" font-size="36" font-family="sans-serif" fill="green" id="target">
<tref id="tref" xlink:href="#other"/>
</text>
</g>
<g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
<text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.4 $</text>
</g>
<rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
<!-- comment out this watermark once the test is approved -->
<!--<g id="draft-watermark">
<rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
<text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
</g>-->
</svg>